4.9 GAS的全局信息管理者 - Ability System Globals

AbilitySystemGlobals类保存这GAS的全局信息。其中大多数的变量可以在DefaultGame.ini中设置。通常你是不会用到这个类的,但是你需要知道它的存在。如果你需要去继承GameplayCueManager或者GameplayEffectContext,你就的要在AbilitySystemGlobals上做一些文章。

为了继承AbilitySystemGlobals,要在DefaultGame.ini中设置类名:

[/Script/GameplayAbilities.AbilitySystemGlobals]
AbilitySystemGlobalsClassName="/Script/ParagonAssets.PAAbilitySystemGlobals"

4.9.1 InitGlobalData()

从UE 4.24开始,就必须要调用UAbilitySystemGlobals::Get().InitGlobalData()来使用TargetData,否则你会有ScriptStructCache相关的报错,并且客户端将从服务器断开。这个函数在项目中只需要调用一次。堡垒之夜是在UAssetManager::StartInitialLoading()中进行调用的,Paragon则是在UEngine::Init()。我发现将其放在UAssetManager::StartInitialLoading()是比较合适的位置,可以参看示例项目。这是很好的样板代码,如果我是你我就乖乖得将其拷贝到自己得项目中,以防出现TargetData相关的问题。

如果你在使用AbilitySystemGlobalsGlobalAttributeSetDefaultsTableNames时遇到崩溃,你可以需要延后对UAbilitySystemGlobals::Get().InitGlobalData()的调用,就将堡垒之夜那样在AssetManager或者在GameInstance中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值