⛈️
【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