图标对象是一个应用图像到BasePart面的对象。
如何使用图标?
一个贴花将图像应用到BasePart 它所属的父级。 表面上该贴花应用的是基于FaceInstance.Face 属性的。 装al的大小取决于面的大小,意味着装al的大小和外观比例可以通过改变其父元素级的 BasePart.Size 来改变。
应用的图像由其 Decal.Texture 属性确定。图像可以上传到 Roblox,只要它们遵守社区指南。有关上传图像的信息,请参阅 纹理和装饰 。
图标的替代
尽管图标有很多应用,但在某些情况下,开发人员可能会选择以下类别。
- 对于重复的地砖文本,应该使用 Texture 对象
- 要应用 GUI 元素,应该使用 SurfaceGui 对象
- 如果需要改变图像上照明的效果,请使用 SurfaceGui 对象
代码示例
-- create part
local part = Instance.new("Part")
part.Size = Vector3.new(5, 1, 5)
part.Position = Vector3.new(0, 0.5, 0)
part.Anchored = true
part.TopSurface = Enum.SurfaceType.Smooth
part.BrickColor = BrickColor.new("Toothpaste")
-- create decal
local decal = Instance.new("Decal")
decal.Face = Enum.NormalId.Top
decal.Parent = part
-- create sound
local sound = Instance.new("Sound")
sound.SoundId = "rbxasset://sounds/uuhhh.mp3" -- oof
sound.Parent = part
-- define faces
local happyFace = "http://www.roblox.com/asset/?id=26424652"
local sadFace = "http://www.roblox.com/asset/?id=147144198"
decal.Texture = happyFace
-- touched event
local cooldown = false
part.Touched:Connect(function(hit)
if not cooldown then
if hit and hit.Parent then
cooldown = true
sound:Play()
decal.Texture = sadFace
task.wait(1)
decal.Texture = happyFace
task.wait(0.2)
cooldown = false
end
end
end)
-- add to workspace
part.Parent = workspace
概要
属性
Datatype.Color3 的涂色。Decal 的。
作为贴纸的 Decal.Transparency 属性的倍增器。效果仅对本地玩家可见。
应用于 Decal 的图像的内容ID。
确定 Decal 的透明度,0 完全不透明,1 完全透明。
确定多个图像的渲染顺序。
设置物体在砖上的哪个面。
属性
Color3
Datatype.Color3 的涂色。Decal 的。
开发人员应注意,这个属性只是设置图贴花的阴影,而不是颜色。这意味着,除非 Decal 与图像原本是白色(RGB = 1,1,1),否则颜色无法使用此属性。
通过在组合合中减少 Color3 的 RGB 属性,开发人员可以使装al更暗。
代码示例
local TweenService = game:GetService("TweenService")
local part = Instance.new("Part")
part.Size = Vector3.new(10, 10, 1)
part.Position = Vector3.new(0, 5, 0)
part.Anchored = true
part.Transparency = 1
local decal = Instance.new("Decal")
decal.Face = Enum.NormalId.Front
decal.Texture = "http://www.roblox.com/asset/?id=1145367640" -- white circle
decal.Parent = part
part.Parent = workspace
local redTween = TweenService:Create(
decal,
TweenInfo.new(1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out),
{ Color3 = Color3.new(1, 0, 0) }
)
local greenTween = TweenService:Create(
decal,
TweenInfo.new(1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out),
{ Color3 = Color3.new(0, 1, 0) }
)
local blueTween = TweenService:Create(
decal,
TweenInfo.new(1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out),
{ Color3 = Color3.new(0, 0, 1) }
)
while true do
redTween:Play()
redTween.Completed:Wait()
greenTween:Play()
greenTween.Completed:Wait()
blueTween:Play()
blueTween.Completed:Wait()
end
LocalTransparencyModifier
作为图标的 Class.Decal.Transparency 属性的倍增器。效果仅对 Decal.Transparency 可见。
这个属性在使用 Decal.Transparency 被脚本置的情况下使用。本透明度调整器的好处是,它可以在不考虑原始 Decal.Transparency 的情况下更改。
当LocalTransparencyModifier设置为1时,Decal 将无论其原始透明度如何,完全隐藏。当它设置为0时,Decal.Transparency 将匹配。公式如下:
Displayed Transparency = Transparency + ((1 - Transparency) * LocalTransparencyModifier)
注意,此属性仅应用于客户端,不会复制到服务器。
对于这个属性的变体,请参阅 BaseParts 中的 BasePart.LocalTransparencyModifier 。
Texture
应用于 Decal 的图像的内容ID。
我如何上传图像?
图像可以上传到 Roblox ,但必须遵守社区指南。有关上传图像的信息,请参阅纹理和装饰。
如何查找我如何查找标签的内容 ID?
与 Sound 和 Animation 对象不同,标签的内容 ID 不是 URL 中的数字。有两种主要方法来找到标签的内容 ID:
- 将 URL 粘贴到 Roblox Studio 中的 Texture 属性。Roblox 会自动将属性更新到正确的内容 ID。请注意,这只能在 Roblox Studio 中执行,无法从脚本或运行时游戏中执行。
- 将图标插入游戏,这通常通过“我的图标”下的工具箱进行。 工具ID可以在插入的图标中找到。 注意,InsertService:LoadAsset() 也可以用于自动化此方法。
代码示例
-- create part
local part = Instance.new("Part")
part.Size = Vector3.new(5, 1, 5)
part.Position = Vector3.new(0, 0.5, 0)
part.Anchored = true
part.TopSurface = Enum.SurfaceType.Smooth
part.BrickColor = BrickColor.new("Toothpaste")
-- create decal
local decal = Instance.new("Decal")
decal.Face = Enum.NormalId.Top
decal.Parent = part
-- create sound
local sound = Instance.new("Sound")
sound.SoundId = "rbxasset://sounds/uuhhh.mp3" -- oof
sound.Parent = part
-- define faces
local happyFace = "http://www.roblox.com/asset/?id=26424652"
local sadFace = "http://www.roblox.com/asset/?id=147144198"
decal.Texture = happyFace
-- touched event
local cooldown = false
part.Touched:Connect(function(hit)
if not cooldown then
if hit and hit.Parent then
cooldown = true
sound:Play()
decal.Texture = sadFace
task.wait(1)
decal.Texture = happyFace
task.wait(0.2)
cooldown = false
end
end
end)
-- add to workspace
part.Parent = workspace
Transparency
确定 Decal 的透明度,0 完全不透明,1 完全透明。
注意,Decals也尊重原始图像文件上传到 Roblox 的透明度。这意味着在上传到 Roblox 之前,透明度可以改变,无需使用“透明度”属性。
Decal.LocalTransparencyModifier 作为多层次透明度的乘数,应用于多层次透明度的变更,例如 player 角色的透明度。
对于 BaseParts,请参阅BasePart.Transparency。
代码示例
local TweenService = game:GetService("TweenService")
local part = Instance.new("Part")
part.Size = Vector3.new(10, 10, 1)
part.Position = Vector3.new(0, 5, 0)
part.Anchored = true
part.Transparency = 1
local decal = Instance.new("Decal")
decal.Face = Enum.NormalId.Front
decal.Texture = "http://www.roblox.com/asset/?id=699259085" -- roblox logo
decal.Parent = part
part.Parent = workspace
local tween = TweenService:Create(
decal,
TweenInfo.new(1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out, -1, true),
{ Transparency = 1 }
)
tween:Play()
ZIndex
ZIndex 确定画像在同一个 Face 上的装计在哪个顺序。装计在以下优先级순序上渲染:最低值先被渲染,然后其他装计:最低值先被渲染,然后其他装计:最低值先被渲染,然后其他装计:最低值先被渲染,然后其他装计:最低值先
有效值的范围是 -MAX_INT 到 MAX_INT,包括 (2,147,483,647 或 (2^31 - 1))。如果您不确定在将来需要在两个已有的图像之间层次一个装al,它可能是一个好主意使用多个 100 的倍数,例如 0、100、200。这确保在其他
还请参阅:
- GuiObject.ZIndex,一个相同的属性,但对于图形用户界面元素