2014-11-22 185 views
0

我有两个对象,一个是玩家,另一个是敌人。我需要知道敌人是否正面临着朝向玩家的方向。玩家面对的方向对我没有任何影响。任何帮助将不胜感激。寻找一个游戏对象与另一个游戏对象的角度

// Both variables set in the inspector 
public GameObject theEnemy; 
public GameObject thePlayer; 

void Update() { 


} 

回答

1

基本上你想要做的是找到两个向量之间的角度:

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,你可能需要计算玩家和敌人眼睛的位置。

相关问题