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的主要内容,如果未能解决你的问题,请参考以下文章

Vue.JS:除非我打开开发工具,否则变量不会更新

除非在视图上手动更新,否则不会自动触发视图上的更新触发器

复选框列表不会在动态生成的复选框 v-models 数组中更新

UNITY3D:如何将 NavMeshAgent 行走速度设置为 0,但让他向玩家旋转

如何使用目标实体更新 Android 上的 Rooms 数据库表中的特定列?

除非您与 UITableViewController 交互,否则 UIImageView 类别不会更新