몬스터가 플레이어를 감지하고 자율적으로 이동하거나 공격할 수 있도록 제어하는 AI 컨트롤러 클래스인 ControllerMonster
에 대해 알아보겠습니다.
이 클래스는 실제로 플레이어 입력을 받지 않는 몬스터가 스스로 행동을 판단하고 전투에 참여할 수 있게 해주는 핵심 로직을 담고 있습니다.
📚 상속 구조 및 개요
ControllerMonster
는 CharacterController
를 상속한 하위 클래스입니다.
CharacterController
└── ControllerMonster
이 구조 덕분에 Run()
, Wait()
, Attack()
과 같은 공통 기능은 상속을 통해 재사용하고, 그 위에 몬스터 전용 AI 판단 로직만 덧붙이는 구조로 되어 있습니다.
🧠 주요 기능 요약
attackerTransform
)이 존재하는지 확인합니다.Run()
메서드를 호출하여 추격 행동을 실행합니다.UpdateDirection()
으로 Flip도 함께 처리합니다.Coroutine
으로 구성하여, 공격 애니메이션과 타이밍을 자연스럽게 연출할 수 있습니다.StartAttackCoroutine()
이 이를 시작하고, 플레이어가 사정거리 밖으로 벗어나거나 몬스터가 죽으면 StopAttackCoroutine()
으로 루프를 종료합니다.