Decal

Hiển Thị Bản Đã Lỗi Thời

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

Vật thể Decal là một vật thể áp dụng hình ảnh lên khuôn mặt của một BasePart .

Làm thế nào một Decal hoạt động?

Một Decal sẽ áp dụng hình ảnh cho BasePart nó được cha mẹ.Bề mặt hình ảnh này được áp dụng phụ thuộc vào thuộc tính FaceInstance.Face.Kích thước của decal phụ thuộc vào kích thước của khuôn mặt, có nghĩa là kích thước và tỷ lệ khổ của một decal có thể được thay đổi bằng cách thay đổi kích thước và tỷ lệ khổ của cha mẹ của nó BasePart.Size .

Hình ảnh một Decal áp dụng được xác định bởi thuộc tính Decal.Texture của nó.Hình ảnh có thể được tải lên Roblox miễn là tuân theo các hướng dẫn cộng đồng.Để có thông tin về cách tải hình ảnh, xem Kết cấu và Hình xăm .

Các lựa chọn thay thế cho Decal

Mặc dù Decals có rất nhiều ứng dụng khác nhau, trong một số trường hợp nhà phát triển có thể muốn chọn một trong các lớp sau thay thế.

  • Đối với các kết cấu lặp lại có định dạng gạch, đối tượng Texture nên được sử dụng
  • Để áp dụng các thành phần GUI, đối tượng SurfaceGui nên được sử dụng
  • Nếu hiệu ứng chiếu sáng trên hình ảnh cần được thay đổi, đối tượng SurfaceGui nên được sử dụng

Mẫu mã

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.

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

Tóm Tắt

Thuộc Tính

  • Đọc Song Song

    Tông màu Color3 của Decal.

  • Ẩn
    Không Sao Chép
    Đọc Song Song

    Hoạt động như một nhân cho tính chất Decal.Transparency của đề can. Các hiệu ứng chỉ có thể nhìn thấy được với người chơi địa phương.

  • Texture:ContentId
    Đọc Song Song

    Id nội dung của hình ảnh sẽ được áp dụng bởi Decal .

  • Đọc Song Song
  • Đọc Song Song

    Xác định độ trong suốt của Decal với 0 hoàn toàn mờ nhạt và 1 hoàn toàn minh bạch.

  • Đọc Song Song

    Xác định trật tự hiển thị khi nhiều Decal được gán cùng một khuôn mặt.

Thuộc Tính kế thừa từ FaceInstance
  • Đọc Song Song

    Xác định khuôn mặt của gạch mà đối tượng xuất hiện.

Thuộc Tính

Color3

Đọc Song Song

Tông màu Color3 của Decal.

Các nhà phát triển nên lưu ý rằng thuộc tính này chỉ đặt màu nhuộm của nhãn dán, chứ không phải màu.Điều này có nghĩa là, trừ khi hình ảnh liên quan đến Decal không ban đầu là màu trắng (RGB = 1,1,1), thì màu không thể được thay đổi tự do bằng cách sử dụng tính năng này.

Bằng cách giảm các thuộc tính RGB của Color3 trong liên minh, các nhà phát triển có thể làm cho nhãn dán tối hơn.

Mẫu mã

This code sample creates a Decal in the workspace and changes its Decal.Color3 property on a loop using TweenService.

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

Ẩn
Không Sao Chép
Đọc Song Song

Hoạt động như một nhân cho tính chất Decal.Transparency của đề can. Các hiệu ứng chỉ có thể nhìn thấy ở Players.LocalPlayer .

Tính năng này nên được sử dụng trong các tình huống mà Decal.Transparency được đặt bởi một kịch bản khác.Lợi ích của LocalTransparencyModifier là nó có thể được thay đổi mà không quan tâm đến nguyên bản Decal.Transparency của Decal

