コード例 #1
0
        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>");
        }
コード例 #2
0
        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;
            }
        }