void ReconvertAll() { Debug.LogFormat("<color=blue>Reconvert started.\n------------------------------</color>"); var generators = Utils.FindAllAssets <Generator>(); foreach (var generator in generators) { try { if (target == generator) { Debug.LogFormat("<color=green>{0}</color>", GetShaderPath()); OnTemplateChanged(); ExportShaderWithErrorCheck(); } else { var editor = Editor.CreateEditor(generator) as GeneratorEditor; Debug.LogFormat("<color=green>{0}</color>", editor.GetShaderPath()); editor.CheckShaderUpdate(); editor.OnTemplateChanged(); editor.ExportShaderWithErrorCheck(); } } catch (System.Exception e) { Debug.LogFormat("<color=red>Error: " + e.Message + "</color>"); } } Debug.LogFormat("<color=blue>------------------------------\nReconvert finished.</color>"); }
override public void OnGUI( UnityEditor.MaterialEditor materialEditor, MaterialProperty[] properties) { if (!cachedEditor_) { var material = materialEditor.target as Material; var shader = material.shader; var generators = Utils.FindAllAssets <Generator>(); Generator targetGenerator = null; foreach (var generator in generators) { if (generator.shaderReference == shader) { targetGenerator = generator; break; } } if (targetGenerator) { cachedEditor_ = Editor.CreateEditor(targetGenerator); } } if (cachedEditor_) { cachedEditor_.OnInspectorGUI(); EditorGUILayout.Space(); } folded_ = Utils.Foldout("Material Properties", folded_); if (folded_) { ++EditorGUI.indentLevel; base.OnGUI(materialEditor, properties); --EditorGUI.indentLevel; } }