【Unity】【シェーダ】RenderQueueやRenderTypeをスクリプトから変更する

RenderQueueやRenderTypeをシェーダの外側から、つまりスクリプトから変更する方法です。

Unity2018.2

RenderQueueを変更する

スクリプトからRenderQueueを変更するにはMaterial.renderQueueを書き換えます。

// RenderQueueを書き換える
material.renderQueue            = (int)RenderQueue.Transparent;

これにより、Custom Render Queueの値が書き換わります。

f:id:halya_11:20181106211037p:plain
↑ DebugモードでMaterialのInspectorを見た図です。

Materialにこれが設定されていると、シェーダのRenderQueueよりもこちらが優先されます。

RenderTypeを変更する

RenderTypeを変更するにはMaterial.SetOverrideTagを使います。

// RenderTypeを書き換える
material.SetOverrideTag("RenderType", "Transparent");

これにより、String Tag Mapが書き換わります。

f:id:halya_11:20181106211526p:plain
↑ DebugモードでMaterialのInspectorを見た図です。

Materialにこれが設定されていると、シェーダのRenderTypeよりもこちらが優先されます。