캐릭터를 따라다니는 오브젝트 구현하기
NavMeshAgent 컴포넌트를 사용하면 제페토 캐릭터를 따라다니는 AI 오브젝트를 만들 수 있습니다.
이 가이드에서는 내 캐릭터를 따라다니는 Pet 형태의 오브젝트를 구현합니다.
Navigation (Obsolete) 창을 엽니다.

Unity 상단 메뉴에서 Window > AI > Navigation (Obsolete)를 클릭해 Navigation (Obsolete) 창을 열어주세요.
Pet 오브젝트가 이동 가능한 영역을 정의합니다.

Navigation (Obsolete) 창의 Object 탭을 클릭한 후, Hierarchy에서 NavMesh에 포함될 바닥, 벽, 장애물 등의 오브젝트를 선택해 Object에 추가해 주세요.
- Pet 오브젝트가 해당 오브젝트들을 이동 가능한 표면 또는 장애물로 인식하도록 설정하는 과정입니다.
Navigation Static 필드가 체크 되어 있는지도 확인해 주세요.
✏️ NavMesh에 대한 자세한 내용은 다음 영상을 참고해 주세요.
NavMesh를 생성합니다.

Bake 탭을 클릭한 후, 하단의 Bake 버튼을 눌러 NavMesh를 생성합니다.
NavMeshAgent를 생성합니다.
Hierarchy에서 Pet 오브젝트를 선택해주세요. 그 다음 Inspector에서 NavMeshAgent 컴포넌트를 추가해 주세요.
- 여기서 Agent는 NavMesh 내비게이션 시스템을 이용해 이동하는 Pet 오브젝트를 의미합니다.
Agent의 속성 값을 조정하면, Pet의 크기, 이동 속도, 회전 속도, 가속도, 장애물로 인식하는 높이 등을 설정할 수 있습니다.
✏️ NavMeshAgent에 대한 자세한 내용은 다음 링크를 참고해 주세요.

위 예제에서는 NavMeshAgent의 Stopping Distance를 3으로 설정하여 Pet이 플레이어와의 거리 3에서 멈추도록 설정하였습니다.
PetController 스크립트를 생성합니다.
Project 창에서 + 버튼 > ZEPETO > TypeScript를 클릭하여 새로운 제페토 스크립트를 생성한 뒤, 이름을 PetController로 수정합니다.
그 다음, 스크립트를 열어 아래 코드를 복사 후 붙여넣습니다.
스크립트 설명
- 스크립트가 시작될 때 _target에 내 제페토 캐릭터를 지정해 줍니다.
- Update 함수에서 매 프레임마다 NavMeshAgent의 SetDestination 함수를 사용하여 내 제페토 캐릭터의 위치를 NavMesh의 목표 지점으로 설정합니다.
Pet 오브젝트에 PetController 스크립트를 적용합니다.
Hierarchy에서 Pet 오브젝트를 선택한 후, Inspector에서 Add Component > Zepeto Script를 클릭한 뒤 Script 필드에 생성한 PetController 스크립트를 드래그 앤 드롭합니다.
플레이 버튼을 눌러 실행합니다.

Pet 오브젝트가 내 캐릭터를 따라오면서, 벽과 같은 장애물도 잘 피해 이동하는 모습을 확인할 수 있습니다.
캐릭터를 따라다니는 Pet이 아닌, 캐릭터의 신체 위에 올려진 Pet을 구현하고 싶다면 캐릭터에 오브젝트를 붙이는 방식을 사용해 보세요.
✏️ 오브젝트 부착에 대한 자세한 내용은 ZEPETO 캐릭터에 오브젝트 부착하기 가이드를 참고해 주세요.
AttachPetController 스크립트를 작성합니다.
Project 창에서 + 버튼 > ZEPETO > TypeScript를 클릭하여 새로운 제페토 스크립트를 생성한 뒤, 이름을 AttachPetController로 수정합니다.
그 다음, 스크립트를 열어 아래 코드를 복사 후 붙여넣습니다.
스크립트 설명
- 스크립트가 시작되면 로컬 플레이어를 찾아서 캐릭터의 애니메이터를 찾게 됩니다.
- 변수 bodyBone에서 선택한 신체 부분이 캐릭터의 애니메이터에서 어느 부분인지 찾아서 위치를 파악합니다.
- 파악한 위치에 pet 오브젝트를 Intantiate 하여 생성해 줍니다. 이때 pet 오브젝트의 parent는 앞서 찾은 캐릭터 애니메이터의 신체 부분으로 지정하게 됩니다.
새로운 오브젝트에 AttachPetController 스크립트를 적용합니다.
Hierarchy에서 + 버튼 > Create Empty를 클릭하여 새로운 오브젝트를 생성한 뒤, 이름을 AttachPetController로 수정합니다.
그 다음, Inspector에서 Add Component > Zepeto Script를 클릭한 뒤 Script 필드에 생성한 AttachPetController 스크립트를 드래그 앤 드롭합니다.
Pet 필드에는 사용할 Pet 오브젝트를 드래그 앤 드롭하고, bodyBone 필드의 드롭다운 메뉴를 열어서 Pet 오브젝트를 부착할 캐릭터의 신체 부위를 선택합니다.

플레이 버튼을 눌러 실행하면 Pet 오브젝트가 선택한 신체 부위에 생성된 것을 확인할 수 있습니다.