Unreal Engine 4
自分用メモです。逐次更新タイプです。
覚えて置きたいことをメモっていくので一貫性はないです
UE C++
参照渡し
同じところで呼び出されていたら、out1
の状態は保持されてる。(なぜ)クラス変数でもなさそう。
static void AMyActor::Increment(int& out1);
...
void AMyActor::Increment(int& out1)
{
out1 += 1;
return;
}
継承
こういう継承の仕方があるのか。。詳しく分かれば追加します
class FUniqueNetId : public TSharedFromThis<FUniqueNetId>
{
protected:
...
Widget
こういう構造があった
-
Border
- Background Blur
- Vertical Box
- Button
- Text
- Button
- Vertical Box
- Background Blur
-
ボーダーは子ウィジェットを 1 つ格納できるコンテナ ウィジェットです。ボーダー画像と調整可能なパディングでその周りを囲むことができます。Blur下にあるからほぼほぼ透明にする
-
Background Blur ウィジェット には子ウィジェットをひとつ含めることが可能であり、調整可能なパディングで周囲を囲み、そのウィジェットの下にあるすべてのコンテンツにポストプロセスのガウス ブラーを適用することができます。
-
縦方向ボックス (vertical box) ウィジェットは、子ウィジェットを自動的に垂直に配列するレイアウト パネルです。これはウィジェットを積み重ね、縦方向に並べるのに適しています。ボタンを複数並べて,Fillするとか
-
Background Blur使う場合はボタンは透明(Normal→Color Picker→alpha値をいじる)にする.HoveredとPressedで色が変えられる
Visibility
Visibility設定の中で唯一、マウスクリックやマウスオーバーなどのイベント通知がされます。
Collapsed
HorizontalBoxやVerticalBoxなどのパネルWidget内でレイアウトを組んだ場合、Collapsed状態のWidgetは無視されます。
WidgetであってもUMGであってもCollapsed状態の場合、Tick処理は実行されません。
非表示になっているだけなので存在はしていて、Get Child AtノードなどでWidgetの参照は取れます。
Game Mode
オープンエンド型ゲームでも基本的なゲームのルールがあり、こうしたルールが Game Mode を構成します。最も基本的なレベルとしては、以下のルールがあります。
- 現在のプレイヤーとスペクテーター (観戦者) 数に加え、プレイヤーとスペクテーターの最大許容数
- プレイヤーのゲーム参加方法。スポーン位置と他のスポーン / リスポーンのビヘイビアを選択するためのルールを含みます
- 一時停止機能の利用可否と、一時停止の処理方法
- ゲームをシネマティックス モードで開始するかどうかを含むレベル間の遷移
ゲーム内でルール関連のイベントが発生し、それをトラックし、全プレイヤーで共有する必要がある場合、その情報は Game State を通して保存され同期されます。こうした情報には以下が含まれます。
- ゲームをどれくらいの時間実行していたか (ローカルのプレイヤー参加前の実行時間を含む)。
- 各個人プレイヤーがゲームに参加した場合、そのプレイヤーの現在のステート。
- 現在の Game Mode の基本クラス。
- ゲームが開始したかどうか。
GameModeでPlayerController Class
などが紐づいているので、デフォルト以外を用いたい場合は新たにGameModeを継承して変更する必要がある。
PostLogin
ログインに成功すると呼び出されます。これは、PlayerController でレプリケートされた関数を呼び出すのに安全な最初の場所です。OnPostLogin をブループリントで実装し、ロジックを追加することができます。
参考
Widget タイプのリファレンス
UE4 WidgetのVisibilityについて
Game Mode と Game State