현재 개발 중인 게임의 적 유닛은 플레이어를 발견했을 시 공격이 가능한 거리가 될 때까지 플레이어에게 접근한 뒤
공격을 시작한다.
적 유닛은 NavMeshAgent를 이용하여 이동하는데, 멈출 때는 NavMeshAgent.isStopped를 true로 바꿔주었다.
그러자 적 유닛이 멈춘 뒤 다시 이동할 때 순간이동을 하는 현상이 발생했다.
그 이유는 NavMeshAgent에 Velocity가 존재하기 때문이다.
isStopped를 했을 때 씬에서 캐릭터의 위치는 그 자리에서 멈추지만,
실제 NavMeshAgent에서의 위치는 Velocity가 zero가 될때까지 미끄러져간다.
isStopped를 true로 바꿔주면서 NavMeshAgent.velocity를 Vector3.zero로 초기화해주자 원하는 결과를 얻을 수 있었다.
'Unity 공부시작' 카테고리의 다른 글
[Unity3D] Image의 Color를 변경해도 적용이 안되는 경우 (0) | 2020.01.06 |
---|---|
[Unity3D] World Space 상의 UI를 화면의 가장 위에 그리기 (0) | 2020.01.06 |
Unity3D NavMeshAgent의 SetDestination, ResetPath (0) | 2019.04.02 |
Unity3D 거리에 따른 음향의 차이가 나지 않을 때 (0) | 2019.04.01 |
transform.TransformDirection(float x, float y, float z) (0) | 2019.03.31 |