Smoke

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.

Khói là một trong nhiều lớp phát hạt.Giống như các phát xạ viên hạt khác của loại của nó, các đối tượng khói phát ra các hạt khi được cha mẹ hóa với một BasePart (như một Part ) hoặc một Attachment trong một BasePart như vậy.So với lớp ParticleEmitter , Smoke thiếu nhiều tính năng tùy chỉnh khác nhau và các phương pháp đặc biệt, chẳng hạn như ParticleEmitter.Lifetime hoặc ParticleEmitter:Emit() .Thiết lập nhanh một hiệu ứng đặc biệt trong một tích tắc là hữu ích; đối với công việc chi tiết hơn, tốt hơn là nên sử dụng một ParticleEmitter thay thế.

Khi Smoke.Enabled bị tắt, các hạt phát ra bởi đối tượng này sẽ tiếp tục hiển thị cho đến khi hết thời gian sống của chúng.Khi một đối tượng Khói được đặt thành (và/hoặc chỉnh sửa), tất cả các hạt sẽ biến mất ngay lập tức.Nếu hiệu ứng này không mong muốn, hãy thử che khu vực cha ở một vị trí xa, sau đó xóa khói sau vài giây bằng cách sử dụng Debris để cho các hạt cuối cùng có cơ hội hết hạn.Vật phẩm này không có phương pháp ParticleEmitter:Clear() , nhưng có thể thiết lập Instance.Parent đến nil và trở lại cùng một vật phẩm chính xác cho cùng một hiệu ứng.

Các hạt khói chỉ được phát ra từ trung tâm của BasePart đến nơi chúng được cha mẹ.Nuôi một đối tượng Khói lên một Attachment thay vì cho phép tùy chỉnh vị trí bắt đầu của các hạt.

Mẫu mã

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)

Tóm Tắt

Thuộc Tính

  • Đọc Song Song

    Xác định màu của các hạt khói.

  • Đọc Song Song

    Xác định xem các hạt khói có phát ra hay không.

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

    Xác định cách các hạt khói mờ được hiển thị.

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

    Xác định tốc độ của các hạt khói.

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

    Xác định kích thước của các hạt khói mới phát ra.

  • Đọc Song Song

    Giá trị nằm giữa 0-1 kiểm soát tốc độ của hiệu ứng hạt.

Thuộc Tính

Color

Đọc Song Song

Thuộc tính Màu xác định màu của tất cả các hạt phát ra bởi một đối tượng Smoke (cả hạt hiện tại và tương lai).Nó hành xử tương tự như ParticleEmitter.Color , ngoại trừ rằng nó chỉ có một màu và không phải là ColorSequence .Một màu trắng với một số Smoke.Opacity màu trắng tạo ra một hiệu ứng sương mù đẹp, và một màu đen rất mờ có thể bổ sung cho một đối tượng Fire đẹp.

Mẫu mã

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

Đọc Song Song

Tính năng Enabled, giống như ParticleEmitter.Enabled, xác định xem các hạt khói có được phát ra hay không.Bất kỳ hạt nào đã phát ra sẽ tiếp tục hiển thị cho đến khi hết thời gian sống của chúng.Tính năng này hữu ích để giữ các hiệu ứng khói đã làm trước khi cần đến chúng sau này.Vì các hạt khói bị phá hủy khi đối tượng Smoke của Instance.Parent được đặt thành nil , tính năng này hữu ích trong việc cho phép các hạt hiện có có cơ hội hết hạn trước khi tiêu diệt hoàn toàn đối tượng Lửa.Xem chức năng bên dưới.


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)

Mẫu mã

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

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

Opacity

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

Độ mờ định lượng độ mờ của các hạt khói.Nó phải nằm trong phạm vi [0, 1].Tính chất này hoạt động ngược lại so với một phần BasePart.Transparency hoặc ParticleEmitter's ParticleEmitter.Transparency : giá trị 0 hoàn toàn vô hình, 1 hoàn toàn có thể nhìn thấy.

Kết cấu mà Roblox sử dụng cho Smoke hạt là một phần trong suốt, vì vậy việc đặt tính chất này thành 1 vẫn cho thấy sự minh bạch trong khói được hiển thị

Mẫu mã

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

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

RiseVelocity hành xử tương tự như ParticleEmitter.SpeedFire.Heat : nó xác định tốc độ di chuyển của các hạt khói trong suốt cuộc sống của chúng.Nó phải nằm trong phạm vi [-25, 25].Các giá trị âm sẽ gây ra các hạt phát ra theo hướng dưới cùng (-Y) của cha mẹ BasePart .

Khi sử dụng một hiệu ứng Smoke để tạo sương mù, hãy đặt thuộc tính này thành 0.Đối với các hiệu ứng khói lớn, làm cho sự gia tăng tinh tế (2 đến 8).Đối với lò sưởi và ống khói, các giá trị cao hơn là thích hợp.

Mẫu mã

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

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

Thuộc tính Kích thước của Smoke xác định kích thước của các hạt khói mới được phát ra.Không giống như Smoke.Color , thuộc tính này sẽ không thay đổi kích cỡ của các hạt hiện có.Nó phải nằm trong phạm vi [0.1, 100].Không giống như ParticleEmitter.Size , thuộc tính này chỉ là một số (không phải là NumberSequence ).Cũng lưu ý rằng kích thước của các hạt không phải là 1-to-1 với studs; thực tế, kích thước của hạt khói lớn hơn gấp hơn hai lần.Ở kích thước lớn nhất, các hạt khói có thể hiển thị lớn hơn 200 đinh tán rộng!

Mẫu mã

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

Đọc Song Song

Một giá trị nằm giữa 0-1 hơn kiểm soát tốc độ của hiệu ứng hạt.Tại 1 nó chạy với tốc độ bình thường, tại 0.5 nó chạy với tốc độ một nửa và tại 0 nó đóng băng thời gian.

Phương Pháp

Sự Kiện