Khi LocalTransparencyModifier được đặt thành 1, Decal sẽ hoàn toàn vô hình bất kể sự minh bạch ban đầu của nó.Khi được đặt thành 0, độ trong suốt của đề canđược hiển thị sẽ phù hợp với giá trị Decal.Transparency.Công thức cho việc này là:


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

Lưu ý, tính năng này chỉ nên được sử dụng trên khách hàng và sẽ không sao chép lên máy chủ.

Đối với một biến thể của thuộc tính này cho BaseParts , xem BasePart.LocalTransparencyModifier .

Texture

ContentId
Đọc Song Song

ID Nội dung của hình ảnh được áp dụng bởi Decal .

Làm thế nào để tải lên một Decal?

Hình ảnh có thể được tải lên Roblox miễn là tuân theo các hướng dẫn cộng đồng.Đối với thông tin về cách tải lên hình ảnh, xem Kết cấu và Hình xăm .

Làm thế nào để tìm kiếm ID Nội dung Decal?

Không giống như với SoundAnimation các đối tượng, ID Nội dung của một Decal không giống với số trong URL.Có hai cách chính để tìm ID Nội dung của Decal:

  • Sao chép URL vào thuộc tính Texture trong Roblox Studio.Roblox sẽ tự động cập nhật thuộc tính sang ID Nội dung chính xác.Lưu ý rằng nó chỉ hoạt động trong Roblox Studio và không thể thực hiện từ Các kịch bản hoặc trong khi trò chơi đang chạy.
  • Thêm nhãn dán vào trò chơi, điều này thường được thực hiện thông qua Hộp công cụ dưới 'Nhãn dán của tôi'.ID Nội dung có thể được tìm thấy trong decal được chèn vào.Lưu ý, InsertService:LoadAsset() cũng có thể được sử dụng nếu các nhà phát triển muốn tự động hóa phương pháp này.

Mẫu mã

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.

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

TextureContent

Đọc Song Song

Transparency

Đọc Song Song

Xác định độ trong suốt của Decal với 0 hoàn toàn mờ nhạt và 1 hoàn toàn minh bạch.

Lưu ý, Decals cũng tôn trọng sự minh bạch của tập tin hình ảnh gốc được tải lên Roblox.Điều này có nghĩa là minh bạch có thể được thay đổi trước khi tải lên Roblox, và không cần phải sử dụng thuộc tính Minh bạch.

Decal.LocalTransparencyModifier hành động như một nhân tố cho sự minh bạch của Decal và nên được sử dụng khi sự minh bạch của decal có thể bị thay đổi bởi một kịch bản khác, giống như trường hợp với nhân vật Người chơi.

Đối với BaseParts, xem BasePart.Transparency .

Mẫu mã

The code below will create a transparent Part with a decal that will fade in and out using TweenService and Decal.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

Đọc Song Song

ZIndex xác định thứ tự mà các nhãn dán trên cùng Face của một BasePart được hiển thị.Hình ảnh được hiển thị theo thứ tự ưu tiên tăng dần, nơi các giá trị thấp hơn được hiển thị trước tiên.Do đó, một nhãn dán với ZIndex cao hơn hiển thị sau (và trên) các nhãn dán khác với ZIndex thấp hơn.

Phạm vi các giá trị hợp lệ là -MAX_INT đến MAX_INT, bao gồm (2,147,483,647 hoặc (2^31 - 1)).Nếu bạn không chắc chắn liệu bạn có cần phải lớp một nhãn dán giữa hai nhãn dán hiện có trong tương lai hay không, nó có thể là một ý tưởng tốt để sử dụng nhân số 100, tức là0, 100, 200.Điều này đảm bảo một khoảng cách lớn của giá trị ZIndex bạn có thể sử dụng cho các thành phần được hiển thị giữa các thành phần khác.

Xem thêm:

  • GuiObject.ZIndex , một thuộc tính có hành vi tương tự, nhưng đối với các thành phần GUI

Phương Pháp

Sự Kiện