6-12. 15조 Monster 수정

keubung·2024년 12월 11일

1. PlayerAttackMonster() (기존 FleeFromPlayer 메서드)

기능 별 메서드들을 추가하여 수정

  • Vector3 GetSafeFleeDestination : 도망 위치 계산
  • Vector3 GetRandomDirection : 랜덤 방향 계산
  • bool TryGetValidNavMeshPosition : 유효한 NavMesh 위치 확인
  • bool IsValidFleeAngle : 플레이어를 지나치지 않도록 각도 설정(플레이어를 바라본 180도를 제외하도록)
  • bool IsValidPathLength : 이동 경로 길이 확인

2. MonsterController

MonsterController를 상속받는 각각의 몬스터들을 분리

  • MonsterController -> 추상 클래스로 변경
  • SetState 메서드 삭제 -> MonsterState 클래스를 만들어 이벤트로 처리

1. StunMonsterController (사진을 찍으면 잠시 멈추는 몬스터)

  • PlayerAttackMonster(override), SetStun, CoSetStun(Coroutine)

2. FleeMonsterController (사진을 찍으면 도망갔다가 원래자리로 돌아가는 몬스터)

  • PlayerAttackMonster(override), FleeAndTransitionToWandering(Coroutine), GetSafeFleeDestination, GetRandomDirection, TryGetValidNavMeshPosition, IsValidFleeAngle, bool IsValidPathLength(Vector3 destination, out float pathLength)

3. BossMonsterController (계속해서 추적하는 몬스터)

  • PlayerAttackMonster(override)
profile
김나영(Unity_6기)

0개의 댓글