먼저 액터 컴포넌트로 TargetSystemComponent와 언리얼 인터페이스로 TargetSystemInterface를 만들주었다.

단순히 순수 가상함수를 만들어 주고 이는 나중에 Enemy에 추가하여 사용할 인터페이스 이다.

 

타겟이 되면 간단히 식별할수 있는 UserWidget을 만들어 주었다.

Enemy 클래스로 돌아와 TargetSystemInterface를 상속받아주고 가상함수를 구현해주었다. 가상함수 내용은 true 리턴해주었다.

 

TargetSystemComponent클래스에서 위젯을 사용하기 위해 받아올 변수를 만들어 주고 TargetLockOn함수와 TargetLockOff함수를 선언 및 정의를 해주었다.

 

제일 먼저 월드에 속한 액터를 검색하여 타겟대상 들인 액터를 순회하는 TActorIterator를 이용하였다.

TActorIterator를 통해 Actor를 가져오고 Actor의 Interface가 존재하는지 체크를 Actors에 넣어주었다.

캐릭터 클래스에서 방금만든 TargetSystemComponent를 만들어주고 테스트 할수있게 세팅을 해주었다.

 

캐릭터 이벤트 그래프에서 TargetSystem의 GetAllActos를 사용할수 있게 노드를 만들어 주고

뷰포트에 몬스터들을 5마리 배치시키고 시작하여 1번을 누르면 5마리의 액터의 이름이 표시되는걸 볼 수 있다.

 

+ Recent posts