0
我有兩個對象,一個是玩家,另一個是敵人。我需要知道敵人是否正面臨着朝向玩家的方向。玩家面對的方向對我沒有任何影響。任何幫助將不勝感激。尋找一個遊戲對象與另一個遊戲對象的角度
// Both variables set in the inspector
public GameObject theEnemy;
public GameObject thePlayer;
void Update() {
}
我有兩個對象,一個是玩家,另一個是敵人。我需要知道敵人是否正面臨着朝向玩家的方向。玩家面對的方向對我沒有任何影響。任何幫助將不勝感激。尋找一個遊戲對象與另一個遊戲對象的角度
// Both variables set in the inspector
public GameObject theEnemy;
public GameObject thePlayer;
void Update() {
}
基本上你想要做的是找到兩個向量之間的角度:
Vector3 enemyLookDirection = enemy.transform.forward;
Vector3 playerRelativeDirection =
(player.transform.position - enemy.transform.position).normalized;
float angle = Vector3.Angle(enemyLookDirection, playerRelativeDirection);
float enemyFov = 45.0f; // Biggest angle that enemy can see from the center of view
if (angle < enemyFov)
EnemyCanSeePlayer();
附:而不是使用transform.position,你可能需要計算玩家和敵人眼睛的位置。