レンダーテクスチャにレンダリングする
Universal Render Pipeline (ユニバーサルレンダーパイプライン、URP) では、カメラは画面または レンダーテクスチャ にレンダリングできます。デフォルトは画面へのレンダリングで、これが最も一般的なユースケースですが、レンダーテクスチャへのレンダリングでは監視カメラモニターなどの効果を作成できます。
レンダーテクスチャにレンダリングするカメラがある場合、そのレンダーテクスチャを画面にレンダリングするサブカメラが必要です。URP では、レンダーテクスチャにレンダリングするすべてのカメラは、画面にレンダリングするすべてのカメラの前にレンダリングループを実行します。これにより、レンダーテクスチャは画面にレンダリングできる状態になります。URP でのカメラのレンダリング順序の詳細については、レンダリング順序とオーバードロー を参照してください。
レンダーテクスチャにレンダリングした後、そのレンダーテクスチャを画面にレンダリング
Assets > Create > Render Texture を使用して、プロジェクトにレンダーテクスチャアセットを作成します。 シーンにクアッドを作成します。 プロジェクトでマテリアルを作成して、これを選択します。Inspector でレンダーテクスチャをマテリアルの Base Map フィールドにドラッグします。 シーンビューでマテリアルをクアッドにドラッグします。 シーンにカメラを作成します。Render Mode のデフォルトは Base であるため、カメラはベースカメラになります。 そのベースカメラを選択します。 Inspector で、Output セクションまでスクロールします。 カメラの Output Target を Texture に設定し、レンダーテクスチャを Texture フィールドにドラッグします。 シーンにもう 1 つカメラを作成します。Render Mode のデフォルトは Base であるため、カメラはベースカメラになります。 新しいベースカメラのビュー内にクアッドを配置します。
メインカメラが、そのビューをレンダーテクスチャにレンダリングします。サブカメラがレンダーテクスチャを含むシーンを画面にレンダリングします。
スクリプトでカメラの出力ターゲットを設定することもできます。これには、カメラの Universal Additional Camera Data コンポーネントの cameraOutput
プロパティを以下のように設定します。
myUniversalAdditionalCameraData.cameraOutput = CameraOutput.Texture;
myCamera.targetTexture = myRenderTexture;