下準備
bulletプレハブを編集
[Bullet]tagを設定する
敵のプレハブのEnemy_Collisionを編集する
[Enemy]tagを設定する
Enemy_CollisionにBoxColliderを追加、isTriggerにチェック入れて当たり判定用とする
Player_Bullet.cs に追記
[Enemy]tagとの当たり判定を追記
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Player_Bullet : MonoBehaviour{ GameObject gameController; //検索したオブジェクト入れる用 public float speed = 0.0f; //移動speed void Start(){ gameController = GameObject.FindWithTag ("GameController"); //GameControllerを探す } void Update(){ //移動 transform.position += transform.up * speed * Time.deltaTime; } //他のオブジェクトとの当たり判定(triger) void OnTriggerEnter( Collider other) { if(other.tag == "Wall_Up"){ //gcって仮の変数にGameControllerのコンポーネントを入れる GameController gc = gameController.GetComponent<GameController>(); //画面内の弾数を減算 gc.shotNum --; Destroy(gameObject); //このGameObjectを[Hierrchy]ビューから削除する } if(other.tag == "Enemy"){ Debug.Log("hit"); //gcって仮の変数にGameControllerのコンポーネントを入れる GameController gc = gameController.GetComponent<GameController>(); //画面内の弾数を減算 gc.shotNum --; Destroy(gameObject); //このGameObjectを[Hierrchy]ビューから削除する } } }
敵の[Enemy]tagとの接触処理を追加して、プレイヤーの弾が消えるようになった
でも、敵が消えない…
Enemy1.cs を用意
弾と同じく敵も消したいので、プレイヤーの[Bullet]tagとの当たり判定を見る
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Enemy1 : MonoBehaviour{ //他のオブジェクトとの当たり判定(triger) void OnTriggerEnter( Collider other) { if(other.tag == "Bullet"){ Destroy(gameObject); //このGameObjectを[Hierrchy]ビューから削除する } } }
このスクリプトをEnemy_Collisionにアタッチ
敵も消えました