[Résolu] Détection URP

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
Avatar de l’utilisateur
jmhoubre
Messages : 856
Inscription : 05 Oct 2019 22:05

[Résolu] Détection URP

Message par jmhoubre » 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 :

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

Avatar de l’utilisateur
DevAmat
Messages : 435
Inscription : 23 Nov 2016 11:50

Re: [Résolu] Détection URP

Message par DevAmat » 25 Août 2022 09:12

Merci pour le partage :super: .

Répondre

Revenir vers « Scripting »