Unity URP カメラの概要
序文
使用URP后,相机组件的面板发生了变化,如下图。接下来简单的介绍下URP下的相机使用
1.レンダータイプ
RenderType には、Base と Overlay の 2 つのオプションがあります。以下に示すように
1.1 オーバーレイ
オーバーレイ カメラを単独で表示できず、ゲーム ウィンドウが黒く見える場合がある
1.2 ベース
Base タイプのカメラを個別に表示することができ、RenderType モードを Base に変更すると、Game ウィンドウが表示されることがわかります
1.3 ベースカメラにオーバーレイを追加
前述したように、Overlay カメラは単体では表示できないので、Overlay カメラの映像を表示する方法を説明します。答えは、ベース カメラのスタックに追加することです。
Camera1 をベースとして設定し、Camera2 をオーバーレイとして設定し、次に Camera2 を Camera1 のスタックに設定します。両方のカメラの画像が表示されます。画像で直接見るとわかりやすいですね
1.3.1 コードによる追加
コードを通じてオーバーレイ カメラをベース カメラのスタックに追加することも非常に一般的な操作です。次にコードの追加を見てみましょう
//把UI相机设置为Overlay
uiCamera.GetUniversalAdditionalCameraData().renderType = CameraRenderType.Overlay;
//把UI相机添加到Scene相机上
sceneCamera.GetUniversalAdditionalCameraData().cameraStack.Add(uiCamera);
1.4 複数のBaseカメラが混在する状況
複数の Base カメラがある場合はどうなりますか。答えは表示優先度が最も高いものです。
両方のカメラを Base に設定し、Camera1 の優先順位を -1 に、Camera2 の優先順位を 0 に設定すると、
Camera2 の画像のみが表示されることがわかります。
1.5 ViewPort Rectによる分割画面の実現
前述したように、Base カメラが複数存在する場合は、最も優先度の高い Base カメラのみが表示されます。それを示す方法はありますか。また、Viewport Rect を調整することで 2 台のカメラの分割画面表示を実現することも可能です。
画面の左半分に Camera1 ( x = 0, y= 0, w = 0.5, h =1) が表示されます。 右に
Camera2 ( x = 0.5, y= 0, w = 0.5, h =1) が表示されます。画面の半分
2台のカメラが一緒に表示されていることがわかります。