UE5 [UMG] - シンプル メニュー UI v3 スタディ ノート

ケースアドレス: https://www.unrealengine.com/marketplace/zh-CN/product/simple-menu-ui
ここに画像の説明を挿入
このデモはシンプルで基本的な構造を持っており、学習を開始するために使用できます

1.UE5の入り口


1) 最初に Project-Maps&Modes を確認し、デフォルトのスタートアップ Map、GameMode、および GameInstance を見つけます。さらに、入力設定も確認する必要があります。

ここに画像の説明を挿入

2) UE5 プログラムが開始すると、GameInstance、GameMode、およびデフォルトのマップがデフォルトで開始されます。
  • 次に、マップ内の LevelBlueprint プログラムがデフォルトで実行され、マップの WorldSettings で、バインドされた Pawn、HUD、PlayerController... も呼び出されて実行されます。
  • さらに、GameMode プログラムが起動し、バインドされた Pawn、HUD、PlayerController... を実行します (通常、バインドするマップまたは GameMode 内の場所を選択します)。
  • SimpleMenuUIv3、Level_MainMenu の LevelBlueprint、および Blueprint_GameInstance への入り口が 2 つあります。

GameInstance、GameMode、PlayerController の説明:

  • GameInstance は、すべての GameMode などにわたってグローバル変数または関数を設定することであり、最高レベルとして理解されます。
  • GameMode は、特定のマップまたは特定のゲーム モードで変数または関数を設定し、このモードですべてのキャラクター スクリプトをクロスドメイン化することです。
  • ゲームの主人公は非常に重要であり、オブジェクト指向の考え方に基づいているため、PlayerController はキャラクター スクリプトです。このようなスクリプトでは、多くの場合、このオブジェクトの関数と変数が多数あります。
  • GameInstance->GameMode->PlayerController は、レイヤーごとの管理構造を形成します。

要約:

  • UE5 の入り口では、GameInstance (カスタム)、GameMode (カスタム)、LevelBlueprint を確認し、カスタム Pawn、HUD、PlayerController などを見つける必要があります。
  • UE5 のプログラミングの考え方はオブジェクト指向の考え方であり、他の Actor オブジェクトは通常、エントリ プログラム呼び出しまたはその他のイベント呼び出しを待ちます。

2. ブループリントが LevelBlueprint を起動します


ここに画像の説明を挿入

  • ケースは、GameInstance を取得する GameInstance に UMG の操作を記述し、LoadSettings と ShowOpeningWidget の 2 つのイベントを開始します。

3. グローバル ブループリント Blueprint_GameInstance - UI オープン (UI オープン/開始)


1) UI を開くためのいくつかの重要なポイント: ウィジェットを作成するかどうかの決定、UI を作成するためのウィジェットの作成、ビューポートを追加するための AddToViewport、マウスを表示するかどうかを設定するためのマウス カーソルの表示、入力モードの設定...入力モード。
2) Show Opening Widget でホームページが開きます

ここに画像の説明を挿入

  • Bool 値に応じて、開始スタンバイ ページまたは MainMenu メイン メニュー ページのどちらを表示するかを決定します。
3) スタート画面を表示して待機ページを開く

ここに画像の説明を挿入

  • StartScreen が空の場合、ウィジェットを作成して保存 -> ビューポートに追加 -> マウス カーソルを表示 -> ブール値を設定; これらの手順は UMG の通常の操作です。
  • Enter を押した後に StartScreen スタンバイ ページに入るか、MainMenu メイン メニュー ページに直接入るかを変更する bool 値
4) メインメニューを表示 メインメニューページを表示します

ここに画像の説明を挿入

  • Set Input Mode には、UI Only、Game Only、Game And UI の 3 種類があり、それぞれ、UI インターフェイスのみを制御するか、ゲーム インターフェイスのみを制御するか、または両方を制御することができます。

4. スタートページ Widget_StartScreen


  • スタンバイ ページを開始し、Enter キーを押してメニュー ページに入ります
    ここに画像の説明を挿入
  • ウィジェット グラフ
    ここに画像の説明を挿入
    ここに画像の説明を挿入
