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
 private void RefreshMat()
 {
     if (genMat != null)
     {
         ShaderAssets.DefaultRefeshMat(genMat);
         genMat = null;
     }
 }
Example #4
0
 private void GenMat()
 {
     if (genMat != null)
     {
         ShaderAssets.DefaultMat(genMat);
         genMat = null;
     }
 }
Example #5
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);
                }
            }
        }
Example #6
0
        static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths)
        {
            TableAssets.tableNames = "";
            bool deal       = false;
            bool dealShader = false;

            if (importedAssets != null)
            {
                for (int i = 0; i < importedAssets.Length; ++i)
                {
                    string path = importedAssets[i];
                    if (TableAssets.IsTable(path))
                    {
                        TableAssets.tableNames += TableAssets.GetTableName(path);
                    }
                    else if (ShaderAssets.IsHLSLorCGINC(path))
                    {
                        dealShader = true;
                    }
                }
                if (dealShader)
                {
                    ShaderAssets.ReImportShader();
                    deal = true;
                }
                if (TableAssets.tableNames != "")
                {
                    TableAssets.ExeTable2Bytes(TableAssets.tableNames);
                    deal = true;
                }
            }
            for (int i = 0; i < deletedAssets.Length; ++i)
            {
                string path = deletedAssets[i];
                if (TableAssets.IsTable(path))
                {
                    deal |= TableAssets.DeleteTable(path);
                }
            }
            if (deal)
            {
                AssetDatabase.Refresh();
            }
        }