UE4:構造体 実装メモ
2週間前に構造体のテストをしていざ実際にゲームに実装するぞ!ってなったらすっかり忘れていたのでブログにまとめて起きます。
今回実装するのは
1.TriggerBoxをレベルに配置しそこに入るとHealthが+30される
2.ジャンプするとBooleanがTrueになる。着地しているときはfalseになる
3.ActorをクリックするとCheckがTrueになる
動画ではこちら
準備
まずBluePrintから構造体BP(名前がTestKouzoutai)を作成します。
中身を見ると、変数を宣言出来る場所があるので以下のようにしました。
次にCharacter側のBluePrintのイベントグラフに移り変数を宣言します。変数のタイプを先ほど作った構造体にします。
表示
構造体の状態をPrintStringでゲーム上に表示させたいのでCharacterBPに以下のようにノードを組みます。Appendによって何がTrueかなどを判断できるようにしました。
1の実装について
レベル上にボックストリガーを設置します。HiddenInGameのチェックを外しています。(Play時にボックスが見えるようにするため
レベルブループリントにOverlapイベントを設置してキャラクターにキャストします。そこから先ほど作った変数を呼び出し構造体の解除と作成を出し変数に入れるようにします。
今回は入ったらHPが30あがるようにしたいのでHealthから+ノードをだし30を入れ作成側のHealthにつなぎます。
2の実装について
次にジャンプしているかどうかを判断します。
CharacterのBPのイベントグラフを開きCharacterMovementを出しそこから[is Falling]ノードを出します。これで飛んでいるかどうかを判断できます。
先ほど作成した構造体の変数を出し、解除作成を出します。Air?に先後どの[is Falling]をつなげます。そして変数に入れます。
(EventTickに繋いであります。)
3の実装について
動画ではスコープが実装されていますが、そこは以前作ったものなので割愛・・・(FPSテンプレートを使うといいかもです。
スコープを表示した後にアクターをクリックするとアクターが消えCheckがTrueになるようにする。
BluePrintinterfaceを用います。
作成の仕方は以下の動画から
次にアクターを作成し、以下のようにノードを構成します。関数名をStructureTestにしました。
以上になります。
お気づきになっておると思いますが、一応LevelBluePrintとCharacterとBlluePrint間の3つの実装を書きましたがほぼ同じなんですよね・・・。まあこれで忘れないはず・・・。
何かこうしたほうがいいなどのアドバイスがありましたらツイッターのDMでお願いします~
以上