Unity通過程式碼修改Standard shader的rendering mode
阿新 • • 發佈:2018-11-02
材質編輯器上只有一個選項:
通過程式碼修改的話,需要知道那幾個選項對應的渲染引數。unity的著色器擴充套件資源裡是有Standard著色器的材質球GUI程式碼的,可以直接參考這裡:
動態改變StandardShader的RenderingMode讓模型透明
知道這些了就很好辦了,注意除了switch-case裡的程式碼外,還要設定_Modle引數。例如改為半透明模式的程式碼如下,基本上直接拷過來就行:
Material m = new Material(Shader.Find("Standard")); m.SetFloat("_Mode", 3); m.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.SrcAlpha); m.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha); m.SetInt("_ZWrite", 0); m.DisableKeyword("_ALPHATEST_ON"); m.EnableKeyword("_ALPHABLEND_ON"); m.DisableKeyword("_ALPHAPREMULTIPLY_ON"); m.renderQueue = 3000;