Cameraに設定されたRendererをスクリプトから変更する
2020/01/09 19:07 | 公開 |
確認したUnityのバージョン
2019.3.0f1(β版)
UniversalRPからカメラにRendererを設定できるようになりました。
しかしCameraクラスにはRendererを設定するような項目はありません。
ではどうやってRendererを変更するのかというと
UniversalAdditionalCameraData.SetRenderer
という関数を使用します。
実はUniversalRPではCameraを追加すると一緒にUniversalAdditionalCameraData
というコンポーネントがついてきます。
この中にSetRenderer
という関数があるので、その関数を使用することでScriptからRendererを変更できます。
// UniversalAdditionalCameraDataを使用するには
// using UnityEngine.Rendering.Universal;が必要
var cameraData = camera.GetComponent<UniversalAdditionalCameraData>();
cameraData.SetRenderer(rendererIndex); // Rendererのindexを指定する
SetRenderer
の引数はRendererのindexです。
手元で試したところ
0 <= index && index < 登録されているRendererの数-1
正常に設定される登録されているRendererの数 <= index
警告が出され続ける(その間デフォルトのRendererが使われる)index == -1
デフォルトが設定されるindex <= -2
例外が発生
が確認できました