概要
属性
Texture:ContentId |
代码示例
从头创建粒子发射器
local emitter = Instance.new("ParticleEmitter")
-- 粒子数量 = 速率 * 生命周期
emitter.Rate = 5 -- 每秒粒子数
emitter.Lifetime = NumberRange.new(1, 1) -- 粒子应存活的时间(最小,最大)
emitter.Enabled = true
-- 可视属性
emitter.Texture = "rbxassetid://1266170131" -- 一张透明的白色圆环图片
-- 对于颜色,使用 ColorSequenceKeypoint 构建一个 ColorSequence
local colorKeypoints = {
-- API: ColorSequenceKeypoint.new(time, color)
ColorSequenceKeypoint.new(0, Color3.new(1, 1, 1)), -- 在 t=0,白色
ColorSequenceKeypoint.new(0.5, Color3.new(1, 0.5, 0)), -- 在 t=.5,橙色
ColorSequenceKeypoint.new(1, Color3.new(1, 0, 0)), -- 在 t=1,红色
}
emitter.Color = ColorSequence.new(colorKeypoints)
local numberKeypoints = {
-- API: NumberSequenceKeypoint.new(time, size, envelop)
NumberSequenceKeypoint.new(0, 1), -- 在 t=0,完全透明
NumberSequenceKeypoint.new(0.1, 0), -- 在 t=.1,完全不透明
NumberSequenceKeypoint.new(0.5, 0.25), -- 在 t=.5,主要不透明
NumberSequenceKeypoint.new(1, 1), -- 在 t=1,完全透明
}
emitter.Transparency = NumberSequence.new(numberKeypoints)
emitter.LightEmission = 1 -- 当粒子重叠时,乘以它们的颜色使其更亮
emitter.LightInfluence = 0 -- 不受世界光照影响
-- 速度属性
emitter.EmissionDirection = Enum.NormalId.Front -- 向前发射
emitter.Speed = NumberRange.new(0, 0) -- 速度为零
emitter.Drag = 0 -- 不对粒子运动施加阻力
emitter.VelocitySpread = NumberRange.new(0, 0)
emitter.VelocityInheritance = 0 -- 不继承父级速度
emitter.Acceleration = Vector3.new(0, 0, 0)
emitter.LockedToPart = false -- 不将粒子锁定到父级
emitter.SpreadAngle = Vector2.new(0, 0) -- 在任一轴上没有扩散角度
-- 模拟属性
local numberKeypoints2 = {
NumberSequenceKeypoint.new(0, 0), -- 在 t=0,大小为0
NumberSequenceKeypoint.new(1, 10), -- 在 t=1,大小为10
}
emitter.Size = NumberSequence.new(numberKeypoints2)
emitter.ZOffset = -1 -- 渲染略微在实际位置后面
emitter.Rotation = NumberRange.new(0, 360) -- 从随机旋转开始
emitter.RotSpeed = NumberRange.new(0) -- 在模拟期间不旋转
-- 创建一个附件,以便粒子从确切相同的位置发射(同心环)
local attachment = Instance.new("Attachment")
attachment.Position = Vector3.new(0, 5, 0) -- 将附件稍微向上移动
attachment.Parent = script.Parent
emitter.Parent = attachmentAPI 参考
属性
Texture
ParticleEmitter.Texture:ContentId
VelocitySpread
方法
Clear
ParticleEmitter:Clear():()
返回
()
代码示例
粒子发射器爆发
local emitter = script.Parent
while true do
emitter:Clear()
emitter:Emit(10)
task.wait(2)
endEmit
参数
| 默认值:16 |
返回
()
代码示例
释放粒子 零距离
local RunService = game:GetService("RunService")
local emitter = script.Parent
local part = emitter.Parent
local PARTICLES_PER_STUD = 3
local lastPosition = part.Position
local distance = 0
local function onStep()
local displacement = part.Position - lastPosition
distance = distance + displacement.magnitude
local n = math.floor(distance * PARTICLES_PER_STUD)
emitter:Emit(n)
distance = distance - n / PARTICLES_PER_STUD
lastPosition = part.Position
end
RunService.Stepped:Connect(onStep)
emitter.Enabled = false粒子发射器爆发
local emitter = script.Parent
while true do
emitter:Clear()
emitter:Emit(10)
task.wait(2)
end