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/"))
{
StandardShaderGUI.SetupMaterialWithBlendMode(material, (StandardShaderGUI.BlendMode)material.GetFloat("_Mode"));
}
else
{
StandardShaderGUI.BlendMode blendMode = StandardShaderGUI.BlendMode.Opaque;
if (oldShader.name.Contains("/Transparent/Cutout/"))
{
blendMode = StandardShaderGUI.BlendMode.Cutout;
}
else if (oldShader.name.Contains("/Transparent/"))
{
blendMode = StandardShaderGUI.BlendMode.Fade;
}
material.SetFloat("_Mode", (float)blendMode);
this.DetermineWorkflow(MaterialEditor.GetMaterialProperties(new Material[]
{
material
}));
StandardShaderGUI.MaterialChanged(material, this.m_WorkflowMode);
}
}