目次
はじめに
(本記事で紹介するツールは、ユニティ・テクノロジーズ・ジャパンの社員が個人的に開発・利用していたもので、この度Unityユーザーの皆さんにも自由にご利用いただけるよう無償公開したものです。ツールの使用許諾などはリポジトリのREADME、LICENSEテキストをお読みください。原則として公式サポートはございません)
RenderTextureCameraはUIやSpriteなどのレンダリング解像度はそのままに、3Dのレンダリング解像度のみを下げる事ができます。その為、見た目のクオリティを大きく下げる事無く、処理負荷を軽減することができます。
インストール
UnityエディタのメニューからWindow-> PackageManagerと選択し、Package Managerウィンドウを開きます。
ウィンドウの左上にある+のアイコンをクリックし、「Add package from git URL...」を選択します。

入力欄にhttps://github.com/katsumasa/RenderTextureCamera.gitと入力し、「Add」ボタンを押すとインストールが行われます。
実際に使ってみる
今回、以下の様な設定で使ってみるサンプルを作ります。
- UIは解像度が変更されない
- 3Dオブジェクトは解像度を下げる
まずはUIと3Dオブジェクトをシーンに配置して下さい。例えばこの様な感じに配置します。

カメラの準備
次にMain Cameraの子としてCameraを追加し、名前をSub Cameraに変更します。

Main CameraはUI以外をレンダリング、Sub CameraをUIのレンダリングを行わせたいのでその設定を行っていきます。
Main CameraのInspectorのCulling MaskでUI以外をチェックした状態にします。

Sub CameraではCulling Maskを逆にUIのみチェックした状態にします。また、Clear FlagsをDepth onlyに変更します。

現状、Audio ListenerがMain CameraとSub Cameraにそれぞれ付いているのでSub Cameraの方に付いてるAudio Listenerを削除します。
解像度を変更する設定を追加
Main Cameraに解像度を変更させる機能を追加します。Main CameraへRendr Texture Cameraを追加します。

InspectorでRender Texutre CameraにMain Camera、Blit CameraにSub Cameraを設定します。
Shitの項目でどの程度、解像度を落とすかの設定ができます。ここでは分かりやすい様に4に設定します。
ここまでの設定をするとこの様な状態になります。

これで準備は完了しました。解像度を下げる処理は実行時のみ行われます。早速、実行してみましょう。
この様に3Dオブジェクトのみ解像度が下がっていたら成功です。ここでは分かりやすい様にShiftに大きめの値を設定しました。しかし、実際に使用する場合には自分のゲームで許容可能な見た目となる値を設定して下さい。

例えばShiftの値を1にした場合にはこの様な見た目になります。

おわりに
簡単に描画負荷を低減させる事ができる「RenderTextureCamera」、よろしければ使ってみて下さい。