Decal
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
Das Decal-Objekt ist ein Objekt, das ein Bild auf die Gesicht einer BasePart anwendet.
Wie funktioniert ein Decal?
Ein Aufkleber wird ein Bild auf das BasePart anwenden, zu dem er gehört. Die Oberfläche, auf der dieses Bild angewendet wird, ist abhängig von der EigenschaftenFaceInstance.Face. Die Größe des Aufklebers hängt von der Größe des Gesichts ab, was bedeutet, dass die Größe und der Aspekt eines Aufklebers geändert werden können, indem seine
Das Bild, auf das ein Decal angewendet wird, wird durch seine Decal.Texture Eigenschaftenbestimmt. Bilder können auf Roblox hochgeladen werden, solange sie den Community-Richtlinien entsprechen.Für Informationen darüber, wie man Bilder hochladen, siehe Texturen und Decals.
Alternativen zu Aufkleber
Obwohl Aufkleber eine breite Palette von Anwendungen haben, können in einigen Fällen Entwickler jedoch eine der folgenden Klassen wählen.
- Für wiederholte flächen textur, sollte das objekt Texture verwendet werden
- Um GUI-Elemente anzuwenden, sollte das SurfaceGui -Objekt verwendet werden
- Wenn der Effekt der Beleuchtung auf dem Bild geändert werden muss, sollte das Objekt SurfaceGui verwendet werden
Code-Beispiele
-- 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
Aktuiert als Multiplikator für die Eigenschaft Decal.Transparency EigenschaftenDecal. Die Effekte sind nur für den lokalen Spieler:insichtbar.
Die ContentId des Bildes, das angewendet werden soll durch den Decal.
Bestimmt die Transparenz des Decal mit 0 vollständig und 1 vollständig durchsichtig.
Bestimmt die Rendering-Reihenfolge, wenn mehrere Aufkleber dieselben Gesicht zuweisen.
Setzt, auf welche Seite des Ziegelsteins das Objekt erscheint.
Eigenschaften
Color3
Entwickler sollten beachten, dass diese Eigenschaft nur die Farbe des Abziehbilds festlegt, nicht jedoch die Tinte. Dies bedeutet, dass, wenn das Bild mit dem Decal ursprünglich weiß war (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 der Union können Entwickler ein Dekal dunkler machen.
Code-Beispiele
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
Aktuiert als Multiplikator für die Eigenschaft Decal.Transparency EigenschaftenDecal. Die Effekte sind nur für den Players.LocalPlayer sichtbar.
Dieses Eigenschaft sollte in Situationen verwendet werden, in denen Decal.Transparency von einem anderen Skript, das. PL: die Skriptsfestgelegt wird. Der Vorteil von LocalTransparencyModifier ist, dass er ohne Sorgen für den ursprünglichen Decal.Transparency des Decal geändert werden kann.
Wenn LocalTransparencyModifier auf 1 eingestellt ist, ist der Decal vollständig unsichtbar, unabhängig von seiner ursprünglichen Transparenz. Wenn er auf 0 eingestellt ist, wird die Transparenz des Decals mit dem Wert Decal.Transparency übereinstimmen. Die Formel dafür ist:
Displayed Transparency = Transparency + ((1 - Transparency) * LocalTransparencyModifier)
Beachten Sie, dass diese Eigenschaft nur auf dem Client verwendet werden sollte und nicht auf den Server repliziert werden kann.
Für eine Variante dieser Eigenschaft für BaseParts , siehe BasePart.LocalTransparencyModifier .
Texture
Die Bild-ID, die angewendet werden soll durch den Decal.
Wie kann ich ein Abzeichen hochladen?
Bilder können auf Roblox hochgeladen werden, solange sie den Community-Richtlinien entsprechen. Für Informationen darüber, wie man Bilder hochladen, siehe Texturen und Decals.
Wie finde ich die Decal-Content-ID?
Anders als bei Sound und Animation Objekten, ist die Inhalts-ID eines Aufklebers nicht die gleiche wie die Zahl in der URL. Es gibt zwei Hauptmöglichkeiten, die Inhalts-ID eines Aufklebers zu finden:
- Fügen Sie die URL in die Textur-Eigenschaft in Roblox Studio ein. Roblox wird die Eigenschaft automatisch auf die richtige Inhalts-ID aktualisieren. Beachten Sie, dass dies nur in Roblox Studio funktioniert und nicht von Skripts oder während der Ausführung des Spiels getan werden kann.
- Fügen Sie das Abzeichen in das Spiel ein, dies wird in der Regel über die Toolbox unter "Meine Abzeichen" erledigt. Die Inhalts-ID kann in dem Abzeichen, das eingefügt wird, gefunden werden. Beachten Sie, dass InsertService:LoadAsset() auch verwendet werden kann, wenn Entwickler diesen Prozess automatisieren möchten.
Code-Beispiele
-- 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
Bestimmt die Transparenz des Decal mit 0 vollständig und 1 vollständig durchsichtig.
Beachten Sie, dass Decals auch die Transparenz des ursprünglichen Bilddateien, die auf Roblox hochgeladen wurden, respektiert. Dies bedeutet, dass die Transparenz vor dem Upload auf Roblox geändert werden kann, und ohne die Notwendigkeit, die Eigenschaftenzu verwenden.
Decal.LocalTransparencyModifier wirkt als Multiplikator für die Transparenz des Decals und sollte verwendet werden, wenn die Transparenz des Decals wahrscheinlich durch ein anderes Skript, das. PL: die Skriptsgeändert wird, wie es bei Spielern mit Charaktern der Fall ist.
Für BaseParts , siehe BasePart.Transparency .
Code-Beispiele
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 ermittelt die Reihenfolge, in der die Decals auf dem gleichen Face von einem BasePart rendern sind. Decals werden in 0> aufsteigender0> Reihenfolge rendern, in der niedrigere Werte zuerst rendern. Deshalb rendert ein Decal mit einem höheren ZIndex später (und auf dem obersten Teil
Die Reichweite gültiger Werte beträgt -MAX_INT bis MAX_INT, einschließlich (2,147,483,647 oder (2^31 - 1)) . Wenn Sie sich nicht sicher sind, ob Sie in der Zukunft ein Decal zwischen zwei bereits bestehenden Decals auftragen müssen, kann es eine gute Idee sein, mehrere von 100 zu verwenden, d. h. 0,
Siehe auch:
- GuiObject.ZIndex , eine Eigenschaft, die sich ähnlich verhält, aber für GUI-Elemente