UnityEditor.StandardShaderGUI.AssignNewShaderToMaterial C# (CSharp) Method

AssignNewShaderToMaterial() public method

public AssignNewShaderToMaterial ( Material material, Shader oldShader, Shader newShader ) : void
material UnityEngine.Material
oldShader UnityEngine.Shader
newShader UnityEngine.Shader
return void
        public override void AssignNewShaderToMaterial(Material material, Shader oldShader, Shader newShader)
        {
            if (material.HasProperty("_Emission"))
            {
                material.SetColor("_EmissionColor", material.GetColor("_Emission"));
            }
            base.AssignNewShaderToMaterial(material, oldShader, newShader);
            if ((oldShader == null) || !oldShader.name.Contains("Legacy Shaders/"))
            {
                SetupMaterialWithBlendMode(material, (BlendMode) ((int) material.GetFloat("_Mode")));
            }
            else
            {
                BlendMode opaque = BlendMode.Opaque;
                if (oldShader.name.Contains("/Transparent/Cutout/"))
                {
                    opaque = BlendMode.Cutout;
                }
                else if (oldShader.name.Contains("/Transparent/"))
                {
                    opaque = BlendMode.Fade;
                }
                material.SetFloat("_Mode", (float) opaque);
                Material[] mats = new Material[] { material };
                this.DetermineWorkflow(MaterialEditor.GetMaterialProperties(mats));
                MaterialChanged(material, this.m_WorkflowMode);
            }
        }