{"id":4599,"date":"2021-10-11T00:45:12","date_gmt":"2021-10-10T22:45:12","guid":{"rendered":"https:\/\/www.unicoda.com\/?p=4599"},"modified":"2021-10-11T22:39:31","modified_gmt":"2021-10-11T20:39:31","slug":"unity-reolsution-dun-probleme-daffichage-entre-deux-objets-possedant-des-shaders-transparents","status":"publish","type":"post","link":"https:\/\/www.unicoda.com\/?p=4599","title":{"rendered":"Unity : R\u00e9solution d&rsquo;un probl\u00e8me d&rsquo;affichage entre deux objets poss\u00e9dant des shaders transparents"},"content":{"rendered":"\n<p>J&rsquo;ai r\u00e9alis\u00e9 aujourd&rsquo;hui quelques correctifs sur mon jeu Bulldozer sortie sur Android l&rsquo;an dernier, dont la correction d\u2019un probl\u00e8me d\u2019affichage sur les scores affich\u00e9s quand le Bulldozer se d\u00e9place, mais uniquement si le score est affich\u00e9 au-dessus de la mer.<\/p>\n\n\n\n<p>Le probl\u00e8me survient entre la mer et les objets de type TextMeshPro que j\u2019utilise pour afficher le texte des scores.<\/p>\n\n\n\n<p>Constatation<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>La mer a son propre shader que j\u2019ai r\u00e9cup\u00e9r\u00e9 dans un asset.<\/li><li>L\u2019objet TextMeshPro utilise une police d\u2019\u00e9criture sous forme d\u2019image et son shader sert \u00e0 d\u00e9finir la fa\u00e7on de rendre la police.<\/li><\/ul>\n\n\n\n<p>Pour les deux shaders, celui de la mer et celui de la police d&rsquo;\u00e9criture, il y a utilisation du canal alpha. Le canal alpha c\u2019est le canal qui est utilis\u00e9 pour g\u00e9rer la transparence. Le canal alpha n\u2019est pas utilis\u00e9 dans les shaders utilis\u00e9s les cases, les bulldozers ou les arbres. Or j\u2019ai des probl\u00e8mes d\u2019affichage uniquement entre la mer et le texte des scores.<\/p>\n\n\n\n<p>Cet \u00e9l\u00e9ment apr\u00e8s de longue recherche m\u2019a fait trouver qu\u2019il y avait des probl\u00e8mes d\u2019affichages de ce type lorsque deux shaders utilisant la transparence sont param\u00e9tr\u00e9s sur la m\u00eame renderQueue.<\/p>\n\n\n\n<p>La renderQueue selon la documentation unity c\u2019est ce qui d\u00e9termine dans quel ordre les objets sont rendus. Dans mon cas les deux \u00e9taient param\u00e9tr\u00e9s sur 3000. En modifiant la valeur de la renderQueue de 3000 \u00e0 3000-1 soit 2999 pour le shader de mer j\u2019ai r\u00e9solu le &nbsp; probl\u00e8me et mes objets s\u2019affichent dans le bon ordre sans se marcher dessus l\u2019un et l\u2019autre.<\/p>\n\n\n\n<p>En conclusion si vous avez des probl\u00e8mes d&rsquo;affichage entre deux objets qui utilisent la transparence alors v\u00e9rifiez et modifiez la valeur de la renderQueue en fonction de l\u2019objet que vous souhaitez voir afficher au-dessus de l\u2019autre.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Unity : Correction Probl\u00e8me d&#039;Affichage entre Mer et TextMeshPro (Transparence)\" width=\"840\" height=\"473\" src=\"https:\/\/www.youtube.com\/embed\/_e6C7hNXOfw?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p><a href=\"https:\/\/play.google.com\/store\/apps\/dev?id=5017315401834215599&amp;hl=fr&amp;gl=US\">T\u00e9l\u00e9charger le jeu Bulldozer pour Android<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>J&rsquo;ai r\u00e9alis\u00e9 aujourd&rsquo;hui quelques correctifs sur mon jeu Bulldozer sortie sur Android l&rsquo;an dernier, dont la correction d\u2019un probl\u00e8me d\u2019affichage sur les scores affich\u00e9s quand le Bulldozer se d\u00e9place, mais uniquement si le score est affich\u00e9 au-dessus de la mer. Le probl\u00e8me survient entre la mer et les objets de type TextMeshPro que j\u2019utilise pour &hellip; <a href=\"https:\/\/www.unicoda.com\/?p=4599\" class=\"more-link\">Continuer la lecture<span class=\"screen-reader-text\"> de &laquo;&nbsp;Unity : R\u00e9solution d&rsquo;un probl\u00e8me d&rsquo;affichage entre deux objets poss\u00e9dant des shaders transparents&nbsp;&raquo;<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[289],"tags":[339,340,211],"class_list":["post-4599","post","type-post","status-publish","format-standard","hentry","category-unity3d","tag-unity","tag-unity3d","tag-videos"],"_links":{"self":[{"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/posts\/4599","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4599"}],"version-history":[{"count":2,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/posts\/4599\/revisions"}],"predecessor-version":[{"id":4606,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/posts\/4599\/revisions\/4606"}],"wp:attachment":[{"href":"https:\/\/www.unicoda.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4599"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4599"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4599"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}