드디어 인간의 부자연스러운 움직임 버그가 해결되었다!
원인은 NavMesh 컴포넌트로 인해 풀에서 다시 활성화한 객체의 위치가 초기화가 되지 않아서였다.
NavMesh agent 컴포넌트가 활성화된 상태에서는 해당 컴포넌트를 가지고 있는 게임오브젝트의 transform을 설정해도 그 위치로 움직이지 않는다.
그래서 컴포넌트를 비활성화하고 위치를 초기화했다가 다시 활성화해주어야 한다.
죄없는 트리구조만 삭제되고... FSM으로 수정했지만 막상 수정해보니 이쪽이 현재 상태에 적합한 것 같아 이대로 진행하려고 한다.
private void OnEnable()
{
// 초기화 설정
Agent.enabled = false;
transform.position = SpawnPoint.position; // 시작 위치 설정
Agent.enabled = true;
Agent.ResetPath(); // 경로 초기화
StateMachine.ChangeState(WalkHumanState); // 걷는 상태로 전환
}
위와 같이 설정해주니 잘 동작하고 있다.
'내일배움캠프 > TIL' 카테고리의 다른 글
| [내배캠][Unity6기][TIL] Find 계열 함수 호출 빈도 줄이기 (0) | 2024.12.12 |
|---|---|
| [내배캠][Unity6기][TIL] NavMesh 트러블슈팅 (2) (0) | 2024.12.11 |
| [내배캠][Unity6기][TIL] NavMesh 경로 설정 수정 (0) | 2024.12.06 |
| [내배캠][Unity6기][TIL] 최종 프로젝트 중간 기록 (1) (0) | 2024.12.05 |
| [내배캠][Unity6기][TIL] Behavior Tree 구조 설계 (3) (0) | 2024.12.04 |