Decal
*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.
Objek Decal adalah objek yang menerapkan gambar ke wajah BasePart .
Bagaimana Decal bekerja?
Sebuah Decal akan menerapkan gambar ke BasePart yang menjadi orangtuanya.Permukaan gambar ini diterapkan tergantung pada properti FaceInstance.Face.Ukuran stiker tergantung pada ukuran wajah, artinya ukuran dan rasio aspek stiker dapat diubah dengan mengubah ukuran dan aspek orangtuanya BasePart.Size.
Gambar yang diterapkan oleh Decal ditentukan oleh propertinya Decal.Texture.Gambar dapat diunggah ke Roblox asalkan mereka mematuhi panduan komunitas.Untuk informasi tentang cara mengunggah gambar, lihat Tekstur dan Decal.
Alternatif untuk Decal
Meskipun Decal memiliki berbagai aplikasi, dalam beberapa kasus pengembang mungkin ingin memilih salah satu kelas berikut alih-alih.
- Untuk tekstur ubin yang diulang, objek Texture harus digunakan
- Untuk menerapkan elemen GUI, objek SurfaceGui harus digunakan
- Jika efek pencahayaan pada gambar perlu diubah, objek SurfaceGui harus digunakan
Contoh Kode
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
Rangkuman
Properti
Bertindak sebagai pengganda untuk properti stikerDecal.Transparency . Efek hanya terlihat oleh pemain lokal.
ContentId dari gambar yang akan diterapkan oleh Decal .
Menentukan transparansi dari Decal dengan 0 menjadi benar-benar buram dan 1 benar-benar transparan.
Menentukan urutan penyajian ketika beberapa Decal diberi wajah yang sama.
Tetapkan wajah apa dari batu bata objek muncul.
Properti
Color3
Pengembang harus memperhatikan bahwa properti ini hanya mengatur tinta dari stiker, bukan warna.Ini berarti, kecuali gambar yang terkait dengan Decal awalnya putih (RGB = 1,1,1) maka warna tidak dapat diubah bebas menggunakan properti ini.
Dengan mengurangi properti RGB dari Color3 dalam serikat, pengembang dapat membuat stiker lebih gelap.
Contoh Kode
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
Bertindak sebagai pengganda untuk properti stikerDecal.Transparency . Efek hanya terlihat oleh Players.LocalPlayer .
Properti ini harus digunakan dalam situasi di mana Decal.Transparency ditetapkan oleh skrip yang berbeda.Manfaat dari Modifikasi Transparansi Lokal adalah bahwa itu dapat diubah tanpa khawatir tentang asli Decal.Transparency dari Decal
Ketika Modifikasi Transparansi Lokal diatur ke 1, Decal akan sepenuhnya tidak terlihat terlepas dari transparansi aslinya.Ketika diatur ke 0, transparansi stikeryang dihasilkan akan cocok dengan nilai Decal.Transparency.Formula untuk ini adalah:
Displayed Transparency = Transparency + ((1 - Transparency) * LocalTransparencyModifier)
Catatan, properti ini harus digunakan hanya pada klien dan tidak akan direplikasi ke server.
Untuk variasi properti ini untuk BaseParts , lihat BasePart.LocalTransparencyModifier .
Texture
ID Konten dari gambar yang akan diterapkan oleh Decal .
Bagaimana saya bisa mengunggah Decal?
Gambar dapat diunggah ke Roblox asalkan mereka mematuhi panduan komunitas.Untuk informasi tentang cara mengunggah gambar, lihat Tekstur dan Decal.
Bagaimana cara menemukan saya menemukan ID Konten Decal?
Tidak seperti dengan Sound dan Animation objek, ID Konten dari Decal tidak sama dengan nomor di URL.Ada dua cara utama untuk menemukan ID Konten dari Decal:
- Lemparkan URL ke properti Texture di Roblox Studio.Roblox akan secara otomatis memperbarui properti ke ID Konten yang benar.Catat ini hanya berfungsi di Roblox Studio dan tidak dapat dilakukan dari Skrip atau saat permainan sedang berjalan.
- Masukkan Decal ke dalam game, ini umumnya dilakukan melalui Toolbox di bawah 'Decals Saya'.ID Konten dapat ditemukan dalam decal yang disisipkan.Catatan, InsertService:LoadAsset() dapat juga digunakan jika pengembang ingin mengotomatisasi metode ini.
Contoh Kode
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
Menentukan transparansi dari Decal dengan 0 menjadi benar-benar buram dan 1 benar-benar transparan.
Catatan, Decals juga menghormati transparansi file gambar asli yang diunggah ke Roblox.Ini berarti transparansi dapat diubah sebelum mengunggah ke Roblox, dan tanpa perlu menggunakan properti Transparansi.
Decal.LocalTransparencyModifier bertindak sebagai pengganda untuk transparansi Decal dan harus digunakan ketika transparansi decal kemungkinan akan diubah oleh skrip lain, seperti halnya dengan karakter pemain.
Untuk BaseParts , lihat BasePart.Transparency .
Contoh Kode
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 menentukan urutan di mana decal pada Face yang sama dari BasePart diberikan.Decal dibuat dalam urutan prioritas menaik dari ke atas , di mana nilai yang lebih rendah ditampilkan terlebih dahulu.Oleh karena itu, stiker dengan ZIndex yang lebih tinggi menampilkan nanti (dan di atas) stiker lain dengan ZIndex yang lebih rendah.
Kisaran nilai yang valid adalah -MAX_INT ke MAX_INT, termasuk (2,147,483,647 atau (2^31 - 1)).Jika Anda tidak yakin apakah Anda akan perlu melapisi stiker di antara dua stiker yang sudah ada di masa depan, itu bisa menjadi ide bagus untuk menggunakan multiplikasi 100, yaitu0, 100, 200.Ini memastikan celah besar nilai ZIndex yang dapat Anda gunakan untuk elemen yang disajikan di antara elemen lain.
Lihat juga:
- GuiObject.ZIndex , properti yang berperilaku serupa, tetapi untuk elemen GUI