1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- using UnityEngine;
- using UnityEditor;
-
- public class LuxURPCustomSingleSidedShaderGUI : ShaderGUI
- {
- public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] properties)
- {
- base.OnGUI(materialEditor, properties);
- Material material = materialEditor.target as Material;
- // Old signature
- if (material.HasProperty("_Culling")) {
- var _Culling = ShaderGUI.FindProperty("_Culling", properties);
- if(_Culling.floatValue == 0.0f) {
- if (material.doubleSidedGI == false) {
- Debug.Log ("Double Sided Global Illumination enabled.");
- }
- material.doubleSidedGI = true;
- }
- }
- // Handle both cases
- if (material.HasProperty("_Cull")) {
- var _Cull = ShaderGUI.FindProperty("_Cull", properties);
- if(_Cull.floatValue == 0.0f) {
- if (material.doubleSidedGI == false) {
- Debug.Log ("Double Sided Global Illumination enabled.");
- }
- material.doubleSidedGI = true;
- }
- }
- if (material.HasProperty("_AlphaClip")) {
- var _AlphaClip = ShaderGUI.FindProperty("_AlphaClip", properties);
- if(_AlphaClip.floatValue == 1.0f) {
- material.renderQueue = (int)UnityEngine.Rendering.RenderQueue.AlphaTest;
- material.SetOverrideTag("RenderType", "TransparentCutout");
- }
- else {
- material.renderQueue = (int)UnityEngine.Rendering.RenderQueue.Geometry;
- material.SetOverrideTag("RenderType", "Opaque");
- // In case alpha testing is disabled we also want to disable alpha to coverage.
- if(material.HasProperty("_Coverage")) {
- material.SetFloat("_Coverage", 0.0f);
- }
- }
- }
- //material.renderQueue = (int)UnityEngine.Rendering.RenderQueue.AlphaTest;
- //material.SetOverrideTag("RenderType", "TransparentCutout");
- // Needed to make the Selection Outline work
- if (material.HasProperty("_MainTex") && material.HasProperty("_BaseMap") ) {
- if (material.GetTexture("_BaseMap") != null) {
- material.SetTexture("_MainTex", material.GetTexture("_BaseMap"));
- }
- }
- }
- }
|