C# 寻找一个游戏对象与另一个游戏对象的角度

C# 寻找一个游戏对象与另一个游戏对象的角度,c#,unity3d,C#,Unity3d,我有两个目标,一个是玩家,另一个是敌人。我需要知道敌人是否正对着对方。球员面对的方向对我来说没什么区别。任何帮助都将不胜感激 // Both variables set in the inspector public GameObject theEnemy; public GameObject thePlayer; void Update () { } 基本上,您要做的是在两个向量之间找到一个角度: Vector3 enemyLookDirection = enemy.transform

我有两个目标,一个是玩家,另一个是敌人。我需要知道敌人是否正对着对方。球员面对的方向对我来说没什么区别。任何帮助都将不胜感激

// 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();
Vector3 enemyLookDirection=敌方.transform.forward;
Vector3播放器相关方向=
(player.transform.position-敌方.transform.position)。规范化;
浮动角度=矢量3.角度(enemyLookDirection,playerRelativeDirection);
浮动enemyFov=45.0f;//敌人从视野中心能看到的最大角度
如果(角度
另外,您可能需要计算玩家和敌人眼睛的位置,而不是使用transform.position