Skip to content

Commit

Permalink
feat : 태그-입력 연결 구현
Browse files Browse the repository at this point in the history
  • Loading branch information
Bisu96 committed Jun 8, 2024
1 parent f89af01 commit 5e2514c
Show file tree
Hide file tree
Showing 4 changed files with 102 additions and 1 deletion.
34 changes: 34 additions & 0 deletions Source/Aura/Private/AuraGameplayTags.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -84,4 +84,38 @@ void FAuraGameplayTags::InitializeNativeGameplayTags()
FName("Attributes.Secondary.MaxMana"),
FString("Maximum amount of Mana obtainable")
);


/*
* Input Tags
*/
GameplayTags.InputTag_LMB = UGameplayTagsManager::Get().AddNativeGameplayTag(
FName("InputTag.LMB"),
FString("Input Tag for Left Mouse Button")
);

GameplayTags.InputTag_RMB = UGameplayTagsManager::Get().AddNativeGameplayTag(
FName("InputTag.RMB"),
FString("Input Tag for Right Mouse Button")
);

GameplayTags.InputTag_1 = UGameplayTagsManager::Get().AddNativeGameplayTag(
FName("InputTag.1"),
FString("Input Tag for 1 key")
);

GameplayTags.InputTag_2 = UGameplayTagsManager::Get().AddNativeGameplayTag(
FName("InputTag.2"),
FString("Input Tag for 2 key")
);

GameplayTags.InputTag_3 = UGameplayTagsManager::Get().AddNativeGameplayTag(
FName("InputTag.3"),
FString("Input Tag for 3 key")
);

GameplayTags.InputTag_4 = UGameplayTagsManager::Get().AddNativeGameplayTag(
FName("InputTag.4"),
FString("Input Tag for 4 key")
);
}
21 changes: 21 additions & 0 deletions Source/Aura/Private/Input/AuraInputConfig.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
// Fill out your copyright notice in the Description page of Project Settings.


#include "Input/AuraInputConfig.h"

const UInputAction* UAuraInputConfig::FindAbilityInputActionForTag(const FGameplayTag& InputTag,bool bLogNotFound) const
{
for(const FAuraInputAction& Action :AbilityInputActions)
{
if(Action.InputAction && Action.InputTag==InputTag) //nullchk, 일치하는 태그발견시
{
return Action.InputAction; //그때 인풋액션 리턴
}
}
if(bLogNotFound)
{
UE_LOG(LogTemp,Error,TEXT("Can`t find AbilityInputAction for Input Tag [%s], on InputConfig [%s]"),*InputTag.ToString(),*GetNameSafe(this))
//그때 태그, 클래스이름 출력
}
return nullptr;
}
11 changes: 10 additions & 1 deletion Source/Aura/Public/AuraGameplayTags.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,16 @@ struct FAuraGameplayTags
FGameplayTag Attributes_Secondary_HealthRegeneration;
FGameplayTag Attributes_Secondary_ManaRegeneration;
FGameplayTag Attributes_Secondary_MaxHealth;
FGameplayTag Attributes_Secondary_MaxMana;
FGameplayTag Attributes_Secondary_MaxMana;

FGameplayTag InputTag_LMB;
FGameplayTag InputTag_RMB;
FGameplayTag InputTag_1;
FGameplayTag InputTag_2;
FGameplayTag InputTag_3;
FGameplayTag InputTag_4;



protected:

Expand Down
37 changes: 37 additions & 0 deletions Source/Aura/Public/Input/AuraInputConfig.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CoreMinimal.h"
#include "GameplayTagContainer.h"
#include "Engine/DataAsset.h"
#include "AuraInputConfig.generated.h"


USTRUCT(BlueprintType)
struct FAuraInputAction
{
GENERATED_BODY()

UPROPERTY(EditDefaultsOnly)
const class UInputAction* InputAction = nullptr;

UPROPERTY(EditDefaultsOnly)
FGameplayTag InputTag = FGameplayTag(); //포인터아님 -> 헤더인클루드해야함
};

/**
*
*/
UCLASS()
class AURA_API UAuraInputConfig : public UDataAsset
{
GENERATED_BODY()
public:

const UInputAction* FindAbilityInputActionForTag(const FGameplayTag& InputTag, bool bLogNotFound=false) const;

UPROPERTY(EditDefaultsOnly,BlueprintReadOnly)
TArray<FAuraInputAction> AbilityInputActions;

};

0 comments on commit 5e2514c

Please sign in to comment.