Version: 2022.3

VFXSpawnerState

class in UnityEngine.VFX

切换到手册

描述

生成系统的生成状态。

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 of the spawner.

To access the state of a Visual Effect's Spawn system, either use VisualEffect.GetSpawnSystemInfo or, in a class that inherits from VFXSpawnerCallbacks, override the OnUpdate method.

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) { } }

变量

delayAfterLoop当前 VFXSpawner 完成循环后等待的延迟时间。
delayBeforeLoop当前 VFXSpawner 在开始循环之前等待的延迟时间。
deltaTime当前增量时间。
loopCount当前循环数量。
loopDuration循环状态的持续时间。
loopIndex当前循环索引。
loopStateVFXSpawnerState 的当前状态。
newLoop此布尔值指示是否刚刚开始了新的循环。
playing当前播放状态。
spawnCount当前生成计数。
totalTime自上次播放事件以来累积的增量时间。
vfxEventAttribute获取可修改的当前事件属性(只读)。