質問: Unityにてカメラ二台を使用した別視点での設定を行っているのですが、一つのCanvasを二つのカメラに反映させたいです。 ターゲットディスプレイの選択数を増やせば映せるのではと考えたのですが、方法が分かりません。 以上、反映方法か他の解決策のご教示よろしくお願いいたします。 Canvas設定 RenderModeはScene Space-Overlayで設定しています。
回答: CameraのTargetDisplayを使用してマルチディスプレイ対応しているとの想定で回答します。 どちらも割と面倒臭そうですが参考までにどうぞ。 ### UI用カメラを別途用意する案 「カメラ1の上にUI用カメラ1の映像を重ねる」「カメラ2の上にUI用カメラ2の映像を重ねる」「UI用カメラはそれぞれ同じCanvasを映す」という方式。 Canvasが1つで済む代わりに、CanvasScalerのUI Scale Modeが使えなくなります。 * Canvas RenderModeをWorldに。GameObjectのLayer指定を「UI」に。位置と大きさはお好みで。 * 従来のCamera CullingMaskで「UI」のチェックを外す。 * UI用Camera 必要なディスプレイの数だけ新規作成。TargetDisplayをそれぞれ指定。ClearFlagsをDepthOnlyに、CullingMaskの「UI」だけチェックを入れて他は外す、Depthを従来のカメラのDepthより大きくする。Canvasが映るように位置を調整。 ### Canvasを複製する案 「Canvasをプレハブにして起動時に複製」「それぞれのCanvasを別のディスプレイへ映す」という方式。 オブジェクトが2つになる分、負荷は上がりますがCanvasScalerのUI Scale Modeが使えます。 * Canvas プレハブ化しておく。複製時にTargetDisplayを切り替える。