# VFXSpawnerState

> The spawn state of a Spawn system.

## Definition

* **Type:** Class
* **Namespace:** [UnityEngine.VFX](/engine/6000.6/script-reference/unityengine/vfx.md)
* **Assembly:** UnityEngine.VFXModule
* **Implements:** [IDisposable](https://learn.microsoft.com/dotnet/api/system.idisposable)

```csharp
public sealed class VFXSpawnerState : IDisposable
```

## Remarks

This class is useful for debugging a Visual Effect's spawner. For example, you can see if the effect is currently playing, the number of loops the spawner has processed, as well as the current [state](/engine/6000.6/script-reference/unityengine/vfx/vfxspawnerloopstate.md) of the spawner.

To access the state of a Visual Effect's Spawn system, either use [VisualEffect.GetSpawnSystemInfo](/engine/6000.6/script-reference/unityengine/vfx/visualeffect/getspawnsysteminfo.md) or, in a class that inherits from [VFXSpawnerCallbacks](/engine/6000.6/script-reference/unityengine/vfx/vfxspawnercallbacks.md), override the [OnUpdate](/engine/6000.6/script-reference/unityengine/vfx/vfxspawnercallbacks/onupdate.md) method.

## Examples

```csharp
using UnityEngine;
using UnityEngine.VFX;

class ConstantRateEquivalent : VFXSpawnerCallbacks
{
    public class InputProperties
    {
        [Min(0), Tooltip("Sets the number of particles to spawn per second.")]
        public float Rate = 10;
    }

    static private readonly int rateID = Shader.PropertyToID("Rate");

    public sealed override void OnPlay(VFXSpawnerState state, VFXExpressionValues vfxValues, VisualEffect vfxComponent)
    {
    }

    public sealed override void OnUpdate(VFXSpawnerState state, VFXExpressionValues vfxValues, VisualEffect vfxComponent)
    {
        if (state.playing)
        {
            float currentRate = vfxValues.GetFloat(rateID);
            state.spawnCount += currentRate * state.deltaTime;
        }
    }

    public sealed override void OnStop(VFXSpawnerState state, VFXExpressionValues vfxValues, VisualEffect vfxComponent)
    {
    }
}
```

## Properties

| Property                                                                                                  | Description                                                                    |
| --------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ |
| [delayAfterLoop](/engine/6000.6/script-reference/unityengine/vfx/vfxspawnerstate/delayafterloop.md)       | The current delay time that the VFXSpawner waits for after it finishes a loop. |
| [delayBeforeLoop](/engine/6000.6/script-reference/unityengine/vfx/vfxspawnerstate/delaybeforeloop.md)     | The current delay time that the VFXSpawner waits for before it starts a loop.  |
| [deltaTime](/engine/6000.6/script-reference/unityengine/vfx/vfxspawnerstate/deltatime.md)                 | The current delta time.                                                        |
| [loopCount](/engine/6000.6/script-reference/unityengine/vfx/vfxspawnerstate/loopcount.md)                 | The current loop count.                                                        |
| [loopDuration](/engine/6000.6/script-reference/unityengine/vfx/vfxspawnerstate/loopduration.md)           | The duration of the looping state.                                             |
| [loopIndex](/engine/6000.6/script-reference/unityengine/vfx/vfxspawnerstate/loopindex.md)                 | The current index of loop.                                                     |
| [loopState](/engine/6000.6/script-reference/unityengine/vfx/vfxspawnerstate/loopstate.md)                 | The current state of VFXSpawnerState.                                          |
| [newLoop](/engine/6000.6/script-reference/unityengine/vfx/vfxspawnerstate/newloop.md)                     | This boolean indicates if a new loop has just started.                         |
| [playing](/engine/6000.6/script-reference/unityengine/vfx/vfxspawnerstate/playing.md)                     | The current playing state.                                                     |
| [spawnCount](/engine/6000.6/script-reference/unityengine/vfx/vfxspawnerstate/spawncount.md)               | The current Spawn count.                                                       |
| [totalTime](/engine/6000.6/script-reference/unityengine/vfx/vfxspawnerstate/totaltime.md)                 | The accumulated delta time since the last Play event.                          |
| [vfxEventAttribute](/engine/6000.6/script-reference/unityengine/vfx/vfxspawnerstate/vfxeventattribute.md) | Gets the modifiable current event attribute (Read Only).                       |
