[英]Detect player by specific field of view
我正在研究基本的AI,並希望我的AI能夠通過特定的視野來檢測玩家。 它附在人工智能和人工智能頭上的腳本確實讓它的動畫師聽到了聲音。
當我直接面對玩家時,我能夠讓AI檢測到玩家,但是感覺不真實嗎?
公共GameObject播放器; public bool isFacingPlayer;
void Update(){
// check if AI is facing player
Vector3 dir = Player.transform.position - transform.position;
if (Vector3.Dot(dir, transform.forward) > 0.0f) {
isFacingPlayer = true;
} else {
isFacingPlayer = false;
}
}
我想有一個特定的視野,比如310.但不知道如何得到它?
呃,我真的不知道為什么我要問這個問題,如果我能夠用一個真實的邏輯來解決這個問題。 無論如何,這是一個修復,如果它會幫助任何人:
Vector3 targetDir = Player.transform.position - transform.position;
float angleToPlayer = (Vector3.Angle (targetDir, transform.forward));
if (angleToPlayer >= -90 && angleToPlayer <= 90) { // 180 FOV
isFacingPlayer = true;
} else {
isFacingPlayer = false;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.