Why Gameplay Cue not load by associated Gameplay Ability or Gameplay Effect?

I’m using GAS(GameplayAbilitySystem) module in my game,I find out the Gameplay Cue Managed by GameplayCueManager and GameplayCueSet. All Cue will loading when ANY Cue executing, I think is not friendly for heavily use GAS. Why not let Ability or Effect dependent owner GameplayCue,and the the assets system will auto manager the resources load. What is the GameplayCueManager’s design goals?

An alternative to async loading every GameplayCue on startup is to only async load GameplayCues as they’re triggered in-game. This mitigates the unnecessary memory usage and potential game hard freezes while async loading every GameplayCue in exchange for potentially delayed effects for the first time that a specific GameplayCue is triggered during play. This potential delay is nonexistent for SSDs. I have not tested on a HDD. If using this option in the UE Editor, there may be slight hitches or freezes during the first load of GameplayCues if the Editor needs to compile particle systems. This is not an issue in builds as the particle systems will already be compiled.

First we must subclass UGameplayCueManager and tell the AbilitySystemGlobals class to use our UGameplayCueManager subclass in DefaultGame.ini.

[/Script/GameplayAbilities.AbilitySystemGlobals]
GlobalGameplayCueManagerClass="/Script/ParagonAssets.PBGameplayCueManager"

In our UGameplayCueManager subclass, override ShouldAsyncLoadRuntimeObjectLibraries().

virtual bool ShouldAsyncLoadRuntimeObjectLibraries() const override { return false; }

1 Like