[TIL] Unity - Monster Prefab

MINO·2024년 7월 4일
post-thumbnail

2024-07-04


몬스터 소환 방식

  1. 던전 씬으로 이동 시, 오브젝트 풀에 미리 몬스터들을 생성해두고, 비활성화 해둔다.
  2. 비활성화된 몬스터들을 오브젝트 풀에서 꺼내 활성화 상태로 바꿔준다.
  3. HP 가 0 이 된 몬스터들은 다시 오브젝트 풀에 비활성화 상태로 반환한다.
  4. 오브젝트 풀에서 비활성화된 몬스터를 다시 활성화하여 사용한다.

정도로 틀을 잡아두었다.

따라서, 프리팹으로 생성해둔 몬스터는 비활성화 상태로 저장해두어야 한다.

Goblin ImgInspector

첫번째 몬스터 : 고블린


추가적인 고민

몬스터의 이동 방식은 Nav Mesh Agent 를 통해 Player 의 Position 을 목적지로 삼아
NavMeshAgent.SetDestination(Pos) 로 이동한다.

Rigidbody2D 를 통해 Player 와 몬스터가 충돌하면
한 오브젝트가 뒤로 쭉 밀리는 현상이 발생한다.

  • Player 에 NavMesh Obstacle 컴포넌트를 추가
    • 몬스터가 Player 주변을 빙글빙글 도는 현상이 나타나서 부자연스러움
  • Rigidbody2D 컴포넌트를 삭제
    • 타일맵 콜라이더를 무시해서 맵 밖으로 이동

플레이어와 몬스터가 적정 거리를 유지하며, 충돌하지 않을 방법이 뭐가 있을까..

애니메이션

몬스터마다 각각 다른 애니메이터를 가지고 있지만,
대기 / 이동 / 공격 / 사망 의 동일한 애니메이션 클립을 가진다.

이를 활용하기 위해,
애니메이터 오버라이드 를 활용하면 좋을 것 같다.

TIL 마무리

첫 몬스터 프리팹을 완성하였다.
점차 프로젝트의 진척이 보여 뿌듯하고, 더 열심히 해야겠다는 생각이 든다.

profile
안녕하세요 게임 개발하는 MINO 입니다.

0개의 댓글