public class Soldier : MonoBehaviour {
public float viewDistance = 5;
public float viewAngle = 120;
private Transform player;
// Use this for initialization
void Start ()
{
player = GameObject.Find("Player").transform;
}
// Update is called once per frame
void Update ()
{
//先判断距离,后判断的角度
if (Vector3.Distance(player.position, transform.position) <= viewDistance)
{
//玩家朝向
Vector3 playerDir = player.position - transform.position;
//玩家朝向与士兵正前方的夹角
float angle = Vector3.Angle(playerDir, transform.forward);
if (angle <= viewAngle / 2)
{
Debug.Log("发现");
}
}
}
}