首页 > 解决方案 > Unity,视觉效果图 - 我如何以编程方式播放+停止效果?

问题描述

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

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

图像1

然后我制作spawn rate一个exposed parameter. 因此,当爆炸激活时,它将将此参数设置为 100。要停止爆炸,生成率将设置为 0:

img2

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

图像3

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

var effect = Instantiate(particlesPrefab, position), Quaternion.identity);

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

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

标签: c#unity3d

解决方案


  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>();
    
  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);
    

推荐阅读