[Résolu] Détection URP
Publié : 21 Août 2022 21:34
Bonjour,
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 :
Je n'aime pas trop les comparaisons de string pour ce genre de test, mais cela fonctionne. Testé avec 2021.3.8 et URP 12.1.7
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 :
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);