# 5-3 箭頭與角色衝突判定 using System.Collections; using System.Collections.Generic; using UnityEngine; public class ArrowController : MonoBehaviour { // Start is called before the first frame update GameObject player; void Start() { this.player = GameObject.Find("player"); //聯結到player物件 } // Update is called once per frame void Update() { // 每個影格等速往下移動 transform.Translate(0, -0.1f, 0); // 當箭頭超出遊戲畫面時就捨棄物件 if (transform.position.y < -5.0f) { Destroy(gameObject); } // 衝突判定 Vector2 p1 = transform.position; //箭頭的圓心座標 Vector2 p2 = this.player.transform.position; //遊戲角色的圓心座標 Vector2 dir = p1 - p2; float d = dir.magnitude; // 距離長度 float r1 = 0.5f; //箭頭角色的圓半徑 float r2 = 1.0f; //遊戲角色的圓半徑 if (d < r1 + r2) { //發生衝突時就捨棄箭頭 Destroy(gameObject); } } }