ノートの端の書き残し

UnityやらC#やら。設計が得意かもしれない。

Unityプログラマ視点のUnreal Engine5メモ

UniRx(イベント)

イベントディスパッチャーでイベントが生成できる。イベントさえ書ければ根本的な問題は解決できるが、ブループリントでも使い勝手をRxに近付けたいところ。

非同期

だいぶやり辛い感じがする。一定時間毎フレーム何かする、とかはマクロライブラリに作っておく。なんとかしたい。

ユーティリティメソッド

関数ライブラリ、マクロライブラリといった、ユーティリティ用のブループリントが作れる。マクロじゃないと非同期的なノードが使えないけど、基本関数の方がいい気はする。

シングルトン

GameInstanceがそれ。セーブデータとかオプションとかはここが無難か。

UI

Widgetと呼ばれる。Viewがデザイナーで、Controllerがグラフ。ゲーム中に一時停止して表示したいとかよくあるが、インゲームを一時停止するPauseノードが最初からあるし、InputモードをUIのみにする(インゲーム側ではユーザーからの入力を全て無視する)なども最初からノードがあるのでありがたく使う。UE5でEpic謹製のCommon UIなるプラグインが追加されたそう。

シーンPresenter

各レベルにはGameModeを設定し、GameModeがどのControllerクラスを使うか、どのキャラクターがユーザー操作を受け付けるかなど決める。マウスの非表示とかはController。だいたいこの辺がエントリポイントだと思ってよさそう。

プレハブ内プレハブ

Child Actorを使う。ソケットを使って、具体的にどこに配置するか決める。全部Transformで扱うより健全そう。