Decal
*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.
O objeto Decal é um objeto que aplica uma imagem a um rosto de um BasePart .
Como funciona um Adesivo?
Um Adesivo aplicará uma imagem ao BasePart que é parente.A superfície para a qual essa imagem é aplicada depende da propriedade FaceInstance.Face.O tamanho do adesivo depende do tamanho do rosto, significa que o tamanho e a proporção de aspecto de um adesivo podem ser alterados alterando o tamanho e a proporção de aspecto de seu pai BasePart.Size.
A imagem a que um Adesivo se aplica é determinada por sua propriedade Decal.Texture.Imagens podem ser carregadas no Roblox, desde que adiram às diretrizes da comunidade.Para obter informações sobre como carregar imagens, veja Texturas e Decalques.
Alternativas a Imagens de Adesivos
Embora as Imagens tenham uma grande variedade de aplicações, em alguns casos os desenvolvedores podem desejar escolher uma das seguintes classes em vez disso.
- Para texturas de ladrilho repetidas, o objeto Texture deve ser usado
- Para aplicar elementos de GUI, o objeto SurfaceGui deve ser usado
- Se o efeito de iluminação na imagem precisar ser alterado, o objeto SurfaceGui deve ser usado
Amostras de código
The following code will create a Part on the ground with a Decal applied to its top face. When something hits the part, such as when a player walks over it, the texture applied to the decal will change and a sound will play.
-- 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
Resumo
Propriedades
Atua como multiplicador para a propriedade Decal.Transparency da adesivo. Os efeitos são visíveis apenas para o jogador local.
O ContentId da imagem a ser aplicada pelo Decal.
Determina a transparência do Decal com 0 sendo completamente opaco e 1 completamente transparente.
Determina a ordem de renderização quando várias decalques são atribuídas ao mesmo rosto.
Define qual rosto do tijolo o objeto aparece.
Propriedades
Color3
Os desenvolvedores devem notar que essa propriedade só define a tonalidade do adesivo, e não a cor.Isso significa, a menos que a imagem associada ao Decal fosse originalmente branca (RGB = 1,1,1), então a cor não pode ser alterada livremente usando essa propriedade.
Ao reduzir as propriedades RGB de Color3 em união, os desenvolvedores podem tornar um distintivo mais escuro.
Amostras de código
This code sample creates a Decal in the workspace and changes its Decal.Color3 property on a loop using TweenService.
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
Atua como multiplicador para a propriedade Decal.Transparency do adesivo. Os efeitos são visíveis apenas para o Players.LocalPlayer .
Essa propriedade deve ser usada em situações em que Decal.Transparency está sendo definido por um script diferente.O benefício do Modificador de Transparência Local é que ele pode ser alterado sem preocupação com o original Decal.Transparency do Decal
Quando o Modificador de Transparência Local é definido como 1, o Decal será completamente invisível, independentemente de sua transparência original.Quando definido como 0, a transparência renderizada do adesivo corresponderá ao valor Decal.Transparency.A fórmula para isso é:
Displayed Transparency = Transparency + ((1 - Transparency) * LocalTransparencyModifier)
Observe, essa propriedade deve ser usada apenas no cliente e não se replicará para o servidor.
Para uma variante dessa propriedade para BaseParts , veja BasePart.LocalTransparencyModifier .
Texture
O ID de Conteúdo da imagem a ser aplicada pelo Decal .
Como posso carregar uma Imagem?
Imagens podem ser carregadas no Roblox, desde que sigam as diretrizes da comunidade.Para obter informações sobre como carregar imagens, veja Texturas e Imagens.
Como encontrar ID de Conteúdo de uma Imagem?
Ao contrário de Sound e Animation objetos, o ID de Conteúdo de um Adesivo não é o mesmo que o número na URL.Existem duas maneiras principais de encontrar o ID de Conteúdo de um Adesivo:
- Cole o URL na propriedade Textura no Roblox Studio.O Roblox atualizará automaticamente a propriedade para o ID de conteúdo correto.Observe que isso só funciona no Roblox Studio e não pode ser feito de Scripts ou enquanto o jogo estiver em execução.
- Insira o Adesivo no jogo, isso é geralmente feito através da Caixa de Ferramentas sob 'Meus Adesivos'.O ID do Conteúdo pode ser encontrado no adesivo que é inserido.Observe, InsertService:LoadAsset() também pode ser usado se os desenvolvedores desejarem automatizar esse método.
Amostras de código
The following code will create a Part on the ground with a Decal applied to its top face. When something hits the part, such as when a player walks over it, the texture applied to the decal will change and a sound will play.
-- 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
TextureContent
Transparency
Determina a transparência do Decal com 0 sendo completamente opaco e 1 completamente transparente.
Observe, Decals também respeita a transparência do arquivo de imagem original carregado no Roblox.Isso significa que a transparência pode ser alterada antes de carregar no Roblox, e sem a necessidade de usar a propriedade de Transparência.
Decal.LocalTransparencyModifier atua como multiplicador para a transparência do Adesivo e deve ser usado quando a transparência do adesivo provavelmente será alterada por outro script, como é o caso com os Personagens do jogador.
Para BaseParts, veja BasePart.Transparency.
Amostras de código
The code below will create a transparent Part with a decal that will fade in and out using TweenService and Decal.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 determina a ordem em que os decalques no mesmo Face de um BasePart são renderizados.Decalques são renderizados em ordem crescente de prioridade, onde os valores mais baixos são renderizados primeiro.Portanto, um adesivo com um ZIndex mais alto é renderizado mais tarde (e sobre) outros adesivos com menor ZIndex.
O alcance de valores válidos é -MAX_INT a MAX_INT, incluindo (2,147,483,647 ou (2^31 - 1)).Se você não tem certeza se precisará sobrepor um adesivo entre dois adesivos já existentes no futuro, pode ser uma boa ideia usar múltiplos de 100, ou seja0, 100, 200.Isso garante uma grande lacuna de valores de ZIndex que você pode usar para elementos renderizados entre outros elementos.
Veja também:
- GuiObject.ZIndex , uma propriedade que se comporta de forma semelhante, mas para elementos de GUI