NavmeshAgent不会更新目标,除非特定的Vector3
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NavmeshAgent不会更新目标,除非特定的Vector3相关的知识,希望对你有一定的参考价值。
void SetDestination ()
ReverseDir = (Player.transform.position)*-1;
Destination = Player.transform.position;
if (!BigDotScript.RunAway)
_NavMeshAgent.SetDestination (Destination);
Debug.Log ("No run");
if (BigDotScript.RunAway)
_NavMeshAgent.SetDestination (ReverseDir);
Debug.Log ("run");
我有此代码,现在将目标设置为ReverseDir时,它运行良好。如果我将ReverseDir设置为
,则NavmeshAgent会完全忽略目标并像SetDestinantion = Destination一样进行操作 ReverseDir = new Vector3(0,0,0);
但是,有什么想法吗?
另外,我想达到的效果是避免使用Player游戏对象,如果有比这更好的方法,我将不知所措!非常感谢
答案
我也遇到同样的问题,在我的情况下,每次到达目的地时,我的目的地都是0,直到特工到达他的意思为止。当他到达点时,Debug.Log()说,距离为0.4994949。所以我做了这件事:
if (agent.remainingDistance == 0f && time == 100000)
agent.speed = 1f;
Debug.Log(agent.remainingDistance);
animator.SetFloat("Blend", 1);
GotoNextPoint();
if (time == 99000 && animator.GetFloat("Blend") == 0)
time = 10000;
animator.SetFloat("Blend", 1);
GotoNextPoint();
else if (agent.remainingDistance <= 0.5f && agent.remainingDistance != 0f && time == 100000)
animator.SetFloat("Blend",0);
agent.enabled = false;
GotoNextPoint();
以上是关于NavmeshAgent不会更新目标,除非特定的Vector3的主要内容,如果未能解决你的问题,请参考以下文章
复选框列表不会在动态生成的复选框 v-models 数组中更新
UNITY3D:如何将 NavMeshAgent 行走速度设置为 0,但让他向玩家旋转