Example #1
0
        public override void AssignNewShaderToMaterial(Material material, Shader oldShader, Shader newShader)
        {
            if (m_Material != null)
            {
                if (material.HasProperty("_Emission") && material.HasProperty("_EmissionColor"))
                {
                    m_Material.SetColor("_EmissionColor", material.GetColor("_Emission"));
                }
                if (material.HasProperty("_MainTex"))
                {
                    m_Material.SetTexture("_BaseTex", material.GetTexture("_MainTex"));
                }
                if (material.HasProperty("_BaseTex"))
                {
                    m_Material.SetTexture("_MainTex", material.GetTexture("_BaseTex"));
                }
                if (material.HasProperty("_BumpMap"))
                {
                    m_Material.SetTexture("_PBSTex", material.GetTexture("_BumpMap"));
                }
            }

            base.AssignNewShaderToMaterial(material, oldShader, newShader);

            if (oldShader == null || !oldShader.name.Contains("Legacy Shaders/"))
            {
                ShaderAssets.SetupMaterialWithBlendMode(material, ShaderAssets.GetBlendMode(material));
                return;
            }

            MaterialChanged(material);
        }
Example #2
0
 protected void MaterialChanged(Material material)
 {
     ShaderAssets.SetupMaterialWithBlendMode(material, ShaderAssets.GetBlendMode(material), false);
     if (material.HasProperty("_DebugMode"))
     {
         SetupMaterialWithDebugMode(material, material.GetFloat("_DebugMode"));
     }
 }
Example #3
0
        protected void BlendModePopup(ref DrawPropertyContext context)
        {
            BlendMode blendMode = ShaderAssets.GetBlendMode(m_Material);

            EditorGUI.BeginChangeCheck();
            var mode = (BlendMode)EditorGUILayout.Popup(Styles.renderingMode, (int)blendMode, Styles.blendNames);

            if (EditorGUI.EndChangeCheck())
            {
                if (mode != blendMode)
                {
                    ShaderAssets.SetupMaterialWithBlendMode(m_Material, mode);
                }
            }
        }