Decal

顯示已棄用項目

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

裝飾對象是一個用於應用圖像到 BasePart 面的對象。

裝飾如何工作?

裝飾會將圖像應用在 BasePart 它的上一個。 表面上此裝飾適用的是 FaceInstance.Face 屬性。 裝飾的大小取決於 BasePart.Size 的大小。 裝飾的大小取決於 1>Class.Face1> 的大小。 裝飾

裝飾應用程式的圖像是由其 Decal.Texture 屬性決定。圖像可以上傳到 Roblox,提供裝飾適用程式的使用者指南。有關上傳圖像的方法,請參閱 裝飾和裝飾。

裝飾的替代

雖然樣式有各種各樣的應用,但在某些情況下開發人員可能會想選擇以下類別。

  • 對於重複的地磚文字,建議使用 Texture 對象
  • 要應用GUI元素,SurfaceGui 對象應該使用
  • 如果需要改變圖像上照明的效果,SurfaceGui 對象應該用

範例程式碼

Changing Decal Texture

-- 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

概要

屬性

屬性 繼承自 FaceInstance

屬性

Color3

平行讀取

Class.Decal 的 Decal 色。

開發人員應該注意,這個屬性只會設定裝貼花的顏色,而不是顏色。這意味著,除非原來的 Decal 是白色 (RGB = 1,1,1) ,否則顏色無法使用此屬性來變更。

通過將 Color3 的 RGB 屬性降低在聯集合中,開發人員可以使裝飾更暗。

範例程式碼

Decal Color3

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

隱藏
未複製
平行讀取

作為貼紙的 Decal.Transparency 屬性的乘數。效果只對 Players.LocalPlayer 可見。

這個屬性應該在使用 Decal.Transparency 由不同的指指令碼設置的情況下。Decal.Transparency 的好處是可以在原來 Decal 的基礎上變更它,而不會有任何擔心。

Decal 設為 1 時,即使是原本的透明度,Decal.Transparency 也會完全隱藏。當它設為 0 時,裝貼花的渲染透明度會與 Class.Decal.Transparency 值相匹配。方程式如下:


Displayed Transparency = Transparency + ((1 - Transparency) * LocalTransparencyModifier)

注意,此屬性應該只在客戶端使用,並且不會重複到服務伺服器。

對於 BaseParts 的變體,請參閱 BasePart.LocalTransparencyModifier

Texture

ContentId
平行讀取

應用 Decal 的圖像的內容 ID。

我如何上傳裝飾?

圖像可以上傳到 Roblox ,但要遵守社群指引。有關上傳圖像的方法,請參閱 紋理和裝飾

如何查找我如何查找裝飾內容 ID?

SoundAnimation 對象不同,裝飾的內容ID 不是來自 URL 的數字。有兩種主要方法來尋找裝飾的內容ID:

  • 將 URL 貼入 Roblox Studio 中的「結構」屬性。Roblox 將自動更新屬性至正確的內容 ID。請注意,這只適用於 Roblox Studio 中,並且無法從腳本或遊戲正在執行時執行。
  • 將裝飾挿入遊戲,這通常是通過 "我的裝飾" 下方的工具箱完成。內容ID可以在裝飾挿入後找到。注意, InsertService:LoadAsset() 也可以用於自動化此方法。

範例程式碼

Changing Decal Texture

-- 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

平行讀取

決定 Decal 的透明度,0 完全不透明,1 完全透明。

注意,Decals也尊重原始圖像檔案上傳到 Roblox 的透明度。這意味著在上傳到 Roblox 之前,Decals可以變更,而不需要使用透明度屬性。

Decal.LocalTransparencyModifier 作為多處透明度的乘數,應該在裝飾的透明度發生其他變更時使用,例如使用其他程式指令碼的角色。

對於 BaseParts,請參閱 BasePart.Transparency

範例程式碼

Fading Decal

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 決定裝飾在同一個 Face 上的裝飾的排序。裝飾會在 BasePart 的優先級排序中 renders 裝飾,其中最低值是最先渲染。因此,上方的一個裝飾會先渲染其他裝飾,而在裝飾之上 (

有效值範圍是 -MAX_INT 到 MAX_INT,包括 (2,147,483,647 或 (2^31 - 1))。 如果您不確定在未來是否需要覆蓋兩個已存在的裝飾之間,可以考慮使用 100 倍 (i.e. 0, 100, 200

也看:

方法

活動