Decal
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
Das Abzeichen-Objekt ist ein Objekt, das ein Bild auf das Gesicht eines BasePart anwendet.
Wie funktioniert ein Abzeichen?
Ein Abzeichen wird ein Bild auf die BasePart anwenden, der es zugewiesen ist.Die Oberfläche, auf die dieses Bild angewendet wird, hängt von der EigenschaftenFaceInstance.Face ab.Die Größe des Abzeichens hängt von der Größe des Gesichts ab, d. h. die Größe und Aspektverhältnis eines Abzeichens können durch Ändern der Größe und Aspektverhältnis eines übergeordnetes Teilgeändert werden BasePart.Size.
Das Bild, auf das ein Abzeichen angewendet wird, wird durch seine Decal.Texture Eigenschaftenbestimmt.Bilder können auf Roblox hochgeladen werden, vorausgesetzt, sie halten sich an die Community-Richtlinien.Für Informationen darüber, wie Bilder hochgeladen werden, siehe Texturen und Bilder.
Alternativen zu Aufklebern
Obwohl Bilder eine Vielzahl von Anwendungen haben, möchten Entwickler in manchen Fällen stattdessen eine der folgenden Klassen wählen.
- Für wiederholte geflieste Texturen sollte das Texture Objekt verwendet werden
- Um GUI-Elemente anzuwenden, sollte das SurfaceGui Objekt verwendet werden
- Wenn der Effekt der Beleuchtung auf das Bild geändert werden muss, sollte das SurfaceGui Objekt verwendet werden
Code-Beispiele
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
Zusammenfassung
Eigenschaften
Funktiert als Multiplikator für das EigenschaftenDecal.Transparency des Decal. Die Effekte sind nur für den lokalen Spieler:insichtbar.
Die ContentId des Bildes, das vom Decal angewendet werden soll.
Bestimmt die Transparenz des Decal mit 0 vollständig undurchsichtig und 1 vollständig durchsichtig.
Bestimmt die Render-Reihenfolge, wenn mehrere Aufkleber dasselbe Gesicht erhalten.
Legt fest, auf welchem Gesicht des Ziegel das Objekt erscheint.
Eigenschaften
Color3
Entwickler sollten beachten, dass diese Eigenschaft nur die Tönung des Decalfestlegt, nicht die Farbe.Das bedeutet, es sei denn, das Bild, das mit dem Decal verbunden ist, war ursprünglich weiß (RGB = 1,1,1), dann kann die Farbe nicht frei geändert werden, indem diese Eigenschaftenverwendet wird.
Durch die Reduzierung der RGB-Eigenschaften von Color3 in Union können Entwickler ein Abzeichen dunkler machen.
Code-Beispiele
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
Funktioniert als Multiplikator für das EigenschaftenDecal.Transparency des Decal. Die Effekte sind nur für die Players.LocalPlayer sichtbar.
Diese Eigenschaft sollte in Situationen verwendet werden, in denen Decal.Transparency durch ein anderes Skript, das. PL: die Skriptsfestgelegt wird.Der Vorteil von LocalTransparencyModifier ist, dass er ohne Bedenken für das ursprüngliche Decal.Transparency des Decal geändert werden kann
Wenn LocalTransparencyModified auf 1 gesetzt ist, wird die Decal völlig unsichtbar sein, unabhängig von seiner ursprünglichen Transparenz.Wenn es auf 0 gesetzt ist, stimmt die Rendertoleranz des Decalder Decal.Transparency Wert überein.Die Formel dafür lautet:
Displayed Transparency = Transparency + ((1 - Transparency) * LocalTransparencyModifier)
Beachten Sie, dass diese Eigenschaft nur auf dem Client verwendet werden sollte und sich nicht auf den Server replizieren wird.
Für eine Variante dieser Eigenschaft für BaseParts siehe BasePart.LocalTransparencyModifier .
Texture
Die Inhalts-ID des Bildes, das vom Decal angewendet werden soll.
Wie kann ich ein Abzeichen hochladen?
Bilder können auf Roblox hochgeladen werden, vorausgesetzt, sie halten sich an die Community-Richtlinien.Für Informationen darüber, wie Bilder hochgeladen werden, siehe Texturen und Bilder.
Wie finde ich die Inhalts-ID eines Bildes?
Im Gegensatz zu Sound und Animation Objekten ist die Inhalts-ID eines Abzeichens nicht gleich der Nummer in der URL.Es gibt zwei Hauptwege, um die Inhalts-ID eines Abzeichens zu finden:
- Füge die URL in das Textur-Eigenschaft in Roblox Studio ein.Roblox aktualisiert die Eigenschaft automatisch auf die richtige Inhalts-ID.Beachte, dass dies nur in Roblox Studio funktioniert und nicht von Skripten oder während des Spiels ausgeführt werden kann.
- Füge das Bild ins Spiel ein, dies geschieht in der Regel über die Toolbox unter 'Meine Bilder'.Die Inhalts-ID kann im eingefügten Abzeichen gefunden werden.Beachten Sie, InsertService:LoadAsset() kann auch verwendet werden, wenn Entwickler diese Methode automatisieren möchten.
Code-Beispiele
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
Bestimmt die Transparenz des Decal mit 0 vollständig undurchsichtig und 1 vollständig durchsichtig.
Beachten Sie, Decals respektiert auch die Transparenz der ursprünglichen Bilddatei, die auf Roblox hochgeladen wurde.Das bedeutet, dass die Transparenz vor dem Hochladen auf Roblox geändert werden kann, und ohne die Notwendigkeit, die Eigenschaftenzu verwenden.
Decal.LocalTransparencyModifier fungiert als Multiplikator für die Transparenz des Abzeichens und sollte verwendet werden, wenn die Transparenz des Abzeichens durch ein anderes Skript, das. PL: die Skriptsmöglicherweise geändert wird, wie es bei Charakteren des Spielers der Fall ist.
Für BaseParts siehe BasePart.Transparency.
Code-Beispiele
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 legt die Reihenfolge fest, in der Bilder auf derselben Face von einem BasePart gerendert werden.Aufkleber werden in aufsteigender Prioritäts顺序 gerendert, wo niedrigere Werte zuerst gerendert werden.Daher wird ein Abzeichen mit einem höheren ZIndex später (und auf dem Kopf) andere Abzeichen mit niedrigerem ZIndex gerendert.
Die Reichweite gültiger Werte reicht von -MAX_INT bis MAX_INT, einschließlich (2,147,483,647 oder (2^31 - 1)).Wenn Sie sich nicht sicher sind, ob Sie in Zukunft ein Abzeichen zwischen zwei bereits vorhandenen Abzeichen legen müssen, kann es eine gute Idee sein, Multiplikatoren von 100 zu verwenden, d. h.0, 100, 200.Dies gewährleistet eine große Lücke von ZIndex-Werten, die Sie für Elemente verwenden können, die zwischen anderen Elementen gerendert werden.
Siehe auch:
- GuiObject.ZIndex , ein Eigenschaft, die sich ähnlich verhält, aber für GUI-Elemente