【Unity】マルチ解像度対応

作成者注: 使用されている Unity バージョンは 2021.3LTS ですが、他のバージョンとの類似点と相違点がある可能性があります。あくまで参考としてご利用ください
I.はじめに。
この記事は、Unity エンジンの使用方法を学習している著者の業界、教育、研究に関するメモです。公式ドキュメントUnityユーザーマニュアル2021.3(LTS)/ユーザーインターフェース(UI)の作成/Unity UI/UIの操作方法/マルチ解像度向けに設計されたUI関連部分をベースに、私の経験と合わせて不備な点もありますが、修正をお願いします。
二つ目はガイドです。
1. 最新のゲームは通常、さまざまなサイズの電子デバイスに適応するために、さまざまな画面解像度をサポートする必要があります。そのため、UIシステムを設計する際には、公式がさまざまなツールを提供しています。これらのツールを組み合わせることで、多重解像度適応の目的を達成できます。
2. スクリーン (Screen)
3. キャンバス (Canvas)
4. Rect Transform (Rect Transform)
3. スクリーン (Screen)。
1. この静的クラスは、開発者に表示情報へのアクセスを提供します。現在のデバイスでサポートされている画面解像度のリストを提供し、現在の解像度を切り替え、システム マウス ポイントの表示/非表示やその他の機能を実行できます。
2.画面の静的プロパティ。
3-2-1

[autorotateToLandscapeLeft]: 自動的に横向きに回転し、画面がホーム ボタンの左側に表示されます (つまり、ホーム ボタンが右側にあります)。
[autorotateToLandscapeRight]: 自動的に横向きに回転し、画面がホーム ボタンの右側に表示されます (つまり、ホーム ボタンが左側にあります)。
[autorotateToPortrait]: 自動的に縦向きに回転します。
[autorotateToPortraitUpsideDown]: 自動的に縦向きに回転し、上下に反転します。[明るさ]: 現在の画面の明るさ。
[currentResolution]: 現在の画面解像度 (読み取り専用)。[カットアウト]: 画面上のカットアウト (カメラなど) のリストを返します (Android)。
[dpi]: 画面の現在の DPI (読み取り専用)、1 インチあたりの DPI (ドット数/インチ) ピクセルを返します。一般に、DPI が大きいほど、画面の品質は向上します。
[フルスクリーン]: フルスクリーンに設定するかどうか。
[fullScreenMode]: 全画面に設定されているモードは次のどれですか: (ExclusiveFullScreen/FullScreenWindow/MaximizedWindow/Windowed)
[height]: 画面ウィンドウの現在の高さ。
[mainWindowDisplayInfo] : メインウィンドウの表示情報。
[mainWindowPosition]: 画面の左上隅と比較したメイン ウィンドウの左上隅の位置。
[orientation]: 画面の論理的な方向を指定します。
[解像度]: モニターでサポートされているすべてのフルスクリーン解像度を返します。
[safeArea]: 画面の安全領域。
[sleepTimeout]: ユーザーの操作がなければ一定時間経過するとスリープします。
[幅]: 画面ウィンドウの現在の幅。

3. 画面静的メソッド。
[GetDisplayLayout]: 現在のディスプレイのレイアウト情報を取得します。名前、解像度、リフレッシュ レートなど。
[MoveMainWindowTo]: メイン ウィンドウを画面の左上隅を基準とした位置に移動します。非同期操作。
[SetResolution]:解像度を切り替えます。
上記は Screen の静的クラスであり、コード内で関連情報を取得および設定するために使用できます
4. Canvas
1. Canvas コンポーネントは、UI レイアウトのための抽象空間です。すべての UI 要素は、キャンバス コンポーネントがアタッチされるゲーム オブジェクトの子である必要があります。UI要素オブジェクトを作成する際、シーン内にキャンバス(Canvas)オブジェクトが存在しない場合は自動的に作成されます。
2. 同時に複数のキャンバスを使用でき、キャンバスのネストを使用できます。
3. キャンバスコンポーネントのプロパティパネル。
4-3-3
[レンダリング モード]: スクリーン スペース - オーバーレイ、スクリーン スペース - カメラ、ワールド スペースを含むキャンバス レンダリング モード。異なるモードには異なるパラメータ構成があり、異なるアプリケーション シナリオに適しています。
4. Canvas Scaler (Canvas Scaler)
4-4-4
このコンポーネントは、キャンバスのサイズとピクセル密度を制御できます。
5. キャンバス グループ (Canvas Group) は
、不透明度、入力を受け入れるかどうか、レイ キャスティングをブロックするかどうか、親キャンバス グループの影響を無視するかどうかなど、UI 要素全体の特定の側面を一元的に制御できます。
6. Canvas Renderer は、
キャンバスに含まれるグラフィカル UI オブジェクトをレンダリングするために使用されます。
上記はキャンバスに関連するコンポーネントと機能であり、状況に応じて使用戦略を調整できます。
5. Rect Transform
1. このコンポーネントは、すべての UI 上の Transform コンポーネントをノード オブジェクトに置き換えるために使用されます。
2. 従来の変形の位置、回転、拡大縮小に加えて。また、長方形の寸法を指定する幅と高さもあります。
3. ピボットは Unity の独自の概念であり、Cocos エンジンの [アンカー ポイント] に似ています。つまり、すべての変換 (回転、拡大縮小、サイズ) はこの点を中心に行われます。
4. アンカー グループ (Anchors) アンカー ポイントの役割は、主に親四角形の変形にノードを固定するために使用されます。UI ノードの解像度適応戦略を設定するためにアンカー プリセットと一緒に使用されます。(アンカー ポイントはノード上の 4 つの小さな三角形です)
ここに画像の説明を挿入

