Decal
*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.
L'oggetto Decal è un oggetto che applica un'immagine a un volto di un BasePart .
Come funziona un Decal?
Un Decal applicherà un'immagine al BasePart a cui è parentedato.La superficie a cui viene applicata questa immagine dipende dalla ProprietàFaceInstance.Face.La dimensione del decalco è dipendente dalla dimensione del volto, quindi la dimensione e la proporzione dell'aspetto di un decalco possono essere cambiate modificando la dimensione e la proporzione dell'aspetto del suo genitore BasePart.Size.
L'immagine a cui si applica un Decal è determinata dalla sua ProprietàDecal.Texture.Le immagini possono essere caricate su Roblox a patto di aderire alle linee guida della comunità.Per informazioni su come caricare le immagini, vedi Texture e Decali .
Alternative ai Decali
Sebbene le immagini abbiano una vasta varietà di applicazioni, in alcuni casi gli sviluppatori potrebbero desiderare di scegliere una delle seguenti classi invece.
- Per le texture piastrellate ripetute, l'oggetto Texture dovrebbe essere utilizzato
- Per applicare gli elementi GUI, l'oggetto SurfaceGui deve essere utilizzato
- Se l'effetto della luce sull'immagine deve essere modificato, l'oggetto SurfaceGui deve essere utilizzato
Campioni di codice
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
Sommario
Proprietà
Agisce come moltiplicatore per la ProprietàDecal.Transparency della Decalcomania. Gli effetti sono visibili solo al Giocatorelocale.
L'ID del contenuto dell'immagine da applicare dal Decal .
Determina la trasparenza del Decal con 0 completamente opaco e 1 completamente trasparente.
Determina l'ordine di rendering quando vengono assegnate alla stessa faccia più decorazioni.
Imposta quale faccia del mattone l'oggetto appare.
Metodi
Proprietà
Color3
Gli sviluppatori dovrebbero notare che questa proprietà imposta solo il tono del Decalcomania, piuttosto che il colore.Questo significa, a meno che l'immagine associata al Decal non fosse originariamente bianca (RGB = 1,1,1), allora il colore non può essere cambiato liberamente utilizzando questa Proprietà.
Riducendo le proprietà RGB di Color3 in unione, gli sviluppatori possono rendere un'immagine più scura.
Campioni di codice
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
Agisce come moltiplicatore per la ProprietàDecal.Transparency del Decalcomania, gli effetti sono visibili solo al Players.LocalPlayer.
Questa proprietà dovrebbe essere utilizzata in situazioni in cui Decal.Transparency viene impostata da uno script diverso.Il vantaggio di LocalTransparencyModified è che può essere cambiato senza preoccuparsi dell'originale Decal.Transparency del Decal
Quando LocalTransparencyModified è impostato su 1, il Decal sarà completamente invisibile indipendentemente dalla sua trasparenza originale.Quando è impostato a 0, la trasparenza renderta del Decalcomaniasarà corrispondente al valore Decal.Transparency.La formula per questo è:
Displayed Transparency = Transparency + ((1 - Transparency) * LocalTransparencyModifier)
Nota, questa proprietà deve essere utilizzata solo sul client e non si replica al Server.
Per una variante di questa proprietà per BaseParts, vedi BasePart.LocalTransparencyModifier.
Texture
L'ID del contenuto dell'immagine da applicare dal Decal .
Come posso caricare un Decal?
Le immagini possono essere caricate su Roblox a patto di aderire alle linee guida della comunità.Per informazioni su come caricare le immagini, vedi Texture e Decali .
Come trovare trovo l'ID del contenuto di un Decal?
A differenza di Sound e Animation oggetti, l'ID del contenuto di un Decal non è lo stesso del numero nell'URL.Ci sono due modi principali per trovare l'ID del contenuto di un Decal:
- Incolla l'URL nella proprietà Texture in Roblox Studio.Roblox aggiornerà automaticamente la proprietà all'ID contenuto corretto.Nota che funziona solo in Roblox Studio e non può essere eseguito da script o mentre il gioco è in esecuzione.
- Inserisci il Decal nel Gioco, questo viene generalmente fatto attraverso la Toolbox sotto 'My Decals'.L'ID del contenuto può essere trovato nel decal che viene inserito.Nota, InsertService:LoadAsset() può essere utilizzato anche se gli sviluppatori desiderano automatizzare questo metodo.
Campioni di codice
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 trasparenza del Decal con 0 completamente opaco e 1 completamente trasparente.
Nota, Decals rispetta anche la trasparenza del file immagine originale caricato su Roblox.Questo significa che la trasparenza può essere modificata prima di caricare su Roblox, e senza la necessità di utilizzare la ProprietàTrasparenza.
Decal.LocalTransparencyModifier agisce come moltiplicatore per la trasparenza del Decal e dovrebbe essere utilizzato quando la trasparenza del decal è probabile che venga modificata da un altro script, come nel caso dei personaggi del giocatore.
Per BaseParts, vedi BasePart.Transparency.
Campioni di codice
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 l'ordine in cui vengono visualizzati gli adesivi sullo stesso Face di un BasePart .Le decorazioni vengono visualizzate nell'ordine crescente di priorità , dove i valori più bassi vengono visualizzati per primi.Pertanto, un'immagine con un ZIndex più alto viene visualizzata più tardi (e sopra) altre immagini con un ZIndex più basso.
Il range di valori validi è -MAX_INT a MAX_INT, inclusivo (2,147,483,647 o (2^31 - 1)).Se non sei sicuro se dovrai sovrapporre un'immagine tra due immagini esistenti in futuro, può essere una buona idea utilizzare multipli di 100, cioè0, 100, 200.Questo garantisce un grande gap di valori di ZIndex che puoi utilizzare per gli elementi renduti tra gli altri elementi.
Vedi anche:
- GuiObject.ZIndex , una proprietà che si comporta in modo simile, ma per gli elementi GUI