Smoke

Artık kullanılmayanları göster

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

Add Smoke to All Fire

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

  • Paralel oku

    Duman parçacıklarının rengini belirler.

  • Paralel oku

    Duman parçacıklarının yayılıp yayılmadığını belirler.

  • Gizli
    Çoğaltılmamış
    Paralel oku
  • Çoğaltılmamış
    Paralel oku

    Opak duman parçacıklarının nasıl göründüğünü belirler.

  • Çoğaltılmamış
    Paralel oku

    Duman parçacıklarının hızını belirler.

  • Çoğaltılmamış
    Paralel oku

    Yeni yayılan duman parçacıklarının boyutunu belirler.

  • Paralel oku

    Parçacık etkisinin hızını kontrol eden 0-1 arasındaki değer.

Özellikler

Color

Paralel oku

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.

Add Smoke to All Fire

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

Paralel oku

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.

Add Smoke to All Fire

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

Gizli
Çoğaltılmamış
Paralel oku

Opacity

Çoğaltılmamış
Paralel oku

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.

Add Smoke to All Fire

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

Çoğaltılmamış
Paralel oku

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.

Add Smoke to All Fire

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

Çoğaltılmamış
Paralel oku

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.

Add Smoke to All Fire

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

Paralel oku

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.

Yöntemler

Etkinlikler