Rasagar/Library/PackageCache/com.unity.visualeffectgraph/Documentation~/Context-Initialize.md
2024-08-26 23:07:20 +03:00

5.0 KiB

Initialize

Menu Path : Context > Initialize Particle

The Initialize Context processes a Spawn Event or a GPU Event and initializes new elements for a Particle or ParticleStrip simulation.

Context settings

Setting Type Description
Space Enum (Inspector) The simulation space for the system.
Data Type Enum (Inspector) The data type for the elements in the system. The options are:
Particle: The system spawns particles.
Particle Strip: The system spawns particle strips.
Capacity UInt The fixed amount of elements in the simulation. This count scales the memory allocation of the particle system.
Particle Per Strip Count Uint The fixed amount of particles per particle strip.
This setting only appears if you set Data Type to Particle Strip.
Bounds Setting Mode Enum Bounds Setting Mode: Specifies how to set the bounding box of the System. The options are:
Manual: You set the bounds directly using the Bounds input property.
Recorded: Allows you to record the System from the Target visual effect GameObject panel.
Automatic: Unity calculates the bounds automatically.

For more information about these modes and the bounds of a visual effect in general, see Visual effect bounds.

Context input properties

Property Type Description
Bounds AABox The bounding box defined for the system. This property is evaluated accordingly to the Culling Flags property defined in the Visual Effect Asset.
Bounds Padding Vector3 Additional padding to apply to the visual effect's bounding box. For more information about the bounds of a visual effect, see Visual effect bounds.

Flow

Port Description
Input Connection from a Spawn, GPU Event, or Event Context. For more information on input flow compatibility, see Input flow compatibility.
Output Connection to an Update (Single) or Output (Single/Multiple) Context.

Details

Overspawn

To create new elements, you can add Blocks to the Context's body. The Visual Effect Graph adds these Blocks to the simulation if there is memory left to create them. After execution, Unity discards all elements that can not be injected this way.

The Alive attribute

Setting the Alive attribute to false in the Initialize context creates a dead particle.

While doing this allows you to discard particles at their birth, overspawn still applies. The particle is considered dead only in the next update call. This means that you cannot create more particles (alive or dead) than the remaining count allows.

Call order

The Visual Effect Graph executes the Initialize Context only once per new element, prior to its first Update. At the frame of execution, the Visual Effect Graph initializes the new element, executes the element's first update, and finally renders the element.

Source attribute availability

In an Initialize Context, Blocks and Operators can read from source attributes, by using a Get Attribute (Source) Operator, or an Inherit <Attribute> Block.

Input flow compatibility

Initialize Contexts can connect from one or many SpawnEvent outputting Contexts with the following rules:

  • Initialize Contexts can connect from any number of Spawn and/or Event Contexts.
  • Initialize Contexts can connect from a single GPU Event Context.
  • You can not mix GPU and CPU Event/Spawn Contexts to the input port. If you connect both GPU Event and Spawn Contexts, the Console shows the following error: Exception while compiling expression graph: System.InvalidOperationException: Cannot mix GPU & CPU spawners in init