document.write("
#pragma once
#include "EnhancedInputComponent.h"
#include "InputActionGameplayAbilityMappings.generated.h"
enum class ETriggerEvent : uint8;
class UInputActionGameplayAbility;
class UInputAction;
class UGameplayAbility;
USTRUCT(NotBlueprintable)
struct FInputActionGameplayAbilityMappingData
{
GENERATED_BODY()
UPROPERTY(EditAnywhere, Category = "InputActionGameplayAbilityMappingData")
TSubclassOf<UGameplayAbility> GameplayAbilityClass;
UPROPERTY(EditAnywhere, Category = "InputActionGameplayAbilityMappingData")
TObjectPtr<UInputAction> InputAction;
UPROPERTY(
EditAnywhere,
Category= "InputActionGameplayAbilityMappingData",
meta=(ValidEnumValues="None, Triggered, Started")
)
ETriggerEvent TriggerType = ETriggerEvent::None;
UPROPERTY(VisibleAnywhere, Category = "GameplayInputAbilityInfo")
int32 InputID = 0;
bool IsValid() const;
bool operator==(const FInputActionGameplayAbilityMappingData& Other) const;
bool operator!=(const FInputActionGameplayAbilityMappingData& Other) const { return !operator==(Other); }
friend uint32 GetTypeHash(const FInputActionGameplayAbilityMappingData& Item);
};
UCLASS()
class DANDELION_API UInputActionGameplayAbilityMappings : public UDataAsset
{
GENERATED_BODY()
UPROPERTY(EditDefaultsOnly)
TSet<FInputActionGameplayAbilityMappingData> Mappings;
public:
FORCEINLINE const TSet<FInputActionGameplayAbilityMappingData>& GetMappings() const { return Mappings; }
FInputActionGameplayAbilityMappingData* GetMappingDataByGameplayAbilityClass(
const TSubclassOf<UGameplayAbility>& TargetGameplayAbilityClass
) const;
#if WITH_EDITOR
virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
#endif
};
InputActionGameplayAbilityMappings.h - Snippet hosted by \"Cacher\"
");