前回の作業で自機が弾を発射できるようになりました。次は今回のシューティングゲームの敵キャラ(?)に相当する隕石を作っていきましょう。
敵のゲームオブジェクトの作り方
まずは必要なコンポーネントをアタッチして隕石のゲームオブジェクトを作ります。最初にインポートしてもらった隕石のスプライトをヒエラルキーにドラッグ&ドロップし、次のように各コンポーネントをアタッチして設定を行いましょう。
敵を動かすためのC#スクリプト
そうしたら隕石を動かすためのC#スクリプトを書きます。新しいC#スクリプトを作成し、名前を「MeteorController」に変更して次のコードを書いてください。
using UnityEngine; public class MeteorController : MonoBehaviour { [SerializeField] Rigidbody2D rigidBody = null; [Min(1), Space] public int hp = 1; public float speed = 5; [Min(0)] public int score = 100; bool isVisible = false; void Start() { rigidBody.velocity = transform.up * speed; } void OnCollisionEnter2D(Collision2D collision) { // Bulletタグを持つゲームオブジェクトに当たったらHPを1引く if (collision.gameObject.CompareTag("Bullet")) { Damage(1); } } void OnBecameVisible() { isVisible = true; } void OnBecameInvisible() { // 画面外に出たら消滅 if (isVisible) { Destroy(gameObject); } } void Damage(int value) { if(value <= 0) { return; } hp -= value; if(hp <= 0) { Destroy(gameObject); } } }
内容的には弾のスクリプトに少し毛が生えた程度なので解説はいらないと思います。書けたらこれを先ほど作ったゲームオブジェクトにアタッチして設定を行い、プレハブ化しておきましょう。
次のページ→敵キャラを生成する仕組みの作り方