Unity、Visual Effects Graph - 如何以编程方式播放 + 停止效果?

T10*_*000 5 c# unity-game-engine

我想用Visual Effect Graph来制作粒子爆炸。我正在尝试以编程方式激活和停止这种爆炸。

我首先创建一个Particles预制对象,并将一个Visual EffectGraph 对象附加到它:

图像1

然后我制作spawn ratean exposed parameter。所以当爆炸激活时,它会将这个参数设置为 100。要停止爆炸,生成率将设置为 0:

图像2

现在这个参数在粒子预制件中可见:

img3

然后我实例化粒子预制件:

var effect = Instantiate(particlesPrefab, position), Quaternion.identity);
Run Code Online (Sandbox Code Playgroud)

粒子效果出现在屏幕上,但问题是我找不到spawn rate属性。

如何以编程方式更改此属性的值?

Ruz*_*ihm 8

  1. VisualEffect从以下获取Particles GameObject

    // In a MonoBehaviour attached to the Particles GameObject
    
    using UnityEngine.Experimental.VFX;
    
    ...
    
    // As a field in the MonoBehaviour
    public VisualEffect myEffect;
    
    ... 
    
    myEffect = GetComponent<VisualEffect>();
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用SetInt设置曝光整数叫做"spawn rate"

    // As class field
    
    public static readonly string SPAWN_RATE_NAME = "spawn rate";
    
    // Wherever you want to stop explosion
    
    myEffect.SetInt(SPAWN_RATE_NAME, 0);
    
    // Wherever you want to start explosion
    
    myEffect.SetInt(SPAWN_RATE_NAME, 100);
    
    Run Code Online (Sandbox Code Playgroud)

  • 你必须包含`using UnityEngine.Experimental.VFX;`来引用`VisualEffect`类。 (2认同)