Page 1 sur 1

[Résolu] Détection URP

Publié : 21 Août 2022 21:34
par jmhoubre
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 :

Code : Tout sélectionner

// Teste si le projet utilise URP.
string renderPipeLineName = UnityEngine.Rendering.GraphicsSettings.renderPipelineAsset.GetType ().Name;
bool urp = renderPipeLineName == "UniversalRenderPipelineAsset";
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 :

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);

Re: [Résolu] Détection URP

Publié : 25 Août 2022 09:12
par DevAmat
Merci pour le partage :super: .