1. Input Config Data Asset
능력을 시행시키기 위해 키보드나 마우스등의 조작을 해야하고 이 조작을 식별할 수 있어야 한다. 데이터 에셋을 만들어 게임플레이 태그와 향상된 인풋을 연결하여 이를 구분할 수 있도록 할 것이다.
데이터 에셋을 만들어보도록 하자.
이제 이 클래스에서 인풋 액션과 태그를 연결할 구조체를 만들어준다.
USTRUCT(BlueprintType)
struct FAuraInputAction
{
GENERATED_BODY()
UPROPERTY(EditDefaultsOnly)
const class UInputAction* InputAction = nullptr;
UPROPERTY(EditDefaultsOnly)
FGameplayTag InputTag = FGameplayTag();
};
사실 위 구조체의 경우 멤버변수가 2개 밖에 없어 구조체가 아닌 Map으로 구현해도 결과는 비슷하지만 구조체의 경우 더 많은 기능들을 넣을 수 있어 유연성을 보장한다. 정말 Map으로 구현하고 싶으면 그렇게 해도 상관은 없다.
이제 이 구조체를 저장할 배열을 만들자.
UCLASS()
class PRACTICE2_API UAuraInputConfig : public UDataAsset
{
GENERATED_BODY()
public:
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
TArray<FAuraInputAction> AbilityInputActions;
};
이제 이 배열에서 태그를 통해 인풋 액션을 찾는 함수를 만들 것이다.
public:
const UInputAction* FindAbilityInputAction(const FGameplayTag& InputTag, bool bLogNotFound = false) const;
const UInputAction* UAuraInputConfig::FindAbilityInputAction(const FGameplayTag& InputTag, bool bLogNotFound) const
{
for (const FAuraInputAction& Action : AbilityInputActions)
{
if (Action.InputAction && Action.InputTag == InputTag)
{
return Action.InputAction;
}
}
return nullptr;
}
이제 이 인풋과 연결할 태그들을 만들어주면 된다.
2. 에디터에서 인풋 데이터 에셋 설정하기
데이터 에셋을 만들어주자.
여기서 이제 서로 서로 연결할 수 있다. 이 작업을 끝내면 된다.
'게임프로그래밍 > 실습2' 카테고리의 다른 글
[실습2] 42. 마우스 클릭으로 움직이게 하기 (0) | 2024.12.03 |
---|---|
[실습2] 41. 커스텀 인풋 컴포넌트 만들기 (0) | 2024.12.03 |
[실습2] 39. 어빌리티 부여하기 (0) | 2024.12.03 |
[실습 2] 38. 어트리뷰트가 바뀌면 응답하기 (0) | 2024.12.02 |
[실습2] 37. C++에서 태그와 어트리뷰트 연결하기 (0) | 2024.12.02 |