GameplayAbility を最初に使用した際にゲームが止まるのを修正する方法
GameplayAbility を使っているプロジェクトで開発していると、エディタの起動後、ゲームをプレイして初めて GameplayAbility を使用した場合に一瞬から数秒ゲームが固まることがあります。
多分、GameplayAbility の使用時に何かを探索しているのかなとか考えてたのですが、解決方法が、AnswerHub に書いてました。
https://answers.unrealengine.com/questions/820453/gameplay-ability-long-lag-on-first-use.html
DefaultGame.ini
に GameplayCue のあるフォルダを指定してあげると解決できるみたいです。
[/Script/GameplayAbilities.AbilitySystemGlobals] +GameplayCueNotifyPaths="GameplayCue があるフォルダのパス"
GameplayAbility を最初に使用する際に、CueManager が作成されるらしく、その処理の中でプロジェクト内の GameplayCue を探し出し、Cue をプールする処理があるそうです。
上記の GameplayCueNotifyPaths
は、どこのフォルダを探索するかを指定する設定のようです。
GameplayCueNotifyPaths
のデフォルトは /Game/
なので、指定しないとプロジェクト全体を探索してしまうため、ゲームが固まることがあるみたいです。
なので、上記のように GameplayCueNotifyPaths
を指定してあげることで解決します。
ちなみに、親切にもログにちゃんと書いてました。
LogAbilitySystem: Warning: No GameplayCueNotifyPaths were specified in DefaultGame.ini under [/Script/GameplayAbilities.AbilitySystemGlobals]. Falling back to using all of /Game/. This may be slow on large projects. Consider specifying which paths are to be searched.
ちゃんとログは読まなきゃですね。
今回は以上です。