今日はUnityゲーム制作講座、第十六弾です!
今度こそ最終回だね!
実はもう一つ忘れてたことがあったから今日はそれをやるよ。ということで今回はエフェクトの付け方について解説するよ!
Unityで簡単に倒した敵が爆発するエフェクトをつける方法
アセットストアでエフェクトを探す
敵を倒したときに爆発したようにみせるなど、エフェクトをつけたいときは、まずアセットストアに行って、イメージに合うアセットを探しておきましょう。
今回使用したアセットは以下です。
アセットストアの使い方は、以前解説しているので、こちらも参考にしてみてください。
敵を倒したときにエフェクトが生成されるようコードを追加する
敵を倒したときにエフェクトが発生するようにするには、敵を倒したときの動作の部分にコードを追加する必要があります。
Scriptsフォルダに作成してあるEnemyManagerを開き、中身を以下の内容に書き換え保存します。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class EnemyManager : MonoBehaviour { private float speed = 0.05f; private int count = 0; private GameObject scoreText; [SerializeField] GameObject explosion; // ★追加 void Start() { scoreText = GameObject.Find("ScoreText"); } void Update() { count += 1; if (count < 500) { transform.position += transform.right * speed; } else if(count > 500) { transform.position += transform.right * speed * -1; } if (count == 1000) { count = 0; } } void OnCollisionEnter(Collision col) { if (col.gameObject.CompareTag("Bullet")) { Debug.Log("BulletCollision"); Instantiate(explosion, this.gameObject.transform.position, Quaternion.Euler(0, 0, 0)); // ★追加 scoreText.GetComponent<ScoreManager>().score = scoreText.GetComponent<ScoreManager>().score + 300; Destroy(this.gameObject); } } }
Importしたアセットから使用するエフェクトを決めアタッチする
Importしたアセットのフォルダから、使用したいエフェクトを選びます。
今回は以下の「Explosion」を使用します。
敵ObjectのInspectorにEnemyManagerが張り付いているはずなので、
エフェクトの「Explosion」Prefabをドラッグ・アンド・ドロップしてアタッチします。
動作確認を行う
これで敵を倒したときに爆発するエフェクトが生成されるようになるはずなので、想定通りの動作になっているかを確認しましょう。
イメージどおりに動いてくれていれば完了です。
細かい解説は動画の方で行っていますので、合わせて見てもらえたらなと思います。
ニワトリが爆発するってなんかヘンだけど、爽快感が増したかも!
もっと派手なエフェクトとか、効果音とかにしたら更に楽しいかもねw