[UE 5] 2D 게임 개발 14 - 몬스터 AI 수정

0시0분·2025년 3월 7일
0

UE 5

목록 보기
36/52

코드를 리팩토링하고 수정하면서 어느순간 몬스터의 AI가 작동하지 않았다.

그러면서 새로 알게된 부분이,

사진처럼 'Auto Possess AI' 옵션에 따라서 또 동작하는 방식이 다르다는 부분이었다.

저번에 BP_AIController를 만들어서 몬스터의 행동상태를 제어하도록 했었는데,
몬스터를 드래그앤드롭으로 월드에 배치하지 않고 코드상에서 스폰하도록 했더니 AI가 동작하지 않았다.
그 원인이 바로 저 부분이었다.

기본은 Place in World인데, 드래그앤드롭으로 배치했을 때에만 자동으로 AI를 가져다 쓴다..
코드상으로 스폰했을 때도 해당되게 하려면 Spawned 옵션으로 바꾸면 된다.
결국, 뭘하던 자동으로 동작하게 하고 싶으면 마지막인 Placed in World or Spawned를 고르면 된다.
(새삼 이런 사소한 부분까지 정해져 있구나 싶었다)

대신, 코드상으로 스폰하면 호출 순서가 꼬여서 에러가 뜨기 때문에

이처럼 Event On Possess 함수를 호출할 때 My Monster를 저장해줘야 한다.


Update AI 함수 수정

Move 상태일 때의 로직을 수정했다.
다음 칸에 도착했으면 바라보는 방향을 업데이트하고, 타겟과의 거리가 1칸일 경우 (= 바로 옆일 경우)
Begin Attack을 실행한다.

Get Tile Cnt to Target

대각선에 존재하는건 유효하지 않다.

Look at Target

x, y 좌표의 칸수 차이를 구하고, 좌우방향 우선으로 바라보는 방향을 지정한다.

(override) Update Destination

플레이어의 경우 입력을 멈추면 움직임을 멈추면 됐기 때문에 Stop Move라는 변수를 사용했지만,
몬스터의 경우 그렇지 않기 때문에 타겟(플레이어)에게 도착할 때 까지 방향을 계속 갱신해줘야 한다.


업로드중..

0개의 댓글