【unity】プレイヤーの弾で敵を倒して消す【コード、スクリプト、2D】

前回の記事
www.momino1234.com

① Enemy の BoxCollider を※ Is Trigger を ONにする

Hierarchyの欄のEnemy をクリックして

inspectorのBoxCollider2Dの

項目の※ Is Trigger を ONにする

oxCollider2Dがない場合は

Add Component

BoxCollider2Dを追加

② Bullet の BoxColliderも※ Is Trigger を ONにする

assetsの欄のBullet をクリックして

inspectorのBoxCollider2Dの

項目の※ Is Trigger を ONにする

oxCollider2Dがない場合は

Add Component

BoxCollider2Dを追加

③ BulletMove のスクリプトにコードを追加する

これを追加します

  1.     void OnTriggerEnter2D(Collider2D other)
  2.     {
  3.         if(other.CompareTag("Enemy"))
  4.         {
  5.             Destroy(other.gameObject); // 敵を消す
  6.             Destroy(gameObject); // 弾も消す
  7.         }
  8.     }


そうするとこんな感じ

  1. using UnityEngine;
  2. public class BulletMove : MonoBehaviour
  3. {
  4.     public float speed = 8f;
  5.     void Update()
  6.     {
  7.         transform.position += Vector3.up * speed * Time.deltaTime;
  8.         if (transform.position.y > 6f)
  9.         {
  10.             Destroy(gameObject);
  11.         }
  12.     }
  13.     void OnTriggerEnter2D(Collider2D other)
  14.     {
  15.         if (other.CompareTag("Enemy"))
  16.         {
  17.             Destroy(other.gameObject); // 敵を消す
  18.             Destroy(gameObject); // 弾も消す
  19.         }
  20.     }
  21. }

完成

弾 → 敵に当たる

敵が消える

弾も消える

もし動かない場合チェック

✔ Enemy の Tag が Enemyになっているか
✔ 両方に Collider2D
✔ IsTrigger ON

次の記事
www.momino1234.com