Smoke
*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.
Duman birkaç parçacık yayan sınıflardan biridir.Türündeki diğer parçacık yayıcılar gibi, Duman nesneleri bir BasePart (örneğin bir Part ) veya böyle bir Attachment içinde bir BasePart içine yayılan parçacıklar yayar.ParticleEmitter sınıfına kıyasla, Duman'ın birçok farklı özelleştirme özelliği ve özel yöntemi eksik, örneğin ParticleEmitter.Lifetime veya ParticleEmitter:Emit().Bir çırpıda hızlı bir özel efekt oluşturmak yararlıdır; daha ayrıntılı çalışmalar için bunun yerine bir ParticleEmitter kullanmak tercih edilir.
Smoke.Enabled kapalı, bu nesne tarafından yayılan parçacıklar ömürleri sona erene kadar renderlanmaya devam edecek.Bir Duman nesnesinin Instance.Parent ı nil (ve/veya Instance:Destroy() ed) olarak ayarlanırsa, tüm parçacıklar anında kaybolur.Bu etki istemiyorsanız, ebeveyn nesneyi uzak bir konumda gizlemeyi deneyin, ardından Debris kullanarak birkaç saniye sonra dumanı kaldırın, son parçacıklara bir şans vermek için.Bu nesnenin bir yöntemi yok, ancak aynı etki için aynı nesneye ve geri dönmek mümkündür.
Duman parçacıkları yalnızca ebeveyn oldukları BasePart merkezinin merkezinden yayılır.Bir Duman nesnesini bir Attachment yerine ebeveynleştirmek, parçacıkların başlangıç pozisyonunun özelleştirilmesine izin verir.
Kod Örnekleri
This code sample adds a Smoke object to every Fire object in the Workspace. It does this by using a recursive search.
local function recurseForFire(object)
-- Check if we found a Fire object that has no Smoke
if object:IsA("Fire") and not object.Parent:FindFirstChildOfClass("Smoke") then
-- Create a smoke effect for this fire
local smoke = Instance.new("Smoke")
smoke.Color = Color3.new(0, 0, 0)
smoke.Opacity = 0.15
smoke.RiseVelocity = 4
smoke.Size = object.Size / 4
smoke.Parent = object.Parent
end
-- Continue search for Fire objects
for _, child in pairs(object:GetChildren()) do
recurseForFire(child)
end
end
recurseForFire(workspace)
Özet
Özellikler
Duman parçacıklarının rengini belirler.
Duman parçacıklarının yayılıp yayılmadığını belirler.
Opak duman parçacıklarının nasıl göründüğünü belirler.
Duman parçacıklarının hızını belirler.
Yeni yayılan duman parçacıklarının boyutunu belirler.
Parçacık etkisinin hızını kontrol eden 0-1 arasındaki değer.
Özellikler
Color
Renk özelliği, bir Smoke nesnesi tarafından yayılan tüm parçacıkların rengini belirler (hem mevcut hem de gelecekteki parçacıklar).Sadece bir renk olduğu ve bir ParticleEmitter.Color olmadığı dışında çok benzer davranır ColorSequence .Biraz Smoke.Opacity beyaz renk, güzel bir sis efekti yaratır ve çok opak bir siyah renk bir Fire nesneyi güzel bir şekilde tamamlayabilir.
Kod Örnekleri
This code sample adds a Smoke object to every Fire object in the Workspace. It does this by using a recursive search.
local function recurseForFire(object)
-- Check if we found a Fire object that has no Smoke
if object:IsA("Fire") and not object.Parent:FindFirstChildOfClass("Smoke") then
-- Create a smoke effect for this fire
local smoke = Instance.new("Smoke")
smoke.Color = Color3.new(0, 0, 0)
smoke.Opacity = 0.15
smoke.RiseVelocity = 4
smoke.Size = object.Size / 4
smoke.Parent = object.Parent
end
-- Continue search for Fire objects
for _, child in pairs(object:GetChildren()) do
recurseForFire(child)
end
end
recurseForFire(workspace)
Enabled
Etkin özellik, tıpkı ParticleEmitter.Enabled gibi, duman parçacıklarının yayılıp yayılmadığını belirler.Zaten yayılan herhangi bir parçacık, ömürleri sona erene kadar renderlanmaya devam edecektir.Bu özellik, daha sonra gerekli olana kadar önceden yapılmış duman efektlerini korumak için yararlıdır.Duman parçacıkları, nesnenin ayarlandığında yok edildiğinden, bu özellik, mevcut parçacıkların Ateş nesnesini tümüyle yok etmeden önce sona erişmesine izin veren bir özelliktir.Aşağıdaki işlevi görün.
local Debris = game:GetService("Debris")
local part = script.Parent
function stopSmoke(smoke)
smoke.Enabled = false -- No more new particles
Debris:AddItem(smoke, 10) -- Remove the object after a delay (after existing particles have expired)
end
stopSmoke(part.Smoke)
Kod Örnekleri
This code sample adds a Smoke object to every Fire object in the Workspace. It does this by using a recursive search.
local function recurseForFire(object)
-- Check if we found a Fire object that has no Smoke
if object:IsA("Fire") and not object.Parent:FindFirstChildOfClass("Smoke") then
-- Create a smoke effect for this fire
local smoke = Instance.new("Smoke")
smoke.Color = Color3.new(0, 0, 0)
smoke.Opacity = 0.15
smoke.RiseVelocity = 4
smoke.Size = object.Size / 4
smoke.Parent = object.Parent
end
-- Continue search for Fire objects
for _, child in pairs(object:GetChildren()) do
recurseForFire(child)
end
end
recurseForFire(workspace)
LocalTransparencyModifier
Opacity
Opaklık, duman parçacıklarının opaklığını belirler.Aralığın içinde olmalı [0, 1].Bu özellik bir parçanın veya Parçacık Yayıcısının ına göre ters çalışır : 0 değeri tamamen görünmez, 1 tamamen görünürdür.
Roblox'un Smoke parçacıkları için kullandığı doküman dokusu kısmen saydamdır, bu nedenle bu özelliği 1'e ayarlamak hala renderlenmiş dumanlarda saydamlık sağlar
Kod Örnekleri
This code sample adds a Smoke object to every Fire object in the Workspace. It does this by using a recursive search.
local function recurseForFire(object)
-- Check if we found a Fire object that has no Smoke
if object:IsA("Fire") and not object.Parent:FindFirstChildOfClass("Smoke") then
-- Create a smoke effect for this fire
local smoke = Instance.new("Smoke")
smoke.Color = Color3.new(0, 0, 0)
smoke.Opacity = 0.15
smoke.RiseVelocity = 4
smoke.Size = object.Size / 4
smoke.Parent = object.Parent
end
-- Continue search for Fire objects
for _, child in pairs(object:GetChildren()) do
recurseForFire(child)
end
end
recurseForFire(workspace)
RiseVelocity
RiseVelocity, ParticleEmitter.Speed ve Fire.Heat ile benzer şekilde davranır: duman parçacıklarının ömür boyunca ne kadar hızlı hareket ettiğini belirler.Aralığında olmalı [-25, 25].Negatif değerler, parçacıkların ebeveyn BasePart 'in alt (-Y) yönünde yayılmasına neden olacaktır.
Sis oluşturmak için bir Smoke efektini kullandığınızda, bu özelliği 0 olarak ayarlayın.Büyük duman etkileri için, yükselişi ince (2 ila 8) yapın.Kaminler ve duman yığınları için, daha yüksek değerler uygundur.
Kod Örnekleri
This code sample adds a Smoke object to every Fire object in the Workspace. It does this by using a recursive search.
local function recurseForFire(object)
-- Check if we found a Fire object that has no Smoke
if object:IsA("Fire") and not object.Parent:FindFirstChildOfClass("Smoke") then
-- Create a smoke effect for this fire
local smoke = Instance.new("Smoke")
smoke.Color = Color3.new(0, 0, 0)
smoke.Opacity = 0.15
smoke.RiseVelocity = 4
smoke.Size = object.Size / 4
smoke.Parent = object.Parent
end
-- Continue search for Fire objects
for _, child in pairs(object:GetChildren()) do
recurseForFire(child)
end
end
recurseForFire(workspace)
Size
Smoke özelliğinin boyutu yeni yayılan duman parçacıklarının boyutunu belirler.Smoke.Color 'den farklı olarak, bu özellik mevcut parçacıkların boyutunu değiştirmeyecektir.Aralığında olmalı [0.1, 100].ParticleEmitter.Size 'den farklı olarak, bu özellik sadece bir sayıdır (bir NumberSequence değil).Ayrıca, parçacıkların boyutunun çivilerle 1:1 olmadığını da unutmayın; aslında, duman parçacığının boyutu iki kat daha büyük.En büyük boyutta, duman parçacıkları 200 çivilerden daha geniş görünebilir!
Kod Örnekleri
This code sample adds a Smoke object to every Fire object in the Workspace. It does this by using a recursive search.
local function recurseForFire(object)
-- Check if we found a Fire object that has no Smoke
if object:IsA("Fire") and not object.Parent:FindFirstChildOfClass("Smoke") then
-- Create a smoke effect for this fire
local smoke = Instance.new("Smoke")
smoke.Color = Color3.new(0, 0, 0)
smoke.Opacity = 0.15
smoke.RiseVelocity = 4
smoke.Size = object.Size / 4
smoke.Parent = object.Parent
end
-- Continue search for Fire objects
for _, child in pairs(object:GetChildren()) do
recurseForFire(child)
end
end
recurseForFire(workspace)
TimeScale
0-1 arasındaki bir değer parçacık etkisinin hızını kontrol eder.1'de normal hızda çalışır, 0.5'te yarı hızda çalışır ve 0'da zaman donar.