Decal
*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.
El objeto Decal es un objeto que aplica una imagen a un rostro de un BasePart .
¿Cómo funciona una etiqueta?
Un calcomanía aplicará una imagen al BasePart al que está asociado.La superficie a la que se aplica esta imagen depende de la propiedad FaceInstance.Face.El tamaño del decal depende del tamaño de la cara, lo que significa que el tamaño y la proporción de aspecto de un decal se pueden cambiar cambiando el tamaño y la proporción de aspecto de su padre BasePart.Size.
La imagen a la que se aplica un sello se determina por su propiedad Decal.Texture.Las imágenes se pueden subir a Roblox siempre que cumplan con las directrices de la comunidad.Para obtener información sobre cómo subir imágenes, vea Texturas y calcomanías.
Alternativas a las imágenes
Aunque las imágenes tienen una gran variedad de aplicaciones, en algunos casos los desarrolladores pueden desear elegir una de las siguientes clases en su lugar.
- Para las texturas repetidas con azulejos, el objeto Texture debe usarse
- Para aplicar elementos de interfaz gráfica, el objeto SurfaceGui debe usarse
- Si el efecto de iluminación en la imagen debe ser modificado, el objeto SurfaceGui debe usarse
Muestras 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
Resumen
Propiedades
Actúa como multiplicador para la propiedad Decal.Transparency de la adhesivo. Los efectos son visibles solo para el jugador local.
El ContentId de la imagen que se aplicará por el Decal .
Determina la transparencia del Decal con 0 siendo completamente opaco y 1 completamente transparente.
Determina el orden de renderizado cuando se asigna el mismo rostro a varias imágenes.
Establece qué cara del bloque aparece el objeto.
Propiedades
Color3
Los desarrolladores deben tener en cuenta que esta propiedad solo establece el tinte del adhesivo, en lugar del color.Esto significa, a menos que la imagen asociada con el Decal originalmente fuera blanca (RGB = 1,1,1), entonces el color no se puede cambiar libremente usando esta propiedad.
Al reducir las propiedades RGB de Color3 en unión, los desarrolladores pueden hacer que una etiqueta sea más oscura.
Muestras 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
Actúa como multiplicador para la propiedad Decal.Transparency de la adhesivo. Los efectos son visibles solo para el Players.LocalPlayer .
Esta propiedad debe usarse en situaciones en las que Decal.Transparency se esté estableciendo por un script diferente.El beneficio de LocalTransparencyModified es que se puede cambiar sin preocuparse por el original Decal.Transparency de la Decal
Cuando LocalTransparencyModifiedor se establece en 1, el Decal será completamente invisible independientemente de su transparencia original.Cuando se establece en 0, la transparencia renderizada del adhesivocoincidirá con el valor Decal.Transparency.La fórmula para esto es:
Displayed Transparency = Transparency + ((1 - Transparency) * LocalTransparencyModifier)
Tenga en cuenta que esta propiedad debe usarse solo en el cliente y no se replicará al servidor.
Para una variante de esta propiedad para BaseParts , vea BasePart.LocalTransparencyModifier .
Texture
El ID del contenido de la imagen que se aplicará por el Decal .
¿Cómo puedo subir una imagen?
Las imágenes se pueden subir a Roblox siempre que cumplan con las directrices de la comunidad.Para obtener información sobre cómo subir imágenes, vea Texturas y decoraciones.
¿Cómo encuentro el ID de contenido de una insignia?
A diferencia de los objetos Sound y Animation, el ID de contenido de una insignia no es igual al número de la URL.Hay dos maneras principales de encontrar el ID del contenido de una etiqueta:
- Pega la URL en la propiedad Textura en Roblox Studio.Roblox actualizará automáticamente la propiedad al ID de contenido correcto.Tenga en cuenta que esto solo funciona en Roblox Studio y no se puede hacer desde los scripts o mientras se ejecuta el juego.
- Inserte la calcomanía en el juego, esto se hace generalmente a través de la caja de herramientas bajo 'Mis calcomanías'.El ID del contenido se puede encontrar en la etiqueta que se inserta.Tenga en cuenta, InsertService:LoadAsset() también se puede usar si los desarrolladores desean automatizar este método.
Muestras 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 la transparencia del Decal con 0 siendo completamente opaco y 1 completamente transparente.
Tenga en cuenta, Decals también respeta la transparencia del archivo de imagen original subido a Roblox.Esto significa que la transparencia se puede cambiar antes de subir a Roblox, y sin la necesidad de usar la propiedad de transparencia.
Decal.LocalTransparencyModifier actúa como multiplicador de la transparencia de la insignia y debe usarse cuando es probable que la transparencia de la insignia sea cambiada por otro script, como es el caso con los personajes del jugador.
Para BaseParts , vea BasePart.Transparency .
Muestras 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 el orden en que se renderizan las imágenes en el mismo Face de un BasePart .Las imágenes se renderizan en orden ascendente de prioridad, donde se renderizan primero los valores más bajos.Por lo tanto, una etiqueta con un ZIndex más alto se renderiza más tarde (y por encima de) otras etiquetas con un ZIndex más bajo.
El rango de valores válidos es -MAX_INT a MAX_INT, incluido (2,147,483,647 o (2^31 - 1)).Si no está seguro de si necesitará superponer una calcomanía entre dos calcomanías ya existentes en el futuro, puede ser una buena idea usar múltiples de 100, es decir0, 100, 200.Esto garantiza un gran espacio de valores de ZIndex que puedes usar para elementos renderizados entre otros elementos.
Vea también:
- GuiObject.ZIndex , una propiedad que se comporta de manera similar, pero para elementos de interfaz gráfica