j'ai souhaité vérifier que les caméras d'une scène avaient bien la case Post Processing cochée (dans la section Renderer). En l'absence de propriété identifiée, j'ai cherché sur les forums anglophones et la solution était dans la classe UniversalAdditionalCameraData (le mystérieux script ajouté par Unity à chaque caméra d'un projet avec URP).
Code : Tout sélectionner
// Liste les caméras de la scène.
Camera[] camerasArray= Component.FindObjectsOfType<Camera> ();
// Teste si le projet utilise URP (voir un de mes posts précédents).
Type RenderPipelineType = GraphicsSettings.defaultRenderPipeline.GetType ();
Type URPType = typeof (UniversalRenderPipelineAsset);
bool urp = RenderPipelineType.Equals (URPType);
RenderPipelineAsset currentRP = GraphicsSettings.defaultRenderPipeline;
print ("currentRenderPipeline : " + GraphicsSettings.currentRenderPipeline.name);
foreach (Camera camera in camerasArray)
{
camera.targetDisplay = 0;
if (urp)
{
UniversalAdditionalCameraData cameraData = camera.GetUniversalAdditionalCameraData ();
cameraData.renderPostProcessing = true;
}
}