⛈️
【UE5】EditorUtilityWidgetを使ってランタイム中にPlayerにGameplayAbilityを付与して実行させる
概要
この記事は一人アドベントカレンダー by ダリアの4日目の記事です。
今回は下記のようにランタイム中にGameplayAbilityの付与と実行をするようにしてみたので、それについて記事にしました。
環境
UE5.4.4
やり方
まずEditorUtilityWidgetを作ります。
レイアウト
レイアウトはこのようになっています


クラス設定
次に、BPを開いたらまず設定にあるクラス設定→Is Enable In PIEにチェックを入れます。
これにチェックを入れないとPIE中にボタンが押せなくなるためです。

BP
BPの処理の中身はこのようになっています。

まず、PreConstructでGameplayAbilityの変数をSinglePropertyViewの対象にして、GameplayAbilityをコンテンツブラウザから自由に選択できるようにします。
次にOnClickedでGameplayAbilityを実行できる様に準備します。
現在再生中のPIEを取得し、WorldContextObjectとして渡すことで、PlayerStateとPawnを取得します。
次にそのPawnが持っているAbilitySystemコンポーネントを取得し、GiveAbilityAndActivateOnceを呼びます。
以上で設定は終わりです。
設定ができたら実行してみて、冒頭の動画のようにGameplayAbilityが選択でき、その状態でボタンを押したらGameplayAbilityが実行できれば成功です。
Discussion