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); }
protected void MaterialChanged(Material material) { ShaderAssets.SetupMaterialWithBlendMode(material, ShaderAssets.GetBlendMode(material), false); if (material.HasProperty("_DebugMode")) { SetupMaterialWithDebugMode(material, material.GetFloat("_DebugMode")); } }
private void RefreshMat() { if (genMat != null) { ShaderAssets.DefaultRefeshMat(genMat); genMat = null; } }
private void GenMat() { if (genMat != null) { ShaderAssets.DefaultMat(genMat); genMat = null; } }
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); } } }
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(); } }