게임플레이 타기팅 시스템
게임플레이 타기팅 시스템은 데이터 기반 타기팅 요청을 생성하는 방법입니다. 게임플레이 어빌리티 시스템 플러그인을 기반으로 확장되지만, 해당 기능 이외에서 사용할 수도 있습니다.
에디터에서 편집(Edit) > 플러그인(Plugins) > 게임플레이(Gameplay) > 게임플레이 어빌리티(Gameplay Abilities) > 타기팅 시스템(Targeting System) 으로 이동해 타기팅 시스템을 활성화할 수 있습니다.

타기팅 시스템 플러그인을 설정합니다.
데이터 및 디자인
타기팅 시스템은 타기팅 프리셋(Targeting Preses) 을 사용합니다. 타기팅 프리셋은 실행된 타기팅 요청에 대해 위에서부터 순서대로 실행되는 타기팅 작업(Targeting Tasksf) 세트를 정의하는 데이터 에셋입니다.

*
_TP_Knockback_Pistol_ 은 _Trace_ 타기팅 작업과 액터 클래스 타기팅 작업의 _Filter_ 로 설정된 타기팅 프리셋입니다.*
타기팅 프리셋의 특징은 각 작업이 인라인 프로퍼티 편집을 지원한다는 점입니다. 각 작업의 UAsset
을 정의하지 않고도 작업이 어떻게 동작해야 할지 설정하는 재사용 가능한 타기팅 작업과 프리셋을 정의할 수 있습니다.

위 두 이미지는 트레이스 타입 과 필수 액터 클래스 가 다릅니다. 동일한 타기팅 프리셋에서 다른 타기팅 작업을 선택하지 않고도 이렇게 설정할 수 있습니다.*
타기팅 작업
타기팅 작업은 원하는 액션을 수행하기 위한 작은 유닛 작업입니다. 타기팅 작업은 일반적으로 선택, 필터링, 정렬의 세 카테고리로 나눌 수 있습니다.
타기팅 작업은 블루프린트를 지원합니다. 작업을 어떻게 엔지니어링 했는지에 따라, 클래스 디폴트 프로퍼티를 설정하는 정도에서부터 블루프린트 호출 가능 이벤트를 처리하는 정도로 간단할 수 있습니다.

예시: Knockback Pistol Trace 작업은 소스 위치와 트레이스의 방향을 계산하기 위해 오버라이드할 수 있는 두 개의 이벤트로 설정됩니다. 이 예시의 블루프린트 코드는 폰을 가져오고 카메라 위치와 카메라 방향을 얻는 함수를 호출합니다.
즉시 타기팅 요청
즉시 타기팅 요청은 UTargetingSubsystem::ExecuteTargetingRequest
함수를 호출해 수행됩니다. 타기팅 요청은 UTargetingPreset
오브젝트를 기반으로 하며 즉시 실행되므로, 완료될 때까지 게임 스레드를 차단합니다.
비동기 타기팅 요청
비동기 타기팅 요청은 UTargetingSubsystem::StartAsyncTargetingRequest
함수를 호출해 수행됩니다. 타기팅 요청은 UTargetingPreset
오브젝트를 기반으로 하며 즉시 실행되지만, 완료될 때까지 게임 스레드를 차단하지 않을 수도 있습니다.
이러한 요청은 타기팅이 완료되기 전에 타기팅 요청이 느린 작업(예: 서버가 타깃을 인증할 때까지 대기하는 작업) 또는 게임플레이 이벤트의 발생을 기다려야 하는 경우에 유용합니다.
GameplayTargetingSystem 플러그인에 정의된 모든 타기팅 작업은 즉시 타기팅 요청 및 비동기식 타기팅 요청을 모두 구현하지만, 게임에 비동기식 기능이 사용되지 않으면 게임 코드가 반드시 두 요청을 모두 구현해야 하는 것은 아닙니다.
비동기 액션 - 타기팅 수행 / 필터링 수행
UAsyncAction_PerformTargeting 은 비동기 타기팅 요청 또는 필터링 액션을 시작하기 위한 일반 블루프린트 지원을 제공합니다.
디버깅
디버그 콘솔 명령과 그 설명의 전체 목록을 보려면, 게임플레이 타기팅 디버깅 문서를 참고하세요.
개발자 레퍼런스
상세한 엔지니어링 레퍼런스 가이드가 필요하다면, 게임플레이 타기팅 플러그인 레퍼런스 문서를 참고하세요.