我一直在嘗試為我的敵人移動添加某種“范圍”(一次向玩家移動太多)并且我已經看到了一種解決方案,但我不確定如何實作它,因為它并沒有真正檢測到我' m 使用 dis 和 distval 值。
我不是想為他們添加任何運動或路線。只是一個廣泛(但不是太寬)的激活范圍。(另請注意,我是新手,我知道這可能是一個愚蠢的問題,但我仍然不知道它的答案,也找不到它((或至少理解它)))。
這是我的代碼。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
public class Follow : MonoBehaviour
{
public NavMeshAgent enemy;
public Transform Player;
// Update is called once per frame
void Update()
{
var distVal = 5.0f;
var dis = Vector3.Distance(enemy.position, Player.position);
if (dis <= disVal)
{
enemy.SetDestination(Player.position);
}
}
}
uj5u.com熱心網友回復:
如果您將 NavMeshAgent 的目的地設定為它自己的位置,它將停止移動。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
public class Follow : MonoBehaviour
{
public NavMeshAgent enemy;
public Transform Player;
// Update is called once per frame
void Update()
{
float distVal = 5.0f;
float dist = Vector3.Distance(enemy.transform.position, Player.position);
if (dist <= distVal)
{
enemy.SetDestination(Player.position);
}
else
{
enemy.SetDestination(enemy.transform.position);
}
}
}
這應該做你想要的。但是我應該指出你從來沒有使用你的 distVal 變數,并且那個enemy.position應該是enemy.transform.position。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/528942.html
標籤:C#unity3d
上一篇:如何統一更改文本動態
下一篇:當您按下選項卡時如何使UI設定處于活動狀態但如果它仍然處于活動狀態再次按下選項卡并且UI將在統一2dc#中設定為非活動狀態