Script interface for ParticleSystem. Unity's powerful and versatile particle system implementation.
General parameters
The Particle System's general parameters are kept inside a special Main module. These parameters are visible in the Inspector above all the other modules:
In script, these parameters are accessible through ParticleSystem.main.
Accessing module properties
Particle System properties are grouped by the module they belong to, such as ParticleSystem.noise and ParticleSystem.emission. These properties are structs, but do not behave like normal C# structs. They are simply interfaces directly into the native code, so it is important to know how to use them, ccompared to a normal C# struct.
The key difference is that it is not necessary to assign the struct back to the Particle System component. When you set any property on a module struct, Unity immediately assigns that value to the Particle System.
Also, because each module is a struct, you must cache it in a local variable before you can assign any new values to the module. For example, instead of:
ParticleSystem.emission.enabled = true; // Doesn't compile
write:
var emission = ParticleSystem.emission; // Stores the module in a local variable
emission.enabled = true; // Applies the new value directly to the Particle System
Module effect multipliers
Every module has special multiplier properties that allow you to change the overall effect of a curve without having to edit the curve itself. These multiplier properties are all named after the curve they affect - for instance ParticleSystem.emission.rateMultiplier controls the overall effect of ParticleSystem.emission.rate in a given system.
Constant value shorthand
Parameters support a shorthand notation for simple constant values. To set a constant value for a parameter, all you need to do is assign a number to it. It is not necessary to create a MinMaxCurve or MinMaxGradient object in the ParticleSystemCurveMode.Constant mode.
For example, instead of:
var emission = ParticleSystem.emission;
emission.rate = new ParticleSystem.MinMaxCurve(5.0f);
write:
var emission = ParticleSystem.emission;
emission.rate = 5.0f;
Performance note: When setting properties on particle modules, the settings are passed immediately into native code. This gives the best performance. This means that setting properties on a module struct doesn't set something in script that requires setting back to the Particle System; it all happens automatically.
See Also: Particle.
collision | Script interface for the CollisionModule of a Particle System. |
colorBySpeed | Script interface for the ColorByLifetimeModule of a Particle System. |
colorOverLifetime | Script interface for the ColorOverLifetimeModule of a Particle System. |
customData | Script interface for the CustomDataModule of a Particle System. |
emission | Script interface for the EmissionModule of a Particle System. |
externalForces | Script interface for the ExternalForcesModule of a Particle System. |
forceOverLifetime | Script interface for the ForceOverLifetimeModule of a Particle System. |
inheritVelocity | Script interface for the InheritVelocityModule of a Particle System. |
isEmitting | Determines whether the Particle System is emitting particles. A Particle System may stop emitting when its emission module has finished, it has been paused or if the system has been stopped using Stop with the StopEmitting flag. Resume emitting by calling Play. |
isPaused | Determines whether the Particle System is paused. |
isPlaying | Determines whether the Particle System is playing. |
isStopped | Determines whether the Particle System is in the stopped state. |
lifetimeByEmitterSpeed | Script interface for the Particle System Lifetime By Emitter Speed module. |
lights | Script interface for the LightsModule of a Particle System. |
limitVelocityOverLifetime | Script interface for the LimitVelocityOverLifetimeModule of a Particle System. . |
main | Access the main Particle System settings. |
noise | Script interface for the NoiseModule of a Particle System. |
particleCount | 現在のパーティクル数(読み取り専用) |
proceduralSimulationSupported | Does this system support Procedural Simulation? |
randomSeed | Override the random seed used for the Particle System emission. |
rotationBySpeed | Script interface for the RotationBySpeedModule of a Particle System. |
rotationOverLifetime | Script interface for the RotationOverLifetimeModule of a Particle System. |
shape | Script interface for the ShapeModule of a Particle System. |
sizeBySpeed | Script interface for the SizeBySpeedModule of a Particle System. |
sizeOverLifetime | Script interface for the SizeOverLifetimeModule of a Particle System. |
subEmitters | Script interface for the SubEmittersModule of a Particle System. |
textureSheetAnimation | Script interface for the TextureSheetAnimationModule of a Particle System. |
time | 秒単位での再生位置 |
trails | Script interface for the TrailsModule of a Particle System. |
trigger | Script interface for the TriggerModule of a Particle System. |
useAutoRandomSeed | Controls whether the Particle System uses an automatically-generated random number to seed the random number generator. |
velocityOverLifetime | Script interface for the VelocityOverLifetimeModule of a Particle System. |
AllocateAxisOfRotationAttribute | Ensures that the axisOfRotations particle attribute array is allocated. |
AllocateCustomDataAttribute | Ensures that the customData1 and customData2 particle attribute arrays are allocated. |
AllocateMeshIndexAttribute | Ensures that the meshIndices particle attribute array is allocated. |
Clear | Remove all particles in the Particle System. |
Emit | 設定した数のパーティクルをすぐに放出します |
GetCustomParticleData | Get a stream of custom per-particle data. |
GetParticles | Gets the particles of this Particle System. |
GetPlaybackState | Returns all the data that relates to the current internal state of the Particle System. |
GetTrails | Returns all the data relating to the current internal state of the Particle System Trails. |
IsAlive | Does the Particle System contain any live particles, or will it produce more? |
Pause | Pauses the system so no new particles are emitted and the existing particles are not updated. |
Play | Starts the Particle System. |
SetCustomParticleData | Set a stream of custom per-particle data. |
SetParticles | Sets the particles of this Particle System. |
SetPlaybackState | Use this method with the results of an earlier call to ParticleSystem.GetPlaybackState, in order to restore the Particle System to the state stored in the playbackState object. |
SetTrails | Use this method with the results of an earlier call to ParticleSystem.GetTrails, in order to restore the Particle System to the state stored in the Trails object. |
Simulate | Fast-forwards the Particle System by simulating particles over the given period of time, then pauses it. |
Stop | Stops playing the Particle System using the supplied stop behaviour. |
TriggerSubEmitter | Triggers the specified sub emitter on all particles of the Particle System. |
ResetPreMappedBufferMemory | Reset the cache of reserved graphics memory used for efficient rendering of Particle Systems. |
SetMaximumPreMappedBufferCounts | Limits the amount of graphics memory Unity reserves for efficient rendering of Particle Systems. |
gameObject | このコンポーネントはゲームオブジェクトにアタッチされます。コンポーネントはいつもゲームオブジェクトにアタッチされています。 |
tag | ゲームオブジェクトのタグ |
transform | The Transform attached to this GameObject. |
hideFlags | Should the object be hidden, saved with the Scene or modifiable by the user? |
name | オブジェクト名 |
BroadcastMessage | ゲームオブジェクトまたは子オブジェクトにあるすべての MonoBehaviour を継承したクラスにある methodName 名のメソッドを呼び出します。 |
CompareTag | このゲームオブジェクトは tag とタグ付けされているかどうか |
GetComponent | Returns the component of Type type if the GameObject has one attached, null if it doesn't. Will also return disabled components. |
GetComponentInChildren | GameObject や深さ優先探索を活用して、親子関係にある子オブジェクトから type のタイプのコンポーネントを取得します。 |
GetComponentInParent | GameObject や深さ優先探索を活用して、親子関係にある親オブジェクトから type のタイプのコンポーネントを取得します。 |
GetComponents | GameObject から type のタイプのコンポーネントを「すべて」取得します。 |
GetComponentsInChildren | Returns all components of Type type in the GameObject or any of its children. Works recursively. |
GetComponentsInParent | GameObject や深さ優先探索を活用して、親子関係にある親オブジェクトから type のタイプのコンポーネントを「すべて」取得します。 |
SendMessage | ゲームオブジェクトにアタッチされているすべての MonoBehaviour にある methodName と名付けたメソッドを呼び出します |
SendMessageUpwards | ゲームオブジェクトと親(の親、さらに親 ... )にアタッチされているすべての MonoBehaviour にある methodName と名付けたメソッドを呼び出します |
TryGetComponent | Gets the component of the specified type, if it exists. |
GetInstanceID | オブジェクトのインスタンス ID を返します |
ToString | Returns the name of the object. |
Destroy | Removes a GameObject, component or asset. |
DestroyImmediate | Destroys the object obj immediately. You are strongly recommended to use Destroy instead. |
DontDestroyOnLoad | Do not destroy the target Object when loading a new Scene. |
FindObjectOfType | タイプ type から最初に見つけたアクティブのオブジェクトを返します |
FindObjectsOfType | Gets a list of all loaded objects of Type type. |
Instantiate | original のオブジェクトをクローンします |
bool | オブジェクトが存在するかどうか |
operator != | 二つのオブジェクトが異なるオブジェクトを参照しているか比較します |
operator == | 2つのオブジェクト参照が同じオブジェクトを参照しているか比較します。 |
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.