UE4 GameplayEffectが適用された/削除されたときになにかしたいときに見るメモ
目次
やあ
GameplayEffectが適用された/削除されたときになにかしたいなーって思って。
環境
- UE 4.25.0
内容
hoge.h
/* 自分にGameplayEffectが適用されたときに呼ばれる関数 */ UFUNCTION(BlueprintCallable) virtual void OnAppliedGameplayEffectToSelf( UAbilitySystemComponent* Source, const FGameplayEffectSpec& Spec, FActiveGameplayEffectHandle Handle ); /* GameplayEffectが削除されたときに呼ばれる関数 */ UFUNCTION(BlueprintCallable) virtual void OnGameplayEffectRemoved( const FActiveGameplayEffect& EffectRemoved );
hoge.cpp
void AHoge::BeginPlay() { Super::BeginPlay(); /* hoge.hで宣言した関数にバインドする */ AbilitySystemComponent->OnGameplayEffectAppliedDelegateToSelf.AddUObject( this, &AHoge::OnAppliedGameplayEffectToSelf ); AbilitySystemComponent->OnAnyGameplayEffectRemovedDelegate().AddUObject( this, &AHoge::OnGameplayEffectRemoved ); } void AHoge::OnAppliedGameplayEffectToSelf( UAbilitySystemComponent* Source, const FGameplayEffectSpec& Spec, FActiveGameplayEffectHandle Handle ) { /* なにかの処理 */ } void AHoge::OnGameplayEffectRemoved( const FActiveGameplayEffect& EndedGameplayEffect ) { /* なにかの処理 */ /* 削除されたGameplayEffectのGameplayTagが欲しい時 */ FGameplayTagContainer EndedGameplayEffectAssetTag; EndedGameplayEffect.Spec.GetAllAssetTag(EndedGameplayEffectAssetTag); }