【Unity】NavMeshAgentの座標移動でハマる
環境
Unity 2018.2.16f1
ハマりポイント
NavMeshAgentをアタッチしたGameObjectが指定した位置に移動しない。
Vector3 s_pos = new Vector3(0,0,0);
transform.position = s_pos;//ここで(0,0,0)へ移動しない
解決策
NavMeshAgentがアタッチされているとtransform.positionの値を直接変更した場合でも、現在の座標と変更先の座標を結ぶ直線の間にNavMeshで侵入付加エリアが設定されていると、進入不可エリアを超えて移動できないようだ。(つまり侵入付加エリア手前に移動してしまう)
下記のようにNavMeshAgentを一度無効化することで任意の座標に移動できる。
Vector3 s_pos = new Vector3(0,0,0);
var agent = GetComponent<NavMeshAgent>();
agent.enabled = false;
transform.position = s_pos;//ここで(0,0,0)へ移動できた
agent.enabled = true;
この記事が気に入ったらサポートをしてみませんか?