Cocos エンジンとの違いは、Cocos は親ノードと子ノードのアンカー ポイントの相対位置を直接使用して、2 つの間の相対関係を「表現」することです。Unity は、ピボット ポイントという 2 つの属性セットに分割するのと似ています。そしてアンカーポイント。他の変換パラメータの変更はピボット ポイントの周囲で行われ、親ノードとの関係はアンカー ポイント グループによって固定されます。この点は区別する必要があります。

5. アンカー プリセット (Anchor Preset) このコンポーネントは、ノードのプロパティ パネル (RectTransform コンポーネント パーツ) に表示されます。
クリックした後、適切なデフォルトのオプションを選択できます。
ここに画像の説明を挿入

固定寸法を生成します: ポイントをまとめて固定します。
ノード サイズは親ノードの変換に応じて拡張されます。アンカー ポイントは分離されます。

注: Shift キーを同時に押すと、アンカー ポイントの設定中に軸が変更され、Alt キーを押すと、アンカー ポイントの設定中に位置が変更されます。
6. その他のレイアウトコンポーネント。
Layout レイアウト関連コンポーネント、コンテンツ サイズ アダプター (ContentSizeFilter) コンポーネントなど。これらはすべて、開発者がより合理的かつ便利にレイアウトするのに役立ちます。

6. 適応戦略。
上記の部分を理解すると、適応問題に対処するための出発点が得られます。
1. 解像度を切り替えます。解像度を切り替える必要がある場合は、この関連インターフェイスを呼び出すことができます。
2. 固定解像度デザインの場合は、1 をスキップして、キャンバスのレンダリング モードを検討できます。

スクリーン スペース - オーバーレイ (UI はシーンの上のレンダリングされた画面に配置されます)
スクリーン スペース - カメラ (キャンバスは指定された UI カメラから指定された距離に配置されます。カメラの設定は UI の外観に影響します。一般に、 UI システムはこのキャンバス モードに適しています)
ワールド スペース (キャンバスはシーン内の他のオブジェクトと同じように動作します。シーン上で擬似 3D または UI インタラクション オプションを実行するのに非常に便利です。この種の UI には別の名前もあります) 3. キャンバスを調整した後、四角形
変形を使用できます。 コンポーネントは、UI インターフェイス上で親子ノードを配置するために使用されます。具体的な使用方法については前述した通りである。

以上が従来のマルチ解像度化の手順と考え方である
。 7. 特殊形状スクリーン化。
解像度適応を行う場合、特殊な形状の画面に適応するという問題が避けられません。特に前髪やスマートアイランドなどのデザインは今人気が高まっています。
特殊な形状の画面への対応はビジネスデザインにも関係します。ここで著者が与えた設計とアイデアは、設定システムに特殊な形状の画面適応用のスライド バーを追加し、非安全領域の位置とサイズを取得し、必要な UI の最大範囲と最小範囲を移動することです。適応されること。
5. 上記はUnity の多重解像度適応に関する部分です。さらに詳しく知りたい場合は、公式 Web サイトのドキュメントにアクセスし、[UI 操作方法] の記事を直接見つけることをお勧めします。アイデアがある場合は、著者と話し合うこともできます。
ゲーム開発交流グループ

おすすめ

転載: blog.csdn.net/weixin_36760331/article/details/128724289