1
This commit is contained in:
@@ -135,7 +135,7 @@ namespace XED.RuntimeGizmo
|
||||
RTUndoRedo.Get.Undo();
|
||||
onTransformChanged?.Invoke(transformObjects);
|
||||
});
|
||||
CommandManager.I.AddCommand(command);
|
||||
CommandManager.instance.AddCommand(command);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -88,7 +88,7 @@ namespace XED.Asset
|
||||
siblingIndex.Add(searchAsset.hierarchyItem.GetSiblingIndex());
|
||||
}
|
||||
var command = new RemoveObjectCommand(removeList, siblingIndex, this);
|
||||
CommandManager.I.ExecuteCommand(command);
|
||||
CommandManager.instance.ExecuteCommand(command);
|
||||
}
|
||||
|
||||
private void OnCopyObject(List<CustomAssetRenderObject> objects)
|
||||
@@ -108,7 +108,7 @@ namespace XED.Asset
|
||||
connectedAssets.Add(copyAsset);
|
||||
}
|
||||
var command = new CopyObjectCommand(copySources, copyList, this);
|
||||
CommandManager.I.ExecuteCommand(command);
|
||||
CommandManager.instance.ExecuteCommand(command);
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
@@ -175,7 +175,7 @@ namespace XED.Asset
|
||||
};
|
||||
connectedAsset.renderObject.onTransformChanged = connectedAsset.assetData.OnTransformDataChanged;
|
||||
var command = new CreateConnectedAssetCommand(connectedAsset, this);
|
||||
CommandManager.I.ExecuteCommand(command);
|
||||
CommandManager.instance.ExecuteCommand(command);
|
||||
}
|
||||
public void OnParentChanged(HierarchyItem parentItem, HierarchyItem childItem)
|
||||
{
|
||||
|
||||
@@ -293,7 +293,7 @@ namespace XED.Util
|
||||
ActionCommand command = new ActionCommand(
|
||||
() => Align(objectsToAlign, primary, primaryDir, secondaryDir),
|
||||
() => UndoAlign(objectsToAlign, originalPos));
|
||||
CommandManager.I.ExecuteCommand(command);
|
||||
CommandManager.instance.ExecuteCommand(command);
|
||||
}
|
||||
|
||||
|
||||
@@ -401,7 +401,7 @@ namespace XED.Util
|
||||
{
|
||||
fromObject.transform.position -= dir[0];
|
||||
});
|
||||
CommandManager.I.ExecuteCommand(command);
|
||||
CommandManager.instance.ExecuteCommand(command);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
8
Assets/Scripts/Studio/Core.meta
Normal file
8
Assets/Scripts/Studio/Core.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: eefa95bccca3b324db3ce4c6b1d4ee44
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -5,7 +5,7 @@ namespace XED.Core
|
||||
{
|
||||
public abstract class UnitySingleton<T> : UnityEngine.MonoBehaviour where T : UnitySingleton<T>
|
||||
{
|
||||
private static T instance;
|
||||
private static T _instance;
|
||||
private static object _lock = new object();
|
||||
protected static bool applicationIsQuitting = false;
|
||||
public static bool IsApplicationQuitting
|
||||
@@ -16,7 +16,7 @@ namespace XED.Core
|
||||
}
|
||||
}
|
||||
|
||||
public static T I
|
||||
public static T instance
|
||||
{
|
||||
get
|
||||
{
|
||||
@@ -30,19 +30,19 @@ namespace XED.Core
|
||||
|
||||
lock (_lock)
|
||||
{
|
||||
if (instance == null)
|
||||
if (_instance == null)
|
||||
{
|
||||
instance = FindFirstObjectByType(typeof(T)) as T;
|
||||
if (instance == null)
|
||||
_instance = FindFirstObjectByType(typeof(T)) as T;
|
||||
if (_instance == null)
|
||||
{
|
||||
GameObject singleton = new GameObject(typeof(T).Name);
|
||||
instance = singleton.AddComponent<T>();
|
||||
instance.Init();
|
||||
instance.name = typeof(T).ToString();
|
||||
DontDestroyOnLoad(instance.gameObject);
|
||||
_instance = singleton.AddComponent<T>();
|
||||
_instance.Init();
|
||||
_instance.name = typeof(T).ToString();
|
||||
DontDestroyOnLoad(_instance.gameObject);
|
||||
}
|
||||
}
|
||||
return instance;
|
||||
return _instance;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -51,12 +51,12 @@ namespace XED.Core
|
||||
{
|
||||
lock (_lock)
|
||||
{
|
||||
if (instance == null)
|
||||
if (_instance == null)
|
||||
{
|
||||
instance = this as T;
|
||||
_instance = this as T;
|
||||
|
||||
}
|
||||
else if (instance != this)
|
||||
else if (_instance != this)
|
||||
{
|
||||
Debug.LogError(this.name + " Destroy !!!");
|
||||
Destroy(this.gameObject);
|
||||
@@ -77,29 +77,4 @@ namespace XED.Core
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
public abstract class ISingleton<T> where T : class, new()
|
||||
{
|
||||
static volatile T instance = default(T);
|
||||
static readonly object padlock = new object();
|
||||
protected ISingleton()
|
||||
{
|
||||
}
|
||||
public static T I
|
||||
{
|
||||
get
|
||||
{
|
||||
lock (padlock)
|
||||
{
|
||||
if (instance == null)
|
||||
{
|
||||
instance = new T();
|
||||
(instance as ISingleton<T>).Init();
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
}
|
||||
}
|
||||
public virtual void Init() { }
|
||||
}
|
||||
}
|
||||
24
Assets/Scripts/Studio/Managers/CommandInvoker.cs
Normal file
24
Assets/Scripts/Studio/Managers/CommandInvoker.cs
Normal file
@@ -0,0 +1,24 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace XED.Command
|
||||
{
|
||||
public class CommandInvoker
|
||||
{
|
||||
public Stack<ICommand> commandStack = new Stack<ICommand>();
|
||||
public void Invoke<T>(T command) where T : IReversibleCommand
|
||||
{
|
||||
command.Execute();
|
||||
commandStack.Push(command);
|
||||
}
|
||||
|
||||
public void Undo()
|
||||
{
|
||||
if (commandStack.Count == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
var command = commandStack.Pop();
|
||||
(command as IReversibleCommand) .Undo();
|
||||
}
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/Studio/Managers/CommandInvoker.cs.meta
Normal file
2
Assets/Scripts/Studio/Managers/CommandInvoker.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 460b7535dba2a4347a78cc24adcdee96
|
||||
@@ -78,10 +78,11 @@ namespace XED.Manage
|
||||
//Panel_ShortCut
|
||||
canvas_static.panel_shortcuts.onClickOpenAssetWindow += (() => assetWindow.SetActive(!assetWindow.activeSelf));
|
||||
canvas_static.panel_shortcuts.onClickOpenComponentWindow += (() => componentWindow.SetActive(!componentWindow.activeSelf));
|
||||
canvas_static.panel_shortcuts.onClickUndo += CommandManager.I.Undo;
|
||||
canvas_static.panel_shortcuts.onClickRedo += CommandManager.I.Redo;
|
||||
canvas_static.panel_shortcuts.onClickUndo += CommandManager.instance.Undo;
|
||||
canvas_static.panel_shortcuts.onClickRedo += CommandManager.instance.Redo;
|
||||
canvas_static.panel_shortcuts.onclickSave += projectManager.SaveProject;
|
||||
|
||||
|
||||
//Panel Header
|
||||
canvas_static.panel_topbar.onClickSaveProject += projectManager.SaveProject;
|
||||
canvas_static.panel_topbar.onClickLoadProject += projectManager.LoadProject;
|
||||
@@ -131,7 +132,7 @@ namespace XED.Manage
|
||||
|
||||
void DefaultActionSetting()
|
||||
{
|
||||
var commandHandler = CommandManager.I.GetInputHandler();
|
||||
var commandHandler = CommandManager.instance.GetInputHandler();
|
||||
userInputManager.SetHandler(GetDefaultInputHandler());
|
||||
userInputManager.SetHandler(commandHandler);
|
||||
canvas_static.panel_modecontrol.onClickObjectMode += () => statusPanel.SetMode(ModePanel.ProgramMode.ObjectLayout);
|
||||
|
||||
@@ -105,7 +105,7 @@ namespace XED.Manage
|
||||
onRestoreHierarchy?.Invoke(parent, child);
|
||||
}
|
||||
}
|
||||
CommandManager.I.Clear();
|
||||
CommandManager.instance.Clear();
|
||||
}
|
||||
|
||||
public void NewProject()
|
||||
@@ -115,7 +115,7 @@ namespace XED.Manage
|
||||
curProjectPath = string.Empty;
|
||||
curSceneData = null;
|
||||
connector.connectedAssets.Clear();
|
||||
CommandManager.I.Clear();
|
||||
CommandManager.instance.Clear();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
18
Assets/Scripts/Studio/Managers/SystemMain.cs
Normal file
18
Assets/Scripts/Studio/Managers/SystemMain.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
using XED.Command;
|
||||
|
||||
namespace XED.Core
|
||||
{
|
||||
public class SystemMain : UnitySingleton<SystemMain>
|
||||
{
|
||||
public CommandInvoker commandInvoker
|
||||
{
|
||||
get;
|
||||
private set;
|
||||
}
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
commandInvoker = new CommandInvoker();
|
||||
}
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/Studio/Managers/SystemMain.cs.meta
Normal file
2
Assets/Scripts/Studio/Managers/SystemMain.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2778cc56cc78c8a46846112e3aad69d2
|
||||
@@ -189,7 +189,7 @@ namespace XED.UI
|
||||
}
|
||||
onTransformChanged?.Invoke(transformsChanged);
|
||||
});
|
||||
CommandManager.I.AddCommand(command);
|
||||
CommandManager.instance.AddCommand(command);
|
||||
}
|
||||
void ChangeTransformValue(Transform t, InputFieldType type, float v)
|
||||
{
|
||||
|
||||
@@ -363,7 +363,7 @@ namespace XED.HierarchyTree
|
||||
oldParent.AddChild(selectedItem, oldIndex);
|
||||
ResetData();
|
||||
});
|
||||
CommandManager.I.ExecuteCommand(command);
|
||||
CommandManager.instance.ExecuteCommand(command);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -386,7 +386,7 @@ namespace XED.HierarchyTree
|
||||
oldParent.AddChild(srcItem, oldIndex);
|
||||
ResetData();
|
||||
});
|
||||
CommandManager.I.ExecuteCommand(command);
|
||||
CommandManager.instance.ExecuteCommand(command);
|
||||
}
|
||||
}
|
||||
public void SetToNextSiblingItem(HierarchyItem srcItem, HierarchyItem destItem)
|
||||
@@ -416,7 +416,7 @@ namespace XED.HierarchyTree
|
||||
oldParent.AddChild(selectedItem, oldIndex);
|
||||
ResetData();
|
||||
});
|
||||
CommandManager.I.ExecuteCommand(command);
|
||||
CommandManager.instance.ExecuteCommand(command);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -439,7 +439,7 @@ namespace XED.HierarchyTree
|
||||
oldParent.AddChild(srcItem, oldIndex);
|
||||
ResetData();
|
||||
});
|
||||
CommandManager.I.ExecuteCommand(command);
|
||||
CommandManager.instance.ExecuteCommand(command);
|
||||
}
|
||||
}
|
||||
public void SetToPriorSiblingItem(HierarchyItem srcItem, HierarchyItem destItem)
|
||||
@@ -469,7 +469,7 @@ namespace XED.HierarchyTree
|
||||
oldParent.AddChild(selectedItem, oldIndex);
|
||||
ResetData();
|
||||
});
|
||||
CommandManager.I.ExecuteCommand(command);
|
||||
CommandManager.instance.ExecuteCommand(command);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -492,7 +492,7 @@ namespace XED.HierarchyTree
|
||||
oldParent.AddChild(srcItem, oldIndex);
|
||||
ResetData();
|
||||
});
|
||||
CommandManager.I.ExecuteCommand(command);
|
||||
CommandManager.instance.ExecuteCommand(command);
|
||||
}
|
||||
}
|
||||
public void SearchData(string name)
|
||||
|
||||
Reference in New Issue
Block a user