예제 #1
0
        protected override void OnHeaderGUI()
        {
            if (ScriptAsset == null || drawHeaderMethod == null)
            {
                return;
            }

            var headerRect = (Rect)drawHeaderMethod.Invoke(null, new object[] { this, ScriptAsset.name + (ScriptView.ScriptModified ? "*" : string.Empty) });

            using (new EditorGUI.DisabledScope(!ScriptView.ScriptModified))
            {
                var applyButtonRect = new Rect(new Vector2(headerRect.xMax - 98, headerRect.yMax - 26), new Vector2(48, 25));
                if (GUI.Button(applyButtonRect, "Apply", EditorStyles.miniButton))
                {
                    GUI.FocusControl(null);
                    ApplyAndImportChecked();
                }
                var revertButtonRect = new Rect(new Vector2(headerRect.xMax - 150, headerRect.yMax - 26), new Vector2(50, 25));
                if (GUI.Button(revertButtonRect, "Revert", EditorStyles.miniButton))
                {
                    GUI.FocusControl(null);
                    ResetValues();
                    if (ScriptAsset && VisualEditor != null)
                    {
                        VisualEditor.GenerateForScript(scriptText, ScriptAsset, true);
                    }
                }
            }
        }
예제 #2
0
        private void HandleScriptModified(string assetPath)
        {
            var curPath = AssetDatabase.GetAssetPath(ScriptAsset);

            if (curPath != assetPath)
            {
                return;
            }

            ScriptAsset = AssetDatabase.LoadAssetAtPath <Script>(assetPath);
            scriptText  = File.ReadAllText(AssetDatabase.GetAssetPath(ScriptAsset));
            VisualEditor.GenerateForScript(scriptText, ScriptAsset);
        }