【Unity】不透明度のシェーダーの表示順

エフェクトやアセットにアルファ(透明度)を設定したい場合、不透明度が有効なシェーダーを利用する場合があります。 この時に注意をして欲しいのが、不透明のオブジェクト同士の表示順です。

表示順番

シェーダーの表示順番は「 Queue」で設定ができます。 これはSubShaderでTagに定義済みのレンダーキューを指定します。 [c] Shader "Transparent Queue Example" { SubShader { Tags { "Queue" = "Transparent" } Pass { // rest of the shader body... } } } [/c]

定義済みのレンダーキューは以下の通りです。

  • Background - 1000
  • Geometry - 2000
  • AlphaTest - 2450
  • Transparent - 3000
  • Overlay - 4000

数字が大きいオブジェクトが優先されて表示されます。

マテリアルでの表示順番の設定

マテリアルの表示を「Debug」をすれば、マテリアルで表示順番を決定することができます。 「Custom Render Queue」で設定できます。

Shader20160417

注意点

このマテリアルの設定を「-1」にしておかないと、シェーダーで設定をしたレンダーキューが有効になりません。

Unity 5 実践シェーダプログラミング入門 [改訂第一版] Unity 5 実践シェーダプログラミング入門 [改訂第一版]