4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

VisualEffectGraphをスクリプトから発火させる。

Last updated at Posted at 2020-02-13

unityのnode baseでEffectの作成が行えるVisualEffectGraphの、スクリプトから制御する方法を書き留めておきます。

準備

VisualEffectGraphをスクリプトから呼び出すために、
using UnityEngine.Experimental.VFX;
を追加、
public VisualEffect effect;
で変数を設定します。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

using UnityEngine.Experimental.VFX;
//VFXを使えるよう定義

public class EffectFire : MonoBehaviour
{
    public VisualEffect effect;
    //VisualEffect変数を設定。
    
    void Start()
    {

    }

    void Update()
    {

    }
}

Scene上の「Visual Effect」オブジェクトを、自身で作成したスクリプトにアタッチします。
image.png

Effectを発火させる
Effectの発火はParticleSystemと同じように、Play()を使います。
今回は、わかりやすく確認するためにWキーを押したときに発火するようにします。

    void Update()
    {
         void OnTriggerEnter(Collider other)
          {
            effect.Play();
          }  
    }

これでEffectを発火させることができます。
スクリプトから発火させる場合には、Play()だけでは事足りない場面が多いことがあります。

例えば、Effectは衝突判定がされた場合に呼び出すことが多いです。その際は、EventTrigger()を使います。
VisualEffectGraphでEventTriggerを使うためには、Node上でEvent Node/Nameを設定します(Event Nameを今回は初期のままの「OnPlay」としておきます。)そして、Event Nameスクリプト上でEvent Nameを任意のタイミングで呼び出してあげる必要があります。

まずは、VisualEffectGraphのNodeの設定をします。
Nodeを開いて
①EnterKeyでNode Boxを開き、Event Nodeを追加。
任意のEvent Nameを設定。
③Event Nodeの「SpawnEvent」と Spawn Nodeの「Start」につなげます。

image.png

先ほどのスクリプトのUpdate関数に、SendEvent("OnPlay(Eventの名前は任意)")()を追加します。

  void Update()
    {
        void OnTriggerEnter(Collider other)
        {
            effect.Play();
        }  
    }

これで衝突判定を行った際にEffectが発火するようになりました。

(また、これらの発火をわかりやすくするために、Spawn Node の「Constant Spawn Rate」を取り除き、「Single Burst」を追加し、「Count(Min:0)」を「5」に設定します。これでEventが呼ばれた瞬間のみEffectが発火します。)

image.png

まとめ

これでVisualEffectGraphのスクリプトから簡単に発火させることができました。
ほかにもスクリプトからいじれるものは多いので便利なものを試し次第まとめていこうと思います。

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?