VisualEffectGraph를 스크립트에서 발화시킵니다.

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」오브젝트를, 스스로 작성한 스크립트에 첨부합니다.


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를 설정합니다.
노드를 열고
①EnterKey에서 Node Box를 열고 Event Node를 추가.
② 임의의 Event Name을 설정.
③ Event Node의 「SpawnEvent」와 Spawn Node의 「Start」에 연결합니다.



이전 스크립트의 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가 발화합니다.)



요약

이제 VisualEffectGraph 스크립트에서 쉽게 발화시킬 수있었습니다.
그 밖에도 스크립트에서 괴롭히는 것은 많기 때문에 편리한 것을 시도하는 대로 정리해 가려고 생각합니다.

좋은 웹페이지 즐겨찾기