4

問題が発生した理由はわかっていますが、問題を回避する正しい方法ではありません。

私の Nav Mesh エージェントは、円内のランダムなポイントを選択し、ランダムな時間、そこに向かって歩きます。位置が有効な場合、このように正常に見えます。 ここに画像の説明を入力

しかし、エージェントは、歩くことができない場所を選び、歩くために割り当てられた時間だけそこにとどまり、別の場所を選んで再び移動することがよくあります。

ここに画像の説明を入力

移動していない理由は、パスが有効でないためであることを知っています(または、少なくともそれが理由だと思います。)

しかし、私はこのようなものを実装しようとしましたが、うまくいきませんでした。

private void moveTowardsWaypoint()
    {
        agent.ResetPath();
        Vector3 newPosition = new Vector3(randomDirection.x, 0,        randomDirection.y) + transform.position;
        NavMeshPath path = new NavMeshPath();
        Debug.Log(agent.CalculatePath(newPosition, path));
        if(agent.CalculatePath(newPosition, path) == false)
        {

            agent.ResetPath();
            StopCoroutine(walkTime());
            pickWayPoint();
        }
        else
        {
            agent.SetDestination(newPosition);
        }

    }
4

1 に答える 1