Decal
*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.
Decal object là một đối tượng áp dụng hình ảnh lên một trang 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 gắn với. Bề mặt mà hình ảnh được áp dụng đều phụ thuộc vào FaceInstance.Face thuộc tính. Kích thước của hình ả
Hình ảnh mà một Decal áp dụng được xác định bởi thuộc tính của nó Decal.Texture . Hình ảnh có thể được tải lên Roblox miễn là chúng tuân theo các hướng dẫn cộng đồng. Để biết cách tải hình ảnh, hãy xem Textures và Decals .
Alternatives for Decals
Mặc dù Decals có một loạt các ứng dụng, nhưng trong một số trường hợp, các nhà phát triển có thể muốn chọn một trong những lớp sau đây thay vào đó.
- Đối với các thành phần textures lặp lại, thể Texture đượ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 phải được thay đổi, thì đối tượng SurfaceGui nên được sử dụng
Mẫu mã
-- 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
Màu sắc Color3 của Class.Decal .
Hành động như một nhân tố nhân bản cho đặ性 Decal.Transparency của hình ảnh. Hiệu ứng chỉ được hiển thị cho người chơi địa phương.
Id hình ảnh để được áp dụng bởi Decal .
Xác định độ trong suốt của Decal với 0 hoàn toàn bị mờ và 1 hoàn toàn trong suốt.
Xác định thứ tự xử lý khi nhiều hình ảnh được gắn với cùng một khuôn mặt.
Đặt vị trí mặt của đối tượng lên trên khuôn mặt gạch.
Thuộc Tính
Color3
Màu sắc Color3 của Class.Decal .
Các nhà phát triển nên lưu ý rằng thuộc tính này chỉ đặt màu của hình ảnh, chứ không phải màu. Điều này có nghĩa là, trừ khi hình ảnh được liên kết với Decal ban đầu là trắng (RGB = 1,1,1) thì màu này không thể được thay đổi mà
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 một decal tối hơn.
Mẫu mã
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
Hành động như một nhân tố nhân bản cho đặc tính Decal.Transparency của đề can. Các hiệu ứng chỉ được hiển thị cho Players.LocalPlayer .
Đặ性 này nên được sử dụng trong những tình huống nơi Decal.Transparency được định bởi một script khác. Lợi ích của LocalTransparencyModifier là nó có thể được thay đổi mà không lo lắng về nguyên bản Decal.Transparency của Decal
Khi LocalTransparencyModifier được đặt để 1, Decal sẽ hoàn toàn vô hình bất kể độ trong suốt của nó. Khi nó được đặt để 0, độ trong suốt của đề cansẽ khớp nối với giá trị Decal.Transparency . Công thức cho điều này là:
Displayed Transparency = Transparency + ((1 - Transparency) * LocalTransparencyModifier)
Ghi chú, thuộc tính này chỉ nên được sử dụng trên máy chủ và sẽ không bị sao chép đế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
ID Nội dung của hình ảnh để được áp dụng bởi Decal .
Làm thế nào để tải một Decal?
Hình ảnh có thể được tải lên Roblox miễn là chúng tuân theo các hướng dẫn cộng đồng. Để biết thông tin về cách tải lên hình ảnh, hãy xem Textures and Decals .
Làm thế nào để tìm kiếm Decal's Content ID?
Ngoài với Sound và Animation nối dụng, ID nội dung của một Decal không giống như số trong URL. Có hai cách chính để tìm ID nội dung của một Decal:
- Hãy vừa URL vào thuộc tính Texture trong Roblox Studio. Roblox sẽ tự động cập nhật thuộc tính này lên Content ID chính xác. Ghi nhớ điều này chỉ hoạt động trong Roblox Studio và không thể thực hiện nó từ Scripts hoặc khi game đang chạy.
- Thêm Decal vào trò chơi, thông thường điều này được thực hiện thông qua Hộp công cụ dưới 'Các Decal của tôi'. ID Nội dung có thể được tìm thấy trong decal được thêm. Ghi chú, InsertService:LoadAsset() cũng có thể được sử dụng nếu các nhà phát triển muốn tự động h
Mẫu mã
-- 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
Xác định độ trong suốt của Decal với 0 hoàn toàn bị mờ và 1 hoàn toàn trong suốt.
Ghi chú, Decals cũng tôn trọng sự trong suốt của tập tin hình ảnh gốc đã tải lên Roblox. Điều này có nghĩa là sự trong suốt có thể được thay đổi trước khi tải lên Roblox, và mà không cần phải sử dụng thuộc tính Transparency.
Decal.LocalTransparencyModifier hành động như một hệ số nhân cho độ trong suốt của Decal và nên được sử dụng khi độ trong suốt của Decal có thể được thay đổi bởi một script khác, như là trường hợp với các nhân vật người chơi.
Đối với BaseParts, xem BasePart.Transparency .
Mẫu mã
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 định thứ tự mà decal trên cùng Face của một BasePart được hiển thị. Decal được hiển thị theo thứ tự ưu tiên cao nhất, nơi giá trị thấp hơn được hi
Gạch đếm -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 rằng bạn sẽ cần phải lớp một decal giữa hai decal đã tồn tại trong tươ
Xem thêm:
- GuiObject.ZIndex , một đặt tính tương tự, nhưng cho các thành phần GUI