public static void Backup(Func <MonoScript, ScriptableObject> onCreateScript) { if (_instance == null) { _instance = ScriptableObject.CreateInstance <AddScriptWindow>(); } _instance.CreateScriptDelegate = onCreateScript; if (AddScriptWindowBackup.Instance.addAsset) { var script = AssetDatabase.LoadAssetAtPath <MonoScript>(AddScriptWindowBackup.Instance.scriptPath); var instance = _instance.CreateScriptDelegate(script); if (instance) { EditScript(instance); AddScriptWindowBackup.Instance.Reset(); } } }
public static void Show(Rect position, Type elementType, Func <MonoScript, ScriptableObject> onCreateScript, Func <MonoScript, bool> onFilerScript, string template) { if (_instance == null) { _instance = CreateInstance <AddScriptWindow>(); } var hasAssetToAdd = HasAssetToAdd(); EditorGUI.BeginDisabledGroup(hasAssetToAdd); if (GUI.Button(position, $"Add {ObjectNames.NicifyVariableName(elementType.Name)}", Styles.addButtonStyle)) { _instance.elementType = elementType; _instance.Init(position, onCreateScript, onFilerScript, template); _instance.Repaint(); } EditorGUI.EndDisabledGroup(); if (hasAssetToAdd) { Backup(onCreateScript); } }