1)アニメーション:
  • UI アニメーションを再生します。FadeLoop 呼吸光アニメーションがウィジェットに設定されています。デバッグ用のアニメーション コントロールを使用できます。
    ここに画像の説明を挿入
  • 再生するには、グラフに追加する必要があります。
    ここに画像の説明を挿入
2) 入力アクション: Enter キーを押して、対応する入力を提供します。

ここに画像の説明を挿入

  • Listen for Input Action は、UMG 用に準備された入力応答です。テスト用に InputAction Enter を使用して実装することもできますが、このノードはより多くの機能を提供します。Consume Bool 値は、Callback が有効かどうかを制御できます。
    次の応答 Enter が有効です
    ここに画像の説明を挿入
3) 親クラス: BaseWidget_AnimatedCanvas
  • この場合のすべての UI の入口と出口には単純なアニメーションがあるため、関数はこの親クラスに抽象化されます。Animate_Out と Animate_In の 2 つのアニメーションを含む
  • 呼び出し方:
    ここに画像の説明を挿入
  • このウィジェットを初めて作成するとき、同時に親クラスのコンストラクトを呼び出します
    ここに画像の説明を挿入
  • ページアウトの方法:
    ここに画像の説明を挿入
  • 親ノードの Remove Widget イベントを呼び出してから、Instance の Show Main Menu イベント、親ノードの Remove Widget イベントを呼び出します。
    ここに画像の説明を挿入
  • 最初に Animate Out アニメーションを再生し、アニメーションがイベント コールバックを完了した後、 親から
    削除 親ノードから削除: このウィジェットを UI レイヤーの親ノードから削除します。つまり、ページを削除します。
    Create Widget のオブジェクトは削除されず、Add to Viewport のみ表示されます。

4)親から削除を呼び出す:

Animation Finished には、バインド イベントをトリガーする "Remove from Parent"
ここに画像の説明を挿入
Call 呼び出しと呼ばれる Event Dispatchers イベントがあります。しかし、ここには Call に対応する Bind が見つからないため、効果がないように見えます。そのようなプログラムがあれば、Call に応答できます。
ここに画像の説明を挿入

5. メインページ Widget_MainMenu


  • メインメニューページ
    ここに画像の説明を挿入
1) テキスト バインディング ゲーム インスタンス データ
  • ページ Text は Bind を介してデータをバインドします。データは Game Instance -> GameInfo -> *、構造体 Struct_GameInfo から取得されます。
    ここに画像の説明を挿入ここに画像の説明を挿入ここに画像の説明を挿入
2) WidgeClass_Button ボタン クラス (プレハブ)
  • MainMenu のボタン、WidgeClass_Button クラスを使用
    ここに画像の説明を挿入ここに画像の説明を挿入

  • MainMenu で公開され、設定可能なボタン テキストと 2 つの色変数を作成します。
    ここに画像の説明を挿入
    ここに画像の説明を挿入

  • ボタン アニメーション、TextHover アニメーションの作成 (ズームイン)、Play Animation Forward と Reverse (ズームインとズームアウト) の再生、テキストの色の設定

  • デフォルト設定
    ここに画像の説明を挿入

  • アニメーション設定
    ここに画像の説明を挿入

イベント スケジューラを使用して Call On Click カスタム イベントをトリガーする
ここに画像の説明を挿入

  • それ以来、ボタンのテキストやその他の設定、アニメーション設定、およびプレス イベント インターフェイスが利用可能です。
3) クリック時にコール ボタン クリック コールバック
  • Widget_MainMenu グラフで、Game Instance 変数を作成し、Event を On Click にバインドします。
    ここに画像の説明を挿入
  • コールバック バインディング、ウィジェットの削除、およびゲーム インスタンスでの Show Singleplayer Menu イベントの実行
    ここに画像の説明を挿入

まとめ:UIはシンプルでロジックが使いやすいです、まずはここに来て、スムーズな開発をお願いします〜

おすすめ

転載: blog.csdn.net/qq_17523181/article/details/128679332