淘先锋技术网

首页 1 2 3 4 5 6 7

GamePlayTags: 

        核心数据结构:AbilitySystemComponent::FGameplayTagCountContainer 

        主要用于区别Object以及描述Object的状态了;例如如果角色被Stun(眩晕)了,那么在Stun期间,我们可以给角色一个GamePlayTag: State.Debuff.Stun 

        使用 FGameplayTag::RequestGameplayTag(FName("Your.GameplayTag.Name")) 来获得对GameplayTag的引用。

        可以加入委托来对Tag数量变化做出相应:        

AbilitySystemComponent->RegisterGameplayTagEvent(FGameplayTag::RequestGameplayTag(FName("State.Debuff.Stun")), EGameplayTagEventType::NewOrRemoved).AddUObject(this, &AGDPlayerState::StunTagChanged);

        其中RegisterGameplayTagEvent返回一个多播的数据结构,通过AddUobject来委托一个成员函数

//C++ AGDPlayerState 函数声明
virtual void StunTagChanged(const FGameplayTag CallbackTag, int32 NewCount);

Attributes

        核心数据结构:FGameplayAttributeData

        使用:为属于Actor的Gameplay数值设置属性

        尽量使用GE来修改Attribute,这样就ASC可以预测值的变化