Bonsoir,
je bloque sur un truc qui doit être enfantin, et pour lequel je n'ai trouvé qu'une réponse bien compliquée ici.
J'ai un bête GameObject avec un material standard et shader standard. Je souhaite passer son Rendering Mode de Opaque à Transparent via un script, afin de le faire progressivement disparaître avant de le détruire.
Merci d'avance.
[RESOLU] Accès au Rendering Mode d'un Material par script
Re: [RESOLU] Accès au Rendering Mode d'un Material par script
J'ai fini par trouver un truc que j'ai adapté un peu, je l'ai mis dans une fonction que j'applique à mes materials :
Je ne comprend pas trop certaines lignes (pourquoi renderQueue = 3000 et pas une autre valeur), mais cela fonctionne.
Code : Tout sélectionner
private void MaterialToTransparent(Material _material) {
_material.SetFloat ("_Mode" , 2);
_material.SetInt ("_SrcBlend" , (int) UnityEngine.Rendering.BlendMode.SrcAlpha);
_material.SetInt ("_DstBlend" , (int) UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha);
_material.SetInt ("_ZWrite" , 0);
_material.DisableKeyword ("_ALPHATEST_ON");
_material.DisableKeyword ("_ALPHABLEND_ON");
_material.EnableKeyword ("_ALPHAPREMULTIPLY_ON");
_material.renderQueue = 3000;
}
- boubouk50
- ModoGenereux
- Messages : 6222
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: [RESOLU] Accès au Rendering Mode d'un Material par script
Le renderQueue définit l'ordre de rendu des éléments: BackGround (1000), Opaque (2000), AlphaTest (2450), Blending (3000) et Overlay (4000 de mémoire). Tu peux donc situer ton shader dans ces plages de rendus pour le tri.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation