【unity】 敵が上から下に落ちてくるようにする【 画面外で消す、移動、コード】

前回の記事
www.momino1234.com


目標

👉 敵が上から下に落ちてくるようにする

方法は2つあります

コードで動かす(簡単)

① EnemyMoveスクリプトを作る

Assetsで右クリック
👉 Create → empty C# Script
👉 名前:EnemyMoveFall


② 中身を書く


  1. using UnityEngine;
  2. public class EnemyMove : MonoBehaviour
  3. {
  4.     public float speed = 3f;
  5.     void Update()
  6.     {
  7.         transform.position += Vector3.down * speed * Time.deltaTime;
  8.     }
  9. }

意味

Vector3.down

👉 下方向(0, -1, 0)

speed

👉 速さ

Time.deltaTime

👉 PCの性能で速さが変わらないようにする

Enemy(プレハブ)を開く

👉 ProjectのEnemyをダブルクリック

Inspectorで
👉 Add Component

👉 EnemyMoveFallを追加

完成

▶ 再生すると
👉 敵が下に落ちる

よくあるミス

❌プレハブに付けてない

SceneのEnemyに付けても意味ない

❌ speedが0

動かない

❌ スクリプトエラーがある

再生できない

画面外で消す

このままだと敵がずっと落ち続けるから


  1.     if (transform.position.y < -6f)
  2.     {
  3.         Destroy(gameObject);
  4.     }
  5. }
を加える。


するとこんな感じ

  1. using UnityEngine;
  2. public class EnemyMove : MonoBehaviour
  3. {
  4.     public float speed = 3f;
  5.     void Update()
  6.     {
  7.         transform.position += Vector3.down * speed * Time.deltaTime;
  8.         if (transform.position.y < -6f)
  9.         {
  10.             Destroy(gameObject);
  11.         }
  12.     }
  13.    
  14.     }

👉 画面外で消える


次の記事
www.momino1234.com