Canvas レンダリング モードの詳細な分析

PHPz
リリース: 2024-01-17 09:32:13
オリジナル
885 人が閲覧しました

Canvas レンダリング モードの詳細な分析

Canvas の renderMode の詳細な説明には特定のコード例が必要です

Unity では、Canvas は 2D UI を実装するための最も基本的かつ重要なコンポーネントです。 Canvas には、レンダリング プロセス中に、スクリーン スペースとワールド スペースという 2 つの異なるモードがあります。これらのレンダリング モードは特定の状況により適しており、プロジェクトのニーズに基づいて異なるモードを選択する必要があります。この記事では、Canvas の 2 つのレンダリング モードとその使用方法に焦点を当てます。

  1. スクリーン スペース

スクリーン スペースは Canvas の最も基本的なレンダリング モードで、画面に直接レンダリングし、画面上に UI 要素を描画します。シーン内のオブジェクトが移動または回転すると、UI 要素の位置は対応する変化に追従できません。したがって、このモードは、ゲームのメイン メニュー、設定などの固定 UI インターフェイスに最適です。

1.1 オーバーレイ モード

オーバーレイ モードはスクリーン スペースのレンダリング モードです。このモードの UI 要素はシーン内の独立したレイヤーにあり、シーン内の UI 要素とは関連しません。 . 他の 3D オブジェクトと対話します。カメラが移動すると、この UI 要素のレイヤーは常に前面に表示されます。オーバーレイ モードでは、キャンバスのレンダリング順序は、階層パネル内のキャンバス コンポーネントのレベルによって決まります。

以下はサンプル コードです:

public Canvas overlayCanvas;

void Start()
{
    overlayCanvas.sortingOrder = 10;
}
ログイン後にコピー

この例では、キャンバス コンポーネントの sortOrder プロパティを設定することによって、レンダリング キュー内のこのキャンバスの位置を決定します。

1.2 カメラ モード

カメラ モードは、スクリーン スペースのもう 1 つの一般的なレンダリング モードです。カメラ モードでは、UI 要素は独立したカメラ オブジェクトにバインドされ、カメラは画面全体をレンダリングするのではなく、UI キャンバスに関連するオブジェクトのみをレンダリングします。このレンダリング モードは通常、カメラ エフェクトやオクルージョンが必要な場合に使用されます。

以下はサンプル コードです:

public Canvas cameraCanvas;

void Start()
{
    Camera camera = GetComponent<Camera>();
    camera.targetDisplay = 1;
    cameraCanvas.worldCamera = camera;
}
ログイン後にコピー

この例では、シーン内に独立したカメラを作成して設定し、そのカメラ オブジェクトを Canvas の worldCamera プロパティに割り当てます。 UI 要素は、このカメラを通して表示される領域のみをレンダリングします。

  1. ワールド空間

ワールド空間モードは、3D 空間レンダリングに基づくもう 1 つの Canvas レンダリング モードです。スクリーン スペース モードと比較して、ワールド スペース モードでは、シーン内のオブジェクトの移動や回転に応じて UI 要素が変化し、シーン内の他の 3D オブジェクトと相互作用できます。この場合、シーン UI は一般的にシーンの構築中に使用される傾向があります。

2.1 オーバーレイ モード

オーバーレイ モードは、ワールド空間での使用もサポートしています。スクリーン スペース オーバーレイと比較すると、ワールド スペース オーバーレイでは、キャンバスと UI 要素がシーン オブジェクトと同じ 3D 空間にあり、UI 要素は画面が配置されている平面上にレンダリングされます。

以下はサンプル コードです:

public Canvas worldCanvas;

void Start()
{
    worldCanvas.renderMode = RenderMode.WorldSpace;
    worldCanvas.transform.position = new Vector3(0f, 0f, 10f);
}
ログイン後にコピー

この例では、Canvas コンポーネントのレンダリング モードを WorldSpace に設定して、シーン内のオブジェクトに合わせて UI 要素を変更します。

2.2 カメラ モード

カメラ モードはワールド スペース モードにも適用でき、場合によっては、カメラ モードを使用するとパフォーマンスを大幅に最適化できます。カメラ モードでは、UI 要素はキャンバスにバインドされたカメラの表示領域にのみレンダリングされます。この比較的複雑な設定方法により、カメラ モードは、カメラ アクション、シーンの切り替えなど、3D シーン UDP での大規模な UI 操作に非常に適しています。

以下はサンプル コードです:

public Canvas worldCanvas;
public Camera canvasCamera;

void Start()
{
    worldCanvas.renderMode = RenderMode.WorldSpace;
    worldCanvas.worldCamera = canvasCamera;
}
ログイン後にコピー

この例では、Canvas のレンダリング モードを WorldSpace に設定し、Canvas の worldCamera をバインドされたカメラ: UI インタラクションとシーン 3D 操作の機会。

概要

上記の説明を通じて、Canvas にはスクリーン スペースとワールド スペースの 2 つのレンダリング モードがあり、各モードはオーバーレイとカメラの 2 つの異なるレンダリング モードをサポートしていることがわかります。特定のモードでレンダリング モードを選択する方法は、アプリケーションのシーン要件によって異なります。この記事を通じて、皆さんが Unity での Canvas の使い方をより詳しく理解していただければ幸いです。

以上がCanvas レンダリング モードの詳細な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート