j'ai eu besoin de savoir si le projet dans lequel se trouve un script utilise URP ou non, j'ai fini par trouver sur un forum anglophone :
Code : Tout sélectionner
// Teste si le projet utilise URP.
string renderPipeLineName = UnityEngine.Rendering.GraphicsSettings.renderPipelineAsset.GetType ().Name;
bool urp = renderPipeLineName == "UniversalRenderPipelineAsset";
Toutefois, la doc 2021.3 indique que GraphicsSettings.renderPipelineAsset est déprécié et qu'il faut utiliser GraphicsSettings.defaultRenderPipeline. Cette page est mieux documentée et propose un exemple assez complet.
Voici une version corrigée, sans comparaison de string :
Code : Tout sélectionner
// Détermine le type du RenderPipeLine courant.
System.Type RenderPipelineType = UnityEngine.Rendering.GraphicsSettings.defaultRenderPipeline.GetType ();
print ("Render Pipeline actuel --> " + RenderPipelineType.ToString ());
// Renvoie le type de l'URP.
System.Type URPType = typeof (UnityEngine.Rendering.Universal.UniversalRenderPipelineAsset);
print ("Type de l'URP : " + URPType);
// Enfin !
bool urp = RenderPipelineType.Equals (URPType);