【Unity】敵機に消滅のエフェクトをつける。
前書き:
このブログは、自分が学んだこと、調べたことをアウトプットするために忘備録的に残しているブログとなっております。
間違った情報や私の勘違いなどをお伝えしてしまうこともあるかと思います。
そこのところをご理解いただき、ご覧ください。
また、間違いや勘違いについて、ご指摘ご鞭撻いただければ幸いです。
今回は、敵機の消滅のエフェクトをつけます。
1.前回作成の爆発用画像をプロジェクトの「Sprites」にドラッグアンドドロップします。
2.アニメーション化したいスプライトをまとめて、「ヒエラルキー」に登録。
この時、元画像の"Circle"はアニメーションに含めないほうが良いです。
名称がごちゃごちゃになってしまい、分かりにくくなります。
名称は"CircleExplosion.anim"、"CircleExplosion.controller"としました。
両方とも「Animations」ホルダーに移動して置きます。
3."CircleExplosion.anim"はループさせる必要はないので、「インスペクター」内の"時間をループ"のチェックは外します。
4.「ヒエラルキー」上の名前を"CircleExplosion"に変更します。
「PreFabs」フォルダーにドラッグアンドドロップしてPreFab化します。
「ヒエラルキー」上の"CircleExplosion"は削除します。
5.「PreFabs」フォルダー内の"CircleExplosion.prefab"をクリック、「インスペクター」内の"タグ"に"CircleExplosion"を作成して登録します。
必ずしも必要はないようですが、Tagを必ず付けるようにしました。
さらに"コンポーネントを追加"から、"New Script"->"CircleExplosion.cs"を作成します。
6. Scriptに以下のように追加します。
CircleExplosion.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class CircleExplosion : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
Destroy(gameObject, 0.5f); //gameObject:自分(CircleExplosion)自身 0.5secディレイ(待って)で自身を破壊
}// Update is called once per frame
void Update()
{
}
}
CirclePreFabController.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class CirclePreFabController : MonoBehaviour
{
//GameObjectの宣言
public GameObject circleexplosion; //追加// Start is called before the first frame update
void Start()
{
}// Update is called once per frame
void Update()
{
transform.position += new Vector3(
0f,
-0.5f * Time.deltaTime,
0f
);
}//追記
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.gameObject.CompareTag("Bullet")) //Tagが"Bullet"だったら
{
Instantiate(circleexplosion, transform.position, transform.rotation); //追記 爆発エフェクト
Destroy(collision.gameObject); //ぶつかったもの(Bullet)
Destroy(gameObject); //gameObject:自分(Circle)自身
}
}}
7."CirclePreFab"の「インスペクター」内の"CirclePreFabController(スクリプト)"の"CircleExplosion"の項目に「PreFabs」フォルダー内の"CircleExplosion.prefab"をドラッグアンドドロップします。
8.ここまでの作業をセーブして、ゲームを起動して確認します。
・Unityのコンソールにエラーが出てないこと。(7.を忘れがちです)
・Circleに弾が当たると爆発のエフェクトが表示され、消滅すること。
今回はここまで。