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 fonctionne une décalcomanie ?
Un autocollant appliquera une image au BasePart auquel il est associé.La surface à laquelle cette image est appliquée dépend de la propriété FaceInstance.Face.La taille de l'autocollant dépend de la taille du visage, ce qui signifie que la taille et la proportion de l'autocollant peuvent être modifiées en modifiant la taille et la proportion de son parent BasePart.Size.
L'image à laquelle une décalcomanie s'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 obtenir des informations sur la façon de télécharger des images, voir textures et décalcomanies .
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 à la place.
- Pour les textures carrelées répétées, l'objet Texture doit être utilisé
- Pour appliquer des éléments GUI, l'objet SurfaceGui doit être utilisé
- Si l'effet de l'éclairage sur l'image doit être modifié, l'objet SurfaceGui doit être utilisé
Échantillons de code
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
Résumé
Propriétés
Fonctionne comme un multiplicateur pour la propriété Decal.Transparency de l'insigne. Les effets ne sont visibles que pour le joueur local.
L'ID du contenu 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 dessins sont attribués le même visage.
Définit la face de la brique sur laquelle l'objet apparaît.
Propriétés
Color3
Les développeurs doivent noter que cette propriété ne définit que la teinte de l'insigne, plutôt que la couleur.Cela signifie, à moins que l'image associée à la balise Decal ne soit initialement blanche (RGB = 1,1,1), la couleur ne peut pas être modifiée librement en utilisant cette propriété.
En réduisant les propriétés RGB de Color3 en union, les développeurs peuvent rendre un autocollant plus sombre.
Échantillons de code
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
Fonctionne comme un multiplicateur pour la propriété Decal.Transparency de l'insigne. Les effets ne sont visibles que pour le Players.LocalPlayer.
Cette propriété doit être utilisée dans des situations où Decal.Transparency est défini par un script différent.L'avantage de LocalTransparencyModifier est qu'il peut être modifié sans souci pour l'original Decal.Transparency du Decal
Lorsque le modifieur de transparence locale est réglé sur 1, le Decal sera complètement invisible, indépendamment de sa transparence originale.Lorsqu'il est réglé sur 0, la transparence rendue de l'insignecorrespondra à la valeur Decal.Transparency.La formule pour cela est :
Displayed Transparency = Transparency + ((1 - Transparency) * LocalTransparencyModifier)
Notez que cette propriété doit être utilisée uniquement 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 du contenu de l'image à appliquer par le Decal .
Comment puis-je télécharger une décalcomanie ?
Les images peuvent être téléchargées sur Roblox à condition qu'elles respectent les directives de la communauté.Pour obtenir des informations sur la façon de télécharger des images, voir Textures et décalcomanies.
Comment trouver l'ID du contenu d'une décalcomanie ?
Contrairement aux objets Sound et Animation, l'ID du contenu d'un autocollant n'est pas le même que le nombre dans l'URL.Il y a deux principales façons de trouver l'ID du contenu d'un autocollant :
- Collez l'URL dans la propriété Texture dans Roblox Studio.Roblox mettra automatiquement la propriété à jour avec l'ID de contenu correct.Notez que cela ne fonctionne que dans Roblox Studio et ne peut pas être fait à partir de scripts ou pendant que le jeu est en cours d'exécution.
- Insérez l'autocollant dans le jeu, cela se fait généralement via la boîte à outils sous « Mes autocollants ».L'ID du contenu peut être trouvé dans l'autocollant inséré.Note, InsertService:LoadAsset() peut également être utilisé si les développeurs souhaitent automatiser cette méthode.
Échantillons de code
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
Détermine la transparence du Decal avec 0 étant complètement opaque et 1 complètement transparent.
Note, 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 de télécharger sur Roblox, et sans avoir besoin d'utiliser la propriété Transparence.
Decal.LocalTransparencyModifier agit comme un multiplicateur pour la transparence du décalage et doit être utilisé lorsque la transparence du décalage est susceptible d'être modifiée par un autre script, comme c'est le cas avec les personnages du joueur.
Pour BaseParts, voir BasePart.Transparency .
Échantillons de code
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 détermine l'ordre dans lequel les images sur le même Face d'un BasePart sont rendues.Les images sont rendues dans l'ordre de priorité ascendant où les valeurs inférieures sont rendues en premier.Par conséquent, une décalcomanie avec un ZIndex plus élevé se rend plus tard (et au-dessus) d'autres décalcomanies avec un ZIndex plus bas.
La plage des valeurs valides est de -MAX_INT à MAX_INT, inclusive (2,147,483,647 ou (2^31 - 1)).Si vous n'êtes pas sûr de devoir superposer une décalcomanie entre deux décalcomanies existantes à l'avenir, il peut être une bonne idée d'utiliser des multiples de 100, c'est-à-dire0, 100, 200.Cela garantit un grand écart de valeurs ZIndex que vous pouvez utiliser pour les éléments rendus entre d'autres éléments.
Voir aussi :
- GuiObject.ZIndex , une propriété qui se comporte de manière similaire, mais pour les éléments GUI