Decal
*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.
Obiekt Decal jest obiektem, który zastosowuje obraz do twarza BasePart .
Jak działa znakowanie?
Naklejka zastosuje obraz do BasePart do którego jest przypisana.Powierzchnia, na którą zostanie zastosowany ten obraz, zależy od właściwości FaceInstance.Face.Rozmiar naklejki zależy od rozmiaru twarzy, co oznacza, że rozmiar i proporcja aspektu naklejki można zmienić, zmieniając rozmiar i proporcję aspektu rodzica BasePart.Size.
Obraz, do którego naklejka się odnosi, jest określony przez jego właściwość Decal.Texture.Obrazy mogą być przesyłane do Roblox, pod warunkiem przestrzegania wytycznych społeczności.Aby uzyskać informacje o tym, jak przesłać obrazy, zobacz Tekstury i zdjęcia.
Alternatywy dla naklejek
Chociaż naklejki mają szeroką gamę zastosowań, w niektórych przypadkach twórcy mogą zamiast tego wybrać jedną z poniższych klas.
- W przypadku powtarzających się płytkich tekstur należy używać obiektu Texture
- Aby zastosować elementy interfejsu graficznego, należy użyć obiektu SurfaceGui
- Jeśli efekt oświetlenia na obrazie musi zostać zmieniony, należy użyć obiektu SurfaceGui
Przykłady kodu
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
Podsumowanie
Właściwości
Funkcjonuje jako mnożnik dla właściwości naklejkaDecal.Transparency. Efekty są widoczne tylko dla lokalnego gracza.
Identyfikator treści obrazu, który ma zostać zastosowany przez Decal .
Określa przejrzystość Decal z 0 bycie całkowicie niedostępnym i 1 całkowicie przejrzystym.
Określa kolejność renderowania, gdy do wielu znaków zostanie przypisane to samo oblicze.
Ustawia, na jakiej twarzy cegły pojawia się obiekt.
Właściwości
Color3
Programiści powinni pamiętać, że ta właściwość ustawia tylko odcień naklejki, a nie kolor.Oznacza to, że chyba że obraz powiązany z Decal był pierwotnie biały (RGB = 1,1,1), to kolor nie może być swobodnie zmieniany za pomocą tej właściwości.
Zmniejszając właściwości RGB Color3 w unii, programiści mogą uczynić nadruk ciemniejszym.
Przykłady kodu
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
Funkcjonuje jako mnożnik dla właściwości naklejkaDecal.Transparency. Efekty są widoczne tylko dla Players.LocalPlayer.
Właściwość ta powinna być używana w sytuacjach, w których Decal.Transparency jest ustawiany przez inny skrypt.Korzyścią z modyfikatora lokalnej przejrzystości jest to, że można go zmienić bez obaw o oryginalną
Gdy modyfikator lokalnej przejrzystości jest ustawiony na 1, Decal będzie całkowicie niewidoczny bez względu na jego pierwotną przejrzystość.Gdy jest ustawiony na 0, przejrzystość renderowania naklejkabędzie pasować do wartości Decal.Transparency.Formuła dla tego jest:
Displayed Transparency = Transparency + ((1 - Transparency) * LocalTransparencyModifier)
Uwaga: ta właściwość powinna być używana tylko na klientzie i nie zostanie replikowana na serwerze.
Dla wariantu tej właściwości dla BaseParts zobacz BasePart.LocalTransparencyModifier .
Texture
ID treści obrazu, który ma zostać zastosowany przez Decal .
Jak przesłać naklejkę?
Obrazy mogą być przesyłane do Roblox, pod warunkiem przestrzegania wytycznych społeczności.Aby uzyskać informacje o tym, jak przesłać obrazy, zobacz Tekstury i zdjęcia.
Jak znaleźć, jak znaleźć ID treści dekalu?
W przeciwieństwie do Sound i Animation obiektów, identyfikator treści naklejki nie jest taki sam jak numer w URL.Istnieją dwie główne sposoby znalezienia ID treści dekalu:
- Wklej URL do właściwości tekstury w Roblox Studio.Roblox automatycznie zaktualizuje właściwość do poprawnego ID treści.Pamiętaj, że działa to tylko w Roblox Studio i nie można tego zrobić z kodów lub podczas uruchamiania gry.
- Wprowadź naklejkę do gry, ogólnie rzecz biorąc, dokonuje się tego za pośrednictwem Toolbox w menu "Moje naklejki".ID treści można znaleźć w naklejce, która została wstawiona.Uwaga, InsertService:LoadAsset() można również użyć, jeśli programiści chcą zautomatyzować tę metodę.
Przykłady kodu
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
Określa przejrzystość Decal z 0 bycie całkowicie niedostępnym i 1 całkowicie przejrzystym.
Uwaga, Decals również respektuje przejrzystość oryginalnego pliku obrazowego przesłanego do Roblox.Oznacza to, że przejrzystość może zostać zmieniona przed przesłaniem do Roblox i bez potrzeby używania właściwości Przezroczystość.
Decal.LocalTransparencyModifier działa jako mnożnik przejrzystości naklejki i powinien być używany, gdy przejrzystość naklejki może zostać zmieniona przez inny skrypt, tak jak w przypadku postaci gracza.
Dla BaseParts, zobacz BasePart.Transparency.
Przykłady kodu
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 określa kolejność, w której obrazki na tej samej Face z BasePart są renderowane.Dekale są renderowane w kolejności priorytetowej rosnącej , gdzie najniższe wartości są renderowane najpierw.Dlatego dekal z wyższym indeksem Z renderuje później (i na górze) inne dekale z niższym indeksem Z.
Zakres ważnych wartości wynosi od -MAX_INT do MAX_INT, włącznie (2,147,483,647 lub (2^31 - 1)).Jeśli nie jesteś pewien, czy będziesz musiał nałożyć naklejkę między dwoma już istniejącymi naklejkami w przyszłości, może to być dobry pomysł, aby używać wielokrotności 100, tj.0, 100, 200.Zapewnia to dużą lukę wartości ZIndex, których możesz używać do elementów renderowanych między innymi elementami.
Zobacz także:
- GuiObject.ZIndex , właściwość, która zachowuje się podobnie, ale dla elementów GUI