반응형

NavMeshAgent.SetDestination 호출후 같은 프레임에 네비는 바로 적용이 되지 않습니다.

 

SetDestination 호출후 목적지 계산이 필요하므로  네비 계산이 완료 되면 다음 프레임에 목적지 이동 하기 시작합니다.

 

 

위와 같은 확인은 같은 프레임에서 NavMeshAgent.SetDestination 호출후 NavMeshAgent.remainDistance를 확인해 보면 값이 0 인걸 알수 잇습니다.

 

다음 프레임 쯔음에 다시 NavMeshAgent.remainDistance 확인해 보면 목적지까지의 현재 거리를 나타납니다 ,

이떄 네비가 계산완료하여 움직입니다.

 

 

그래서 NavMeshAgent.SetDestination 호출후 바로 네비가 적용되지 않으니

네비가 계산완료 할떄까지 기달려야합니다. 

 

NavMeshAgent 는 계산이 완료 되엇다는  프로퍼티를 제공하니 (NavMeshAgent.pathPending) 활용하면 좋을거 같습니다 .

 

유니티 레퍼런스에 의하면 NavMeshAgent.pathPending 는

"계산중이지만 아직 준비가 되지 않는 경로(path)를 나타냅니다." 라고 설명되어있습니다.

그래서 pathPending  가 false 이면 계산완료 햇다는 것입니다.

 

 

 

ex) NavMeshAgent.pathPending 사용 예 

void Update()

{

   if(!NavMeshAgent.pathPending)

   {

      //계산 완료하였으니 이제 목적지까지 이동하기 시작한다.

   }

}

반응형

+ Recent posts