CREATE YOUR WORLD
Interaction with Object

캐릭터를 따라다니는 오브젝트 구현하기

9min

NavMeshAgent 컴포넌트를 사용하여 캐릭터를 따라다니는 AI 객체를 구현할 수 있습니다.

이 가이드에서는 당신을 따라다니는 애완동물 유형의 객체를 구현할 것입니다.



1단계 : NavMesh 설정하기

1) 애완동물 객체가 이동할 수 있는 영역을 정의하기 위해 내비게이션 메시(NavMesh)를 설정합니다.

  • 설정 방법에 대한 자세한 내용은 NavMesh 가이드를 참조하십시오.

  • 배경 객체의 내비게이션 정적 속성을 설정하고 베이크 탭에서 베이크 버튼을 눌러 내비게이션 메시를 생성합니다.
Document image




2) 애완동물 객체에 NavMeshAgent 컴포넌트를 추가하고 에이전트의 크기, 회전 속도, 가속도 등을 설정합니다.

  • 여기서 에이전트는 NavMesh의 내비게이션 시스템을 사용하는 펫 객체입니다.
  • 에이전트의 값을 변경하여 펫이 이동하는 속도, 회전 속도 및 이동 시 가속도, 장애물을 인식하는 높이 등을 설정할 수 있습니다.
  • Nav Mesh 에이전트의 정지 거리를 3으로 설정하여 펫이 플레이어로부터 3의 거리에서 멈추도록 합니다.
Document image




  • 설정 방법에 대한 자세한 내용은 NavMeshAgent 가이드를 참조하십시오.



2단계 : 펫 AI 스크립트 작성하기

1) 아래와 같이 새로운 TypeScript를 생성하고 이름을 PetController로 지정한 후, 스크립트를 펫 객체에 적용합니다.

PetController.ts




스크립트 설명

  • 스크립트의 시작 부분에서 _target에 ZEPETO 캐릭터를 지정합니다.
  • 업데이트 함수에서 매 프레임마다 NavMeshAgent의 SetDestination 함수를 사용하여 내 ZEPETO 캐릭터의 위치를 NavMesh의 목표 지점으로 설정합니다.



2) 이제 재생 버튼을 눌러 실행하면 애완동물 객체가 캐릭터를 따라가고 벽과 같은 장애물을 피하며 움직이는 것을 볼 수 있습니다.

Document image




캐릭터 머리 위에 애완동물 만들기

1) 캐릭터를 따라가는 대신 캐릭터의 몸 위에 앉아 있는 애완동물을 구현하고 싶다면 객체를 부착하여 그렇게 할 수 있습니다.

📘 다음 가이드를 참조하십시오. [ZEPETO 캐릭터에 오브젝트 부착하기]



2) 다음 AttachPetController 스크립트를 작성하십시오. 여기서 변수 Pet은 애완동물로 생성될 객체를 지정합니다.

  • 바디본 탭에서 드롭다운 메뉴를 열어 펫 객체가 부착될 신체 부위를 선택합니다.
AttachPetController.ts




스크립트 설명

  • 스크립트가 시작되면 로컬 플레이어를 찾고 캐릭터의 애니메이터를 찾습니다.
  • 변수 bodyBone에서 선택한 신체 부위가 캐릭터의 애니메이터에 있는지 찾아 위치를 확인합니다.
  • 우리가 찾은 위치에 펫 객체를 인스턴스화하고 생성합니다. 이전에 찾은 캐릭터의 애니메이터의 신체 부위에 펫 객체를 부모로 설정합니다.



3) [▶︎(재생)] 버튼을 눌러 실행하면 아래 이미지와 같이 선택한 신체 부위에 펫 객체가 생성되는 것을 볼 수 있습니다.



Document image