エフェクトの再生が終了した後に、次のエフェクトが発生する仕組みを、スクリプトで作成しましょう。
今回の例では、1つ目のエフェクトが2秒間出現した後に、次のエフェクトが1秒間発生します。
関連記事:
エフェクト発生の後にテキスト表示
エフェクトを連続で生成
今回は、Magic Effects FREE というフリーアセットを使用させていただきました。
MagicEffectsPack > Prefabsフォルダの中に、エフェクトデータが入っています。
今回は、LaserAOEとStoneSlashを使用します。
ぞれぞれ、ループのチェックを外しておきます。
空のオブジェクトを作成。
EffectScript.csを作成し、GameObject(空のオブジェクト)に追加します。
EffectScript.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class EffectScript : MonoBehaviour { [SerializeField] GameObject prefab1; [SerializeField] GameObject prefab2; GameObject effect1; GameObject effect2; void Start() { effect1 = Instantiate(prefab1, transform.position, Quaternion.identity); Invoke("EffectOne", 2.0f); } void EffectOne() { Destroy(effect1); effect2 = Instantiate(prefab2, transform.position, Quaternion.identity); Invoke("EffectTwo", 1.0f); } void EffectTwo() { Destroy(effect2); } } |
Prefab1、Prefab2のフィールドに、先ほどのエフェクトデータを入れます。
ゲームプレイしてみましょう。
スタートすると1つ目のエフェクトが2秒間再生。
その後、2つ目のエフェクトが1秒間だけ発生します。
関連記事:
エフェクト発生の後にテキスト表示