Decal
*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.
L'objet Decal est un objet qui applique une image à un visage d'un BasePart .
Comment un autocollant fonctionne-t-il ?
Une image d'autocollant sera appliquée à l'image BasePart qu'il est parenté. La surface sur laquelle cette image est appliquée dépend de la propriété FaceInstance.Face. La taille de l'autocollant dépend de la taille de la face, ce qui signifie que la taille et l'aspect de l'autocollant peut être modifiée en changeant la propriété Class
L'image qu'une étiquette applique est déterminée par sa propriété Decal.Texture. Les images peuvent être téléchargées sur Roblox, à condition qu'elles respectent les directives de la communauté.Pour plus d'informations sur la façon de télécharger des images, voir Textures et décalques.
Alternatives aux décalcomanies
Bien que les autocollants aient une grande variété d'applications, dans certains cas, les développeurs peuvent préférer choisir l'une des classes suivantes au lieu de cela.
- Pour les textures de sol en mosaïque répétées, l'objet Texture doit être utilisé
- Pour appliquer les éléments de l'interface graphique, l'objet SurfaceGui doit être utilisé
- Si l'effet d'éclairage sur l'image doit être modifié, l'objet SurfaceGui doit être utilisé
Échantillons de code
-- 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
Résumé
Propriétés
Acte comme un multiplicateur pour la propriété Decal.Transparency de la insigne. Les effets ne sont visibles que par le joueur local.
Le ContentId de l'image à appliquer par le Decal.
Détermine la transparence du Decal avec 0 étant complètement opaque et 1 complètement transparent.
Détermine l'ordre de rendu lorsque plusieurs autocollants sont attribués au même visage.
Définit le visage de la brique sur lequel l'objet apparaît.
Propriétés
Color3
Les développeurs doivent noter que cette propriété ne détermine que la teinte du insigne, pas la couleur. Cela signifie que, à moins que l'image associée avec le Decal n'ait été initialement blanche (RGB = 1,1,1) alors la couleur ne peut pas être modifiée librement à l'aide de cette propriété.
En réduisant les propriétés RGB de Color3 dans l'union, les développeurs peuvent rendre un autocollant plus sombre.
Échantillons de code
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
Acte comme un multiplicateur pour la propriété Decal.Transparency de la insigne. Les effets ne sont visibles que pour le Players.LocalPlayer.
Cette propriété devrait être utilisée dans des situations où Decal.Transparency est définie par un script différent. L'avantage de LocalTransparencyModifier est qu'il peut être modifié sans inquiétude pour l'original Decal.Transparency de la Decal
Lorsque LocalTransparencyModifier est réglé sur 1, le Decal sera complètement invisible, indépendamment de sa transparence d'origine. Lorsqu'il est réglé sur 0, la transparence de la insignesera correspondante à la valeur Decal.Transparency. La formule pour cela est :
Displayed Transparency = Transparency + ((1 - Transparency) * LocalTransparencyModifier)
Remarquez que cette propriété ne devrait être utilisée que sur le client et ne se répliquera pas sur le serveur.
Pour une variante de cette propriété pour BaseParts, voir BasePart.LocalTransparencyModifier.
Texture
L'ID de contenu de l'image à appliquer par le Decal .
Comment puis-je télécharger une image?
Les images peuvent être téléchargées sur Roblox à condition qu'elles respectent les directives de la communauté. Pour plus d'informations sur la façon de télécharger des images, voir Textures et décalques .
Comment puis-je trouver l'ID de contenu d'une image ?
Contrairement aux objets Sound et Animation, l'ID du contenu d'une image n'est pas le même que le numéro dans l'URL. Il y a deux façons principales de trouver l'ID du contenu d'une image :
- Collez l'URL dans la propriété Texture dans Roblox Studio. Roblox mettra automatiquement à jour la propriété vers le bon ID de contenu. Notez que cela ne fonctionne que dans Roblox Studio et ne peut pas être fait à partir de scripts ou pendant que le jeu s'exécute.
- Insérez le autocollant dans le jeu, ceci est généralement fait via la boîte à outils sous « Mes autocollants ». L'ID du contenu peut être trouvé dans l'autocollant qui est inséré. Notez que InsertService:LoadAsset() peut également être utilisé si les développeurs souhaitent automatiser cette méthode.
Échantillons de code
-- 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
Détermine la transparence du Decal avec 0 étant complètement opaque et 1 complètement transparent.
Remarquez, Decals respecte également la transparence du fichier d'image original téléchargé sur Roblox. Cela signifie que la transparence peut être modifiée avant le téléchargement sur Roblox, et sans le besoin d'utiliser la propriété Transparence.
Decal.LocalTransparencyModifier agit comme un multiplicateur pour la transparence de la décalque et devrait être utilisé lorsque la transparence de la décalque est probablement modifiée par un autre script, comme dans le cas des personnages de joueur.
Pour BaseParts , voir BasePart.Transparency .
Échantillons de code
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 détermine l'ordre dans lequel les autocollants sur le même Face d'un BasePart sont rendus. Les autocollants sont rendus dans l'ordre de priorité croissant, où les valeurs plus basses sont rendues en premier. Ainsi, un autocollant avec un ZIndex plus élevé rend plus tard (et au-dessus) d'autres
La portée des valeurs valides est -MAX_INT à MAX_INT, y compris (2,147,483,647 ou (2^31 - 1)) si vous êtes incertain de savoir si vous aurez besoin d'ajouter une décalque entre deux décalques existantes dans le futur, il peut être une bonne idée d'utiliser des multiples de 100, soit (0, 100,
Voir aussi :
- GuiObject.ZIndex , une propriété qui se comporte de la même façon, mais pour les éléments GUI