コントローラー(1)

1. コントローラーとは何ですか?

        名前が示すように、コントローラーはコントローラーです。これは、ゲーム内のプレーヤーのプロキシ オブジェクトであり、プレーヤーとゲーム内のキャラクターまたは AI の間の対話のブリッジです。そのタスクは、キャラクターまたは AI のすべての動作を制御することです。コントローラーは手のひらの上でキャラクターやAIと遊んでいるとも言えます。

        コントローラーはアクターから派生しているため、もちろんアクターの基本属性 Tansform を持ち、コントローラーにゲーム レベルに存在する能力を与えます。コントローラーには、ルート クラス UObject に実装されるシリアル化機能があり、ネットワーク コピーがあります。オンラインゲームでは、サーバーにネットワークコピーすることができます。

        ゲーム レベルでは、通常、コントローラーは表示されません。あれ、Actor なのにゲームレベルでは見えないのはなぜでしょうか?Controller.cpp ファイルのソース コードを調べたところ、以下に示すように、コンストラクターで SetHidden(true) がデフォルトで初期化されていることがわかりました。

もしそうなら、なぜデフォルトで非表示にする必要があるのか​​と疑問に思うかもしれません。              

ん~o(* ̄▽ ̄*)o いい質問ですね…。

                ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​        

        アクター自体には形状や色がなく、アクターの白いボールのアイコンはエディター モードでのみ表示されます。ゲームモードでは形や色は表示されません。その機能は仲介です。私たちが気にするのはその機能だけであり、見た目ではありません。(プログラムには古いシングルもあり、じっとしていられませんでした。まあ、私の要求は高くありません。見た目は気にしません、プレイできる限り。)それからトイレに行き、足と足のしびれを感じて戻ってきました)。

        ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​                

        とりあえず、見ても意味がないので隠しておきましょう。

2. ライフサイクル

        コントローラーはレベル内に存在できるということは、コントローラーはレベルのメンバーであり、そのライフサイクルはレベルで始まり、レベルで終わるということですか? 答えは「いいえ」です。コントローラーはレベル内に存在しますが、レベルに属していません。

        UE の世界観の記事で、世界は複数のレベルで構成されていると述べました。これは、コントローラーがレベルが存在するかどうかを気にしないことを示しています。World に属し、そのアイデンティティは Level に相当します。

        したがって、Controller の存在は必ずしも Level に関係するものではなく、Level を越えて存在し、Level 内および Level 間のロジックに随時介入する部外者です。

3. なぜこのように設計されているのでしょうか?また、UE コア フレームワークでどのような役割を果たしますか?

        Unreal Engine を設計する際の Epic の当初のアイデアは、MVC (モデル-ビュー-コントローラー) アーキテクチャ パターンに基づいていました。コントローラーは、データ層モデルとプレゼンテーション ビューを分離して、設計パターンの単一機能原則に沿った分離された論理処理を実装します。これにより、開発者はエンジンのソース コードを読むときにより体系的になり、エンジン アーキテクトの当初の設計意図を理解しやすくなります。

        コントローラーは、アンリアル エンジンのソース コードのコア フレームワークで最も重要なクラスの 1 つであり、ゲーム内でのプレーヤーのエージェントであり、プレーヤーの操作をゲーム キャラクターまたは AI に送信する役割を果たします (たとえば、プレーヤーはキーボードを操作します)また、キャラクターのアクションをゲーム キャラクターまたは AI に転送し、AI の情報とステータスをプレーヤーにフィードバックする役割も担います (たとえば、ゲーム キャラクターが負傷した場合、ゲーム コントローラーが振動します)。

4. コントローラークラスのプロパティ。

        

おすすめ

転載: blog.csdn.net/zhang1461376499/article/details/118112450