Engine-Klasse
ParticleEmitter
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
Zusammenfassung
Eigenschaften
Texture:ContentId |
Code-Beispiele
Erstellen eines Partikelemitters von Grund auf
local emitter = Instance.new("ParticleEmitter")
-- Anzahl der Partikel = Rate * Lebensdauer
emitter.Rate = 5 -- Partikel pro Sekunde
emitter.Lifetime = NumberRange.new(1, 1) -- Wie lange die Partikel leben sollen (min, max)
emitter.Enabled = true
-- Visuelle Eigenschaften
emitter.Texture = "rbxassetid://1266170131" -- Ein transparentes Bild eines weißen Rings
-- Für die Farbe, bauen Sie eine ColorSequence mit ColorSequenceKeypoint
local colorKeypoints = {
-- API: ColorSequenceKeypoint.new(time, color)
ColorSequenceKeypoint.new(0, Color3.new(1, 1, 1)), -- Bei t=0, Weiß
ColorSequenceKeypoint.new(0.5, Color3.new(1, 0.5, 0)), -- Bei t=.5, Orange
ColorSequenceKeypoint.new(1, Color3.new(1, 0, 0)), -- Bei t=1, Rot
}
emitter.Color = ColorSequence.new(colorKeypoints)
local numberKeypoints = {
-- API: NumberSequenceKeypoint.new(time, size, envelop)
NumberSequenceKeypoint.new(0, 1), -- Bei t=0, vollständig transparent
NumberSequenceKeypoint.new(0.1, 0), -- Bei t=.1, vollständig undurchsichtig
NumberSequenceKeypoint.new(0.5, 0.25), -- Bei t=.5, überwiegend undurchsichtig
NumberSequenceKeypoint.new(1, 1), -- Bei t=1, vollständig transparent
}
emitter.Transparency = NumberSequence.new(numberKeypoints)
emitter.LightEmission = 1 -- Wenn Partikel sich überlappen, multiplizieren Sie ihre Farbe, um heller zu sein
emitter.LightInfluence = 0 -- Nicht von der Weltbeleuchtung beeinflusst werden
-- Geschwindigkeitseigenschaften
emitter.EmissionDirection = Enum.NormalId.Front -- Vorwärts emittieren
emitter.Speed = NumberRange.new(0, 0) -- Geschwindigkeit von null
emitter.Drag = 0 -- Keine Verzögerung auf die Partikelbewegung anwenden
emitter.VelocitySpread = NumberRange.new(0, 0)
emitter.VelocityInheritance = 0 -- Keine Elterngeschwindigkeit erben
emitter.Acceleration = Vector3.new(0, 0, 0)
emitter.LockedToPart = false -- Partikel nicht am Elternobjekt befestigen
emitter.SpreadAngle = Vector2.new(0, 0) -- Kein Streuwinkel auf beiden Achsen
-- Simulationseigenschaften
local numberKeypoints2 = {
NumberSequenceKeypoint.new(0, 0), -- Bei t=0, Größe von 0
NumberSequenceKeypoint.new(1, 10), -- Bei t=1, Größe von 10
}
emitter.Size = NumberSequence.new(numberKeypoints2)
emitter.ZOffset = -1 -- Etwas hinter der tatsächlichen Position rendern
emitter.Rotation = NumberRange.new(0, 360) -- Zufällige Rotation zu Beginn
emitter.RotSpeed = NumberRange.new(0) -- Während der Simulation nicht rotieren
-- Erstellen Sie eine Befestigung, damit Partikel vom genau gleichen Punkt emittieren (konzentrische Ringe)
local attachment = Instance.new("Attachment")
attachment.Position = Vector3.new(0, 5, 0) -- Befestigung etwas nach oben verschieben
attachment.Parent = script.Parent
emitter.Parent = attachmentAPI-Referenz
Eigenschaften
Texture
ParticleEmitter.Texture:ContentId
VelocitySpread
Methoden
Clear
ParticleEmitter:Clear():()
Rückgaben
()
Code-Beispiele
Partikelemitter Burst
local emitter = script.Parent
while true do
emitter:Clear()
emitter:Emit(10)
task.wait(2)
endEmit
Parameter
| Standardwert: 16 |
Rückgaben
()
Code-Beispiele
Partikel über Distanz ausgeben
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 = falsePartikelemitter Burst
local emitter = script.Parent
while true do
emitter:Clear()
emitter:Emit(10)
task.wait(2)
end