Startup Data Asset done
parent
c68562eca6
commit
66995bc486
|
|
@ -2,3 +2,19 @@
|
||||||
|
|
||||||
|
|
||||||
#include "AbilitySystem/StartupData/VRStartupAbilitySystemData.h"
|
#include "AbilitySystem/StartupData/VRStartupAbilitySystemData.h"
|
||||||
|
|
||||||
|
#include "AbilitySystemComponent.h"
|
||||||
|
#include "VRGASUtils.h"
|
||||||
|
|
||||||
|
void UVRStartupAbilitySystemData::GiveToAbilitySystemComponent(UAbilitySystemComponent* InAbilitySystemComponent, int32 ApplyLevel)
|
||||||
|
{
|
||||||
|
check(InAbilitySystemComponent)
|
||||||
|
|
||||||
|
AActor* AvatarActor = InAbilitySystemComponent->GetAvatarActor();
|
||||||
|
|
||||||
|
UVRGASUtils::BatchGrantAbilities(StartupAbilities, InAbilitySystemComponent, ApplyLevel);
|
||||||
|
UVRGASUtils::BatchGrantAbilitySets(StartupAbilitySets, InAbilitySystemComponent);
|
||||||
|
|
||||||
|
// Should the avatar actor be the source of the attribute set initializer effect?
|
||||||
|
UVRGASUtils::ApplyEffectToTargetASC(InAbilitySystemComponent, AttributeInitEffect, AvatarActor, AttributeInitLevel);
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,8 +10,12 @@
|
||||||
|
|
||||||
struct FVRAbilitySet;
|
struct FVRAbilitySet;
|
||||||
class UGameplayAbility;
|
class UGameplayAbility;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
* @class UVRStartupAbilitySystemData
|
||||||
|
*
|
||||||
|
* A data asset that contains information about initial abilities, ability sets,
|
||||||
|
* and attribute initialization effects that should be given to an ability system component.
|
||||||
*/
|
*/
|
||||||
UCLASS()
|
UCLASS()
|
||||||
class VRGAS_API UVRStartupAbilitySystemData : public UDataAsset
|
class VRGAS_API UVRStartupAbilitySystemData : public UDataAsset
|
||||||
|
|
@ -19,15 +23,19 @@ class VRGAS_API UVRStartupAbilitySystemData : public UDataAsset
|
||||||
GENERATED_BODY()
|
GENERATED_BODY()
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
// Gives abilities and ability sets to the target ASC, as well as applies the attribute initializer gameplay effect
|
||||||
|
virtual void GiveToAbilitySystemComponent(UAbilitySystemComponent* InAbilitySystemComponent, int32 ApplyLevel = 1);
|
||||||
|
|
||||||
|
// Add accessors as needed
|
||||||
|
protected:
|
||||||
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Starup Data|Abilities")
|
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Starup Data|Abilities")
|
||||||
TArray<UGameplayAbility> StartupAbilities;
|
TArray<TSubclassOf<UGameplayAbility>> StartupAbilities;
|
||||||
|
|
||||||
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Starup Data|Abilities")
|
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Starup Data|Abilities")
|
||||||
TArray<FVRAbilitySet> StartupAbilitySets;
|
TArray<FVRAbilitySet> StartupAbilitySets;
|
||||||
|
|
||||||
UPROPERTY(EditDefaultsOnly, Category = "Startup Data|Attributes")
|
UPROPERTY(EditDefaultsOnly, Category = "Startup Data|Attributes")
|
||||||
UGameplayEffect AttributeInitEffect;
|
TSubclassOf<UGameplayEffect> AttributeInitEffect;
|
||||||
|
|
||||||
UPROPERTY(EditDefaultsOnly, Category = "Startup Data|Attributes")
|
UPROPERTY(EditDefaultsOnly, Category = "Startup Data|Attributes")
|
||||||
float AttributeInitLevel = 1.f;
|
float AttributeInitLevel = 1.f;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue