فهرست منبع

将对象事件从game类中单独提取出来
重构行为树……

tanghai 8 سال پیش
والد
کامیت
dd36779408
50فایلهای تغییر یافته به همراه189 افزوده شده و 308 حذف شده
  1. 1 1
      Unity/Assets/Editor/BehaviorTreeEditor/BTBatchOperation.cs
  2. 0 0
      Unity/Assets/Editor/BehaviorTreeEditor/BTBatchOperation.cs.meta
  3. 1 1
      Unity/Assets/Editor/BehaviorTreeEditor/BTDesignerUtility.cs
  4. 0 0
      Unity/Assets/Editor/BehaviorTreeEditor/BTDesignerUtility.cs.meta
  5. 7 7
      Unity/Assets/Editor/BehaviorTreeEditor/BTEditorWindow.cs
  6. 0 0
      Unity/Assets/Editor/BehaviorTreeEditor/BTEditorWindow.cs.meta
  7. 11 14
      Unity/Assets/Editor/BehaviorTreeEditor/BTEntity.cs
  8. 0 0
      Unity/Assets/Editor/BehaviorTreeEditor/BTEntity.cs.meta
  9. 3 3
      Unity/Assets/Editor/BehaviorTreeEditor/BehaviorNodeData.cs
  10. 1 1
      Unity/Assets/Editor/BehaviorTreeEditor/BehaviorTreeConfigEditor.cs
  11. 2 2
      Unity/Assets/Editor/BehaviorTreeEditor/BehaviorTreeConfigExtension.cs
  12. 5 5
      Unity/Assets/Editor/BehaviorTreeEditor/BehaviorTreeNodeClassPopup.cs
  13. 1 1
      Unity/Assets/Editor/BehaviorTreeEditor/BehaviorTreeTipsHelper.cs
  14. 0 33
      Unity/Assets/Editor/BehaviorTreeEditor/BehaviorTreeToolWindow.cs
  15. 0 12
      Unity/Assets/Editor/BehaviorTreeEditor/BehaviorTreeToolWindow.cs.meta
  16. 1 1
      Unity/Assets/Editor/BehaviorTreeEditor/Component/BTDebugComponent.cs
  17. 0 0
      Unity/Assets/Editor/BehaviorTreeEditor/Component/BTDebugComponent.cs.meta
  18. 2 2
      Unity/Assets/Editor/BehaviorTreeEditor/Event/BehaviorTreeAfterChangeNodeTypeEvent_SelectNode.cs
  19. 1 1
      Unity/Assets/Editor/BehaviorTreeEditor/Event/BehaviorTreeClickNodeEvent_SelectNode.cs
  20. 1 1
      Unity/Assets/Editor/BehaviorTreeEditor/Event/BehaviorTreeConnectStateEvent_HandleConnectLines.cs
  21. 1 1
      Unity/Assets/Editor/BehaviorTreeEditor/Event/BehaviorTreeCreateNodeEvent_SelectNode.cs
  22. 1 1
      Unity/Assets/Editor/BehaviorTreeEditor/Event/BehaviorTreeMouseInNodeEvent_HandleOperate.cs
  23. 1 1
      Unity/Assets/Editor/BehaviorTreeEditor/Event/BehaviorTreeNewCreateClickEvent_CreateNode.cs
  24. 2 2
      Unity/Assets/Editor/BehaviorTreeEditor/Event/BehaviorTreeOpenEditorEvent_SelectNode.cs
  25. 1 1
      Unity/Assets/Editor/BehaviorTreeEditor/Event/BehaviorTreeOpenEditorEvent_SelectTree.cs
  26. 1 1
      Unity/Assets/Editor/BehaviorTreeEditor/Event/BehaviorTreeOpenEditorEvent_UpdatePropList.cs
  27. 1 1
      Unity/Assets/Editor/BehaviorTreeEditor/Event/BehaviorTreeReplaceClickEvent_ReplaceNode.cs
  28. 1 1
      Unity/Assets/Editor/BehaviorTreeEditor/Event/BehaviorTreeRightDesignerDragEvent_ModifyRightBorder.cs
  29. 5 5
      Unity/Assets/Editor/BehaviorTreeEditor/Event/BehaviorTreeRunTreeEvent_ShowDebugInfo.cs
  30. 36 36
      Unity/Assets/Editor/BehaviorTreeEditor/GraphDesigner.cs
  31. 13 13
      Unity/Assets/Editor/BehaviorTreeEditor/NodeDesigner.cs
  32. 5 5
      Unity/Assets/Editor/BehaviorTreeEditor/NodeExtension.cs
  33. 0 4
      Unity/Assets/Editor/BehaviorTreeEditor/NodeMeta.cs
  34. 7 5
      Unity/Assets/Editor/BehaviorTreeEditor/NodeMetaHelper.cs
  35. 17 17
      Unity/Assets/Editor/BehaviorTreeEditor/PropertyDesigner.cs
  36. 3 3
      Unity/Assets/Editor/EditorInit.cs
  37. 1 1
      Unity/Assets/Editor/ILRuntimeEditor/ILRuntimeEditor.cs
  38. 1 5
      Unity/Assets/Editor/ObjectManagerToolsEditor/ObjectManagerToolsWindow.cs
  39. 1 1
      Unity/Assets/Scripts/Component/BehaviorTreeComponent.cs
  40. 1 1
      Unity/Assets/Scripts/Component/ConfigComponent.cs
  41. 1 1
      Unity/Assets/Scripts/Component/UIComponent.cs
  42. 8 84
      Unity/Assets/Scripts/Entity/Game.cs
  43. 4 4
      Unity/Assets/Scripts/Helper/DllHelper.cs
  44. 6 6
      Unity/Assets/Scripts/Init.cs
  45. 4 4
      Unity/Assets/Scripts/Object/Component.cs
  46. 0 4
      Unity/Assets/Scripts/Object/Disposer.cs
  47. 10 10
      Unity/Assets/Scripts/Object/Entity.cs
  48. 18 3
      Unity/Assets/Scripts/Object/ObjectEvents.cs
  49. 0 0
      Unity/Assets/Scripts/Object/ObjectEvents.cs.meta
  50. 2 2
      Unity/Assets/Scripts/Other/ILMethod.cs

+ 1 - 1
Unity/Assets/Editor/BehaviorTreeEditor/BehaviorBatchOperation.cs → Unity/Assets/Editor/BehaviorTreeEditor/BTBatchOperation.cs

@@ -7,7 +7,7 @@ using UnityEditor;
 
 namespace MyEditor
 {
-	public class BehaviorBatchOperation
+	public class BTBatchOperation
 	{
 		public delegate void ExcuteTreeOperate(BehaviorTreeConfig treeConfig, string treePath);
 

+ 0 - 0
Unity/Assets/Editor/BehaviorTreeEditor/BehaviorBatchOperation.cs.meta → Unity/Assets/Editor/BehaviorTreeEditor/BTBatchOperation.cs.meta


+ 1 - 1
Unity/Assets/Editor/BehaviorTreeEditor/BehaviorDesignerUtility.cs → Unity/Assets/Editor/BehaviorTreeEditor/BTDesignerUtility.cs

@@ -5,7 +5,7 @@ using UnityEngine;
 
 namespace MyEditor
 {
-	public static class BehaviorDesignerUtility
+	public static class BTDesignerUtility
 	{
 		private static readonly string ImagePathName = "Assets/Editor/BehaviorTreeEditor/Pic/";
 

+ 0 - 0
Unity/Assets/Editor/BehaviorTreeEditor/BehaviorDesignerUtility.cs.meta → Unity/Assets/Editor/BehaviorTreeEditor/BTDesignerUtility.cs.meta


+ 7 - 7
Unity/Assets/Editor/BehaviorTreeEditor/BehaviorDesignerWindow.cs → Unity/Assets/Editor/BehaviorTreeEditor/BTEditorWindow.cs

@@ -15,18 +15,18 @@ namespace MyEditor
 		public string msg;
 	}
 
-	public class BehaviorDesignerWindow: EditorWindow
+	public class BTEditorWindow: EditorWindow
 	{
 		private PropertyDesigner propDesigner;
 		private BehaviorTreeNodeClassPopup popUpMenu;
 
 		public GraphDesigner GraphDesigner { get; private set; }
 
-		public static BehaviorDesignerWindow Instance
+		public static BTEditorWindow Instance
 		{
 			get
 			{
-				return GetWindow<BehaviorDesignerWindow>(false, "行为树编辑器");
+				return GetWindow<BTEditorWindow>(false, "行为树编辑器");
 			}
 		}
 
@@ -34,7 +34,7 @@ namespace MyEditor
 
 		public static void ShowWindow()
 		{
-			BehaviorDesignerWindow target = GetWindow<BehaviorDesignerWindow>("行为树编辑器", false);
+			BTEditorWindow target = GetWindow<BTEditorWindow>("行为树编辑器", false);
 			target.minSize = new Vector2(600f, 500f);
 		}
 
@@ -95,11 +95,11 @@ namespace MyEditor
 				case EventType.KeyUp:
 					if (e.keyCode == KeyCode.Escape || (e.keyCode == KeyCode.S && e.control))
 					{
-						BehaviorManager.Instance.SaveAll();
+						BTEntity.Instance.SaveAll();
 					}
 					else if (e.keyCode == KeyCode.F4)
 					{
-						BehaviorManager.Instance.SaveAll();
+						BTEntity.Instance.SaveAll();
 					}
 					break;
 				case EventType.MouseDown:
@@ -109,7 +109,7 @@ namespace MyEditor
 
 		public void OnDestroy()
 		{
-			BehaviorManager.Instance.Clear();
+			BTEntity.Reset();
 		}
 
 		public void onUpdatePropList(params object[] list)

+ 0 - 0
Unity/Assets/Editor/BehaviorTreeEditor/BehaviorDesignerWindow.cs.meta → Unity/Assets/Editor/BehaviorTreeEditor/BTEditorWindow.cs.meta


+ 11 - 14
Unity/Assets/Editor/BehaviorTreeEditor/BehaviorManager.cs → Unity/Assets/Editor/BehaviorTreeEditor/BTEntity.cs

@@ -11,9 +11,9 @@ using Object = UnityEngine.Object;
 
 namespace MyEditor
 {
-	public class BehaviorManager: Entity
+	public class BTEntity: Entity
 	{
-		private static BehaviorManager instance;
+		private static BTEntity instance;
 
 		public const int NodeIdStartIndex = 100000;
 		private int AutoID = NodeIdStartIndex;
@@ -35,15 +35,17 @@ namespace MyEditor
 			}
 		}
 
-		public static BehaviorManager Instance
+		public static BTEntity Instance
 		{
 			get
 			{
-				if (instance == null)
+				if (instance != null)
 				{
-					instance = new BehaviorManager();
-					instance.AddComponent<BehaviorTreeDebugComponent>();
+					return instance;
 				}
+
+				instance = new BTEntity();
+				instance.AddComponent<BTDebugComponent>();
 				return instance;
 			}
 		}
@@ -141,7 +143,7 @@ namespace MyEditor
 			{
 				List<string> canInputList = GetCanInPutEnvKeyList(this.NodeProtoToBehaviorNodeData(nodeProto), desc);
 				string value = nodeProto.Args.Get(desc.name)?.ToString();
-				List<string> resultList = canInputList.FindAll(str => { return str == value; });
+				List<string> resultList = canInputList.FindAll(str => str == value);
 				if (resultList.Count == 0)
 				{
 					Log.Error($"{nodeProto.Name}节点(id:{nodeProto.Id})的{value}输入值非法!");
@@ -190,7 +192,7 @@ namespace MyEditor
 		
 		public void RemoveUnusedArgs(NodeProto nodeProto)
 		{
-			NodeMeta proto = BehaviorManager.Instance.GetNodeMeta(nodeProto.Name);
+			NodeMeta proto = BTEntity.Instance.GetNodeMeta(nodeProto.Name);
 			List<string> unUsedList = new List<string>();
 			foreach (KeyValuePair<string, object> item in nodeProto.Args.Dict())
 			{
@@ -420,7 +422,7 @@ namespace MyEditor
 			selectNodeName = "";
 			CurTreeGO = go;
 			NewLoadData();
-			BehaviorDesignerWindow.ShowWindow();
+			BTEditorWindow.ShowWindow();
 			Game.Scene.GetComponent<EventComponent>().Run(EventIdType.BehaviorTreeOpenEditor);
 		}
 
@@ -608,10 +610,5 @@ namespace MyEditor
 			}
 			return null;
 		}
-
-		public void Clear()
-		{
-			instance = null;
-		}
 	}
 }

+ 0 - 0
Unity/Assets/Editor/BehaviorTreeEditor/BehaviorManager.cs.meta → Unity/Assets/Editor/BehaviorTreeEditor/BTEntity.cs.meta


+ 3 - 3
Unity/Assets/Editor/BehaviorTreeEditor/BehaviorNodeData.cs

@@ -53,10 +53,10 @@ namespace MyEditor
 		public BehaviorNodeData(string proto_name)
 		{
 			this.Name = proto_name;
-			this.Proto = BehaviorManager.Instance.GetNodeMeta(proto_name);
+			this.Proto = BTEntity.Instance.GetNodeMeta(proto_name);
 			if (this.Proto == null)
 			{
-				this.Proto = BehaviorManager.Instance.GetNodeMeta("Unknow");
+				this.Proto = BTEntity.Instance.GetNodeMeta("Unknow");
 				return;
 			}
 			this.Classify = this.Proto.classify;
@@ -108,7 +108,7 @@ namespace MyEditor
 
 		public void ResetId()
 		{
-			this.Id = BehaviorManager.Instance.AutoNodeId();
+			this.Id = BTEntity.Instance.AutoNodeId();
 			foreach (BehaviorNodeData child in children)
 			{
 				child.ResetId();

+ 1 - 1
Unity/Assets/Editor/BehaviorTreeEditor/BehaviorTreeConfigEditor.cs

@@ -14,7 +14,7 @@ namespace MyEditor
 
 			if (GUILayout.Button("打开行为树"))
 			{
-				BehaviorManager.Instance.OpenBehaviorEditor(config.gameObject);
+				BTEntity.Instance.OpenBehaviorEditor(config.gameObject);
 			}
 			EditorUtility.SetDirty(config);
 		}

+ 2 - 2
Unity/Assets/Editor/BehaviorTreeEditor/BehaviorTreeConfigExtension.cs

@@ -11,7 +11,7 @@ namespace Model
 		{
 			BehaviorNodeConfig go = treeConfig.CreateNodeConfig(rootName);
 			treeConfig.RootNodeConfig = go.GetComponent<BehaviorNodeConfig>();
-			treeConfig.RootNodeConfig.id = BehaviorManager.NodeIdStartIndex;
+			treeConfig.RootNodeConfig.id = BTEntity.NodeIdStartIndex;
 			go.gameObject.name = rootName;
 			return go;
 		}
@@ -33,7 +33,7 @@ namespace Model
 
 		private static BehaviorNodeConfig CreateNodeConfig(this BehaviorTreeConfig treeConfig, string name)
 		{
-			NodeMeta proto = BehaviorManager.Instance.GetNodeMeta(name);
+			NodeMeta proto = BTEntity.Instance.GetNodeMeta(name);
 			GameObject go = new GameObject();
 			go.name = name;
 			go.transform.parent = treeConfig.gameObject.transform;

+ 5 - 5
Unity/Assets/Editor/BehaviorTreeEditor/BehaviorTreeNodeClassPopup.cs

@@ -68,7 +68,7 @@ namespace MyEditor
 
 			foreach (string name in nodeNameList)
 			{
-				NodeMeta proto = BehaviorManager.Instance.GetNodeMeta(name);
+				NodeMeta proto = BTEntity.Instance.GetNodeMeta(name);
 				if (GUILayout.Button(name + $"({proto.describe})", GetButtonStyle()))
 				{
 					if (SubWinType.CreateNode == mSubWinType)
@@ -79,7 +79,7 @@ namespace MyEditor
 					{
 						GraphDesigner.onChangeNodeType(name, Vector2.zero);
 					}
-					BehaviorDesignerWindow.Instance.CloseSubWin();
+					BTEditorWindow.Instance.CloseSubWin();
 				}
 			}
 
@@ -109,7 +109,7 @@ namespace MyEditor
 				selectType = Enum.GetName(typeof(NodeClassifyType), mEnumNodeTypeSelection - 1);
 				foreach (string name in list)
 				{
-					NodeMeta proto = BehaviorManager.Instance.GetNodeMeta(name);
+					NodeMeta proto = BTEntity.Instance.GetNodeMeta(name);
 					if (selectType == proto.classify)
 					{
 						result1.Add(name);
@@ -125,7 +125,7 @@ namespace MyEditor
 			List<string> result2 = new List<string>();
 			foreach (string name in result1)
 			{
-				NodeMeta proto = BehaviorManager.Instance.GetNodeMeta(name);
+				NodeMeta proto = BTEntity.Instance.GetNodeMeta(name);
 				if (name.ToUpper().Contains(text.ToUpper()) || proto.describe.ToUpper().Contains(text.ToUpper()))
 				{
 					result2.Add(name);
@@ -141,7 +141,7 @@ namespace MyEditor
 			style.alignment = TextAnchor.MiddleLeft;
 			GUIStyleState onHoverStyleState = new GUIStyleState();
 			//onHoverStyleState.textColor = textHighLightColor;
-			onHoverStyleState.background = BehaviorDesignerUtility.GetTexture("blue");
+			onHoverStyleState.background = BTDesignerUtility.GetTexture("blue");
 			style.hover = onHoverStyleState;
 
 			GUIStyleState onNormalStyleState = new GUIStyleState();

+ 1 - 1
Unity/Assets/Editor/BehaviorTreeEditor/BehaviorTreeTipsHelper.cs

@@ -7,7 +7,7 @@ namespace MyEditor
 		public static void ShowMessage(params object[] list)
 		{
 			string msg = list[0].ToString();
-			BehaviorDesignerWindow.Instance.ShowNotification(new GUIContent(msg));
+			BTEditorWindow.Instance.ShowNotification(new GUIContent(msg));
 		}
 	}
 }

+ 0 - 33
Unity/Assets/Editor/BehaviorTreeEditor/BehaviorTreeToolWindow.cs

@@ -1,33 +0,0 @@
-using System;
-using UnityEditor;
-using UnityEngine;
-
-namespace MyEditor
-{
-	public class BehaviorTreeToolWindow: EditorWindow
-	{
-		public static BehaviorTreeToolWindow Instance
-		{
-			get
-			{
-				return GetWindow<BehaviorTreeToolWindow>(false, "工具箱");
-			}
-		}
-
-		public static void ShowWindow()
-		{
-			Type[] a = new Type[1];
-			a[0] = typeof(BehaviorDesignerWindow);
-			//BehaviorDesignerWindow target = GetWindow<BehaviorDesignerWindow>(false, "行为树编辑器",a);
-			BehaviorTreeToolWindow target = GetWindow<BehaviorTreeToolWindow>("工具箱", true, a);
-			target.ShowTab();
-			//target.maximized = false;
-			// target.Show();
-			Rect rect = BehaviorDesignerWindow.Instance.position;
-			rect.width = 200;
-			target.minSize = rect.size;
-			//  target.position = rect;
-			//target.minSize = new Vector2(600f, 500f);
-		}
-	}
-}

+ 0 - 12
Unity/Assets/Editor/BehaviorTreeEditor/BehaviorTreeToolWindow.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: a1f1c1de7eedbb44494835f8d0863170
-timeCreated: 1473066441
-licenseType: Pro
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 1 - 1
Unity/Assets/Editor/BehaviorTreeEditor/Component/BehaviorTreeDebugComponent.cs → Unity/Assets/Editor/BehaviorTreeEditor/Component/BTDebugComponent.cs

@@ -3,7 +3,7 @@ using Model;
 
 namespace MyEditor
 {
-	public class BehaviorTreeDebugComponent: Component
+	public class BTDebugComponent: Component
 	{
 		public List<List<long>> TreePathList = new List<List<long>>();
 

+ 0 - 0
Unity/Assets/Editor/BehaviorTreeEditor/Component/BehaviorTreeDebugComponent.cs.meta → Unity/Assets/Editor/BehaviorTreeEditor/Component/BTDebugComponent.cs.meta


+ 2 - 2
Unity/Assets/Editor/BehaviorTreeEditor/Event/BehaviorTreeAfterChangeNodeTypeEvent_SelectNode.cs

@@ -7,8 +7,8 @@ namespace MyEditor
 	{
 		public void Run()
 		{
-			NodeDesigner dstNode = BehaviorDesignerWindow.Instance.GraphDesigner.RootNode;
-			BehaviorDesignerWindow.Instance.OnSelectNode(dstNode.NodeData, dstNode);
+			NodeDesigner dstNode = BTEditorWindow.Instance.GraphDesigner.RootNode;
+			BTEditorWindow.Instance.OnSelectNode(dstNode.NodeData, dstNode);
 		}
 	}
 }

+ 1 - 1
Unity/Assets/Editor/BehaviorTreeEditor/Event/BehaviorTreeClickNodeEvent_SelectNode.cs

@@ -7,7 +7,7 @@ namespace MyEditor
 	{
 		public void Run(NodeDesigner dstNode)
 		{
-			BehaviorDesignerWindow.Instance.OnSelectNode(dstNode.NodeData, dstNode);
+			BTEditorWindow.Instance.OnSelectNode(dstNode.NodeData, dstNode);
 		}
 	}
 }

+ 1 - 1
Unity/Assets/Editor/BehaviorTreeEditor/Event/BehaviorTreeConnectStateEvent_HandleConnectLines.cs

@@ -7,7 +7,7 @@ namespace MyEditor
 	{
 		public void Run(NodeDesigner nodeDesigner, State state)
 		{
-			BehaviorDesignerWindow.Instance.onStartConnect(nodeDesigner, state);
+			BTEditorWindow.Instance.onStartConnect(nodeDesigner, state);
 		}
 	}
 }

+ 1 - 1
Unity/Assets/Editor/BehaviorTreeEditor/Event/BehaviorTreeCreateNodeEvent_SelectNode.cs

@@ -7,7 +7,7 @@ namespace MyEditor
 	{
 		public void Run(NodeDesigner dstNode)
 		{
-			BehaviorDesignerWindow.Instance.OnSelectNode(dstNode.NodeData, dstNode);
+			BTEditorWindow.Instance.OnSelectNode(dstNode.NodeData, dstNode);
 		}
 	}
 }

+ 1 - 1
Unity/Assets/Editor/BehaviorTreeEditor/Event/BehaviorTreeMouseInNodeEvent_HandleOperate.cs

@@ -7,7 +7,7 @@ namespace MyEditor
 	{
 		public void Run(BehaviorNodeData nodeData, NodeDesigner nodeDesigner)
 		{
-			BehaviorDesignerWindow.Instance.onMouseInNode(nodeData, nodeDesigner);
+			BTEditorWindow.Instance.onMouseInNode(nodeData, nodeDesigner);
 		}
 	}
 }

+ 1 - 1
Unity/Assets/Editor/BehaviorTreeEditor/Event/BehaviorTreeNewCreateClickEvent_CreateNode.cs

@@ -8,7 +8,7 @@ namespace MyEditor
 	{
 		public void Run(string name, Vector2 pos)
 		{
-			BehaviorDesignerWindow.Instance.onCreateNode(name, pos);
+			BTEditorWindow.Instance.onCreateNode(name, pos);
 		}
 	}
 }

+ 2 - 2
Unity/Assets/Editor/BehaviorTreeEditor/Event/BehaviorTreeOpenEditorEvent_SelectNode.cs

@@ -8,13 +8,13 @@ namespace MyEditor
 	{
 		public void Run()
 		{
-			NodeDesigner dstNode = BehaviorDesignerWindow.Instance.onCreateTree();
+			NodeDesigner dstNode = BTEditorWindow.Instance.onCreateTree();
 			if (dstNode == null)
 			{
 				Debug.LogError($"RootNode can not be null");
 				return;
 			}
-			BehaviorDesignerWindow.Instance.OnSelectNode(dstNode.NodeData, dstNode);
+			BTEditorWindow.Instance.OnSelectNode(dstNode.NodeData, dstNode);
 		}
 	}
 }

+ 1 - 1
Unity/Assets/Editor/BehaviorTreeEditor/Event/BehaviorTreeOpenEditorEvent_SelectTree.cs

@@ -7,7 +7,7 @@ namespace MyEditor
 	{
 		public void Run()
 		{
-			//BehaviorDesignerWindow.Instance.onSelectTree();
+			//BTEditorWindow.Instance.onSelectTree();
 		}
 	}
 }

+ 1 - 1
Unity/Assets/Editor/BehaviorTreeEditor/Event/BehaviorTreeOpenEditorEvent_UpdatePropList.cs

@@ -7,7 +7,7 @@ namespace MyEditor
 	{
 		public void Run()
 		{
-			BehaviorDesignerWindow.Instance.onUpdatePropList();
+			BTEditorWindow.Instance.onUpdatePropList();
 		}
 	}
 }

+ 1 - 1
Unity/Assets/Editor/BehaviorTreeEditor/Event/BehaviorTreeReplaceClickEvent_ReplaceNode.cs

@@ -8,7 +8,7 @@ namespace MyEditor
 	{
 		public void Run(string name, Vector2 pos)
 		{
-			BehaviorDesignerWindow.Instance.onChangeNodeType(name, pos);
+			BTEditorWindow.Instance.onChangeNodeType(name, pos);
 		}
 	}
 }

+ 1 - 1
Unity/Assets/Editor/BehaviorTreeEditor/Event/BehaviorTreeRightDesignerDragEvent_ModifyRightBorder.cs

@@ -7,7 +7,7 @@ namespace MyEditor
 	{
 		public void Run(float deltaX)
 		{
-			BehaviorDesignerWindow.Instance.onDraggingRightDesigner(deltaX);
+			BTEditorWindow.Instance.onDraggingRightDesigner(deltaX);
 		}
 	}
 }

+ 5 - 5
Unity/Assets/Editor/BehaviorTreeEditor/Event/BehaviorTreeRunTreeEvent_ShowDebugInfo.cs

@@ -8,12 +8,12 @@ namespace MyEditor
 	{
 		public void Run(BehaviorTree tree, List<long> pathList)
 		{
-			if (BehaviorManager.Instance.BehaviorTreeConfig != null)
+			if (BTEntity.Instance.BehaviorTreeConfig != null)
 			{
-				BehaviorManager.Instance.ClearDebugState();
-				BehaviorManager.Instance.GetComponent<BehaviorTreeDebugComponent>().TreePathList.Add(pathList);
-				BehaviorManager.Instance.GetComponent<BehaviorTreeDebugComponent>().BehaviorTree = tree;
-				BehaviorManager.Instance.SetDebugState(pathList);
+				BTEntity.Instance.ClearDebugState();
+				BTEntity.Instance.GetComponent<BTDebugComponent>().TreePathList.Add(pathList);
+				BTEntity.Instance.GetComponent<BTDebugComponent>().BehaviorTree = tree;
+				BTEntity.Instance.SetDebugState(pathList);
 			}
 		}
 	}

+ 36 - 36
Unity/Assets/Editor/BehaviorTreeEditor/GraphDesigner.cs

@@ -80,11 +80,11 @@ namespace MyEditor
 			Vector2 curPos = Event.current.mousePosition; //MousePosToGraphPos(Event.current.mousePosition);
 			if (mState == State.ConnectLeft)
 			{
-				BehaviorDesignerUtility.DrawConnection(mSelectedNode.LeftPos, curPos);
+				BTDesignerUtility.DrawConnection(mSelectedNode.LeftPos, curPos);
 			}
 			if (mState == State.ConnectRight)
 			{
-				BehaviorDesignerUtility.DrawConnection(mSelectedNode.RightPos, curPos);
+				BTDesignerUtility.DrawConnection(mSelectedNode.RightPos, curPos);
 			}
 		}
 
@@ -102,11 +102,11 @@ namespace MyEditor
 				case EventType.MouseDown:
 					GUI.FocusControl("");
 					mMousePos = e.mousePosition;
-					if (!BehaviorDesignerWindow.windowRect.Contains(mMousePos))
+					if (!BTEditorWindow.windowRect.Contains(mMousePos))
 					{
-						BehaviorDesignerWindow.Instance.CloseSubWin();
+						BTEditorWindow.Instance.CloseSubWin();
 					}
-					if (BehaviorDesignerWindow.windowRect.Contains(mMousePos) && BehaviorDesignerWindow.IsShowSubWin)
+					if (BTEditorWindow.windowRect.Contains(mMousePos) && BTEditorWindow.IsShowSubWin)
 					{
 						break;
 					}
@@ -144,7 +144,7 @@ namespace MyEditor
 
 					break;
 				case EventType.MouseUp:
-					if (BehaviorDesignerWindow.windowRect.Contains(mMousePos) && BehaviorDesignerWindow.IsShowSubWin)
+					if (BTEditorWindow.windowRect.Contains(mMousePos) && BTEditorWindow.IsShowSubWin)
 					{
 						break;
 					}
@@ -248,7 +248,7 @@ namespace MyEditor
 		public void DrawMouseIcon(string resName)
 		{
 			GUI.DrawTexture(new Rect(Event.current.mousePosition.x - 10, Event.current.mousePosition.y - 20, 17, 20),
-			                BehaviorDesignerUtility.GetTexture(resName));
+			                BTDesignerUtility.GetTexture(resName));
 		}
 
 		public void CheckMouseInNode()
@@ -308,10 +308,10 @@ namespace MyEditor
 		public void DrawBackground()
 		{
 			float width = 15f;
-			Texture2D bgTex = BehaviorDesignerUtility.GetTexture("Bg");
+			Texture2D bgTex = BTDesignerUtility.GetTexture("Bg");
 			GUI.DrawTexture(new Rect(0, 0, mGraphRect.width, mGraphRect.height), bgTex);
 
-			Texture2D lineTex = BehaviorDesignerUtility.GetTexture("BgLine");
+			Texture2D lineTex = BTDesignerUtility.GetTexture("BgLine");
 			for (int i = 0; i < mGraphRect.width / width; i++)
 			{
 				GUI.DrawTexture(new Rect(width * i, 0, 1f, mGraphRect.height), lineTex);
@@ -328,9 +328,9 @@ namespace MyEditor
 			if (mSelectedNode != null)
 			{
 				if (mSelectedNode.NodeData.Proto.classify == NodeClassifyType.Root.ToString() ||
-				    BehaviorManager.Instance.CurTree.Root.Id == mSelectedNode.NodeData.Id)
+				    BTEntity.Instance.CurTree.Root.Id == mSelectedNode.NodeData.Id)
 				{
-					List<NodeMeta> list = BehaviorManager.Instance.Classify2NodeProtoList[NodeClassifyType.Root.ToString()];
+					List<NodeMeta> list = BTEntity.Instance.Classify2NodeProtoList[NodeClassifyType.Root.ToString()];
 					foreach (NodeMeta nodeType in list)
 					{
 						result.Add(nodeType.name);
@@ -340,7 +340,7 @@ namespace MyEditor
 				else
 				{
 					// NodeChildLimitType nodeChildLimitType = mSelectedNode.NodeData.IsLeaf() ? NodeChildLimitType.All : NodeChildLimitType.WithChild;
-					List<NodeMeta> canSubtituteList = BehaviorManager.Instance.AllNodeProtoList;
+					List<NodeMeta> canSubtituteList = BTEntity.Instance.AllNodeProtoList;
 					canSubtituteList.Sort(CompareShowName);
 					foreach (NodeMeta nodeType in canSubtituteList)
 					{
@@ -363,7 +363,7 @@ namespace MyEditor
 		{
 			List<string> result = new List<string>();
 
-			foreach (KeyValuePair<string, List<NodeMeta>> kv in BehaviorManager.Instance.Classify2NodeProtoList)
+			foreach (KeyValuePair<string, List<NodeMeta>> kv in BTEntity.Instance.Classify2NodeProtoList)
 			{
 				string classify = kv.Key;
 				List<NodeMeta> nodeProtoList = kv.Value;
@@ -390,8 +390,8 @@ namespace MyEditor
 
 			menu.AddItem(new GUIContent("创建子节点"), false, this.PopUpCreate);
 			menu.AddItem(new GUIContent("替换当前节点"), false, this.PopUpReplace);
-			string selectNodeName = BehaviorManager.Instance.selectNodeName;
-			string selectNodeType = BehaviorManager.Instance.selectNodeType;
+			string selectNodeName = BTEntity.Instance.selectNodeName;
+			string selectNodeType = BTEntity.Instance.selectNodeType;
 			if (mSelectedNode != null && selectNodeName != "")
 			{
 				if (selectNodeType != NodeClassifyType.Root.ToString() && mSelectedNode.NodeData.Children.Count < mSelectedNode.NodeData.Proto.child_limit)
@@ -444,12 +444,12 @@ namespace MyEditor
 
 		private void PopUpCreate()
 		{
-			BehaviorDesignerWindow.Instance.ShowSubWin(mMousePos, SubWinType.CreateNode);
+			BTEditorWindow.Instance.ShowSubWin(mMousePos, SubWinType.CreateNode);
 		}
 
 		private void PopUpReplace()
 		{
-			BehaviorDesignerWindow.Instance.ShowSubWin(mMousePos, SubWinType.ReplaceNode);
+			BTEditorWindow.Instance.ShowSubWin(mMousePos, SubWinType.ReplaceNode);
 		}
 
 		private static int CompareShowName(NodeMeta nodeType1, NodeMeta nodeType2)
@@ -468,8 +468,8 @@ namespace MyEditor
 		
 		private void CreateNode()
 		{
-			NodeMeta nodeProto = BehaviorManager.Instance.GetNodeMeta(BehaviorManager.Instance.selectNodeName);
-			BehaviorNodeData nodeData = BehaviorManager.Instance.CreateNode((int) BehaviorManager.Instance.CurTree.Id, nodeProto.name);
+			NodeMeta nodeProto = BTEntity.Instance.GetNodeMeta(BTEntity.Instance.selectNodeName);
+			BehaviorNodeData nodeData = BTEntity.Instance.CreateNode((int) BTEntity.Instance.CurTree.Id, nodeProto.name);
 			CreateNode(nodeData, MousePosToGraphPos(mMousePos));
 		}
 
@@ -501,8 +501,8 @@ namespace MyEditor
 			}
 			if (mCopyNode != null && mCopyNode != mSelectedNode)
 			{
-				BehaviorNodeData data = BehaviorManager.Instance.CopyNode(mCopyNode.NodeData);
-				BehaviorManager.Instance.ResetTreeId();
+				BehaviorNodeData data = BTEntity.Instance.CopyNode(mCopyNode.NodeData);
+				BTEntity.Instance.ResetTreeId();
 				NodeDesigner node = CreateNode(data, Vector2.zero);
 				ConnectNode(node, mSelectedNode);
 			}
@@ -538,20 +538,20 @@ namespace MyEditor
 				return;
 			}
 			mDetachedNodes.Remove(mSelectedNode);
-			BehaviorManager.Instance.ResetTreeId();
+			BTEntity.Instance.ResetTreeId();
 		}
 
 		private void ChangeNodeType()
 		{
-			ChangeNodeType(BehaviorManager.Instance.selectNodeName);
+			ChangeNodeType(BTEntity.Instance.selectNodeName);
 		}
 
 		//有待优化
 		private void ChangeNodeType(object obj)
 		{
 			string nodeType = (string) obj;
-			NodeMeta nodeProto = BehaviorManager.Instance.GetNodeMeta(nodeType);
-			BehaviorNodeData nodeData = BehaviorManager.Instance.CreateNode((int) BehaviorManager.Instance.CurTree.Id, nodeProto.name);
+			NodeMeta nodeProto = BTEntity.Instance.GetNodeMeta(nodeType);
+			BehaviorNodeData nodeData = BTEntity.Instance.CreateNode((int) BTEntity.Instance.CurTree.Id, nodeProto.name);
 			NodeDesigner oldNode = mSelectedNode;
 			NodeDesigner newNode = new NodeDesigner(nodeData);
 
@@ -559,11 +559,11 @@ namespace MyEditor
 			{
 				newNode.NodeData.Id = RootNode.NodeData.Id;
 				RootNode = newNode;
-				BehaviorTreeData oldTree = BehaviorManager.Instance.CurTree;
+				BehaviorTreeData oldTree = BTEntity.Instance.CurTree;
 				BehaviorTreeData newTree = new BehaviorTreeData(oldTree.Id);
 				newTree.classify = oldTree.classify;
 				newTree.Root = nodeData;
-				BehaviorManager.Instance.CurTree = newTree;
+				BTEntity.Instance.CurTree = newTree;
 			}
 			else
 			{
@@ -576,7 +576,7 @@ namespace MyEditor
 			{
 				newNode.AddChild(child);
 			}
-			BehaviorManager.Instance.ResetTreeId();
+			BTEntity.Instance.ResetTreeId();
 			Game.Scene.GetComponent<EventComponent>().Run(EventIdType.BehaviorTreeAfterChangeNodeType);
 		}
 
@@ -607,7 +607,7 @@ namespace MyEditor
 			{
 				mDetachedNodes.Add(node);
 			}
-			BehaviorManager.Instance.ResetTreeId();
+			BTEntity.Instance.ResetTreeId();
 			Game.Scene.GetComponent<EventComponent>().Run(EventIdType.BehaviorTreeCreateNode, node);
 			return node;
 		}
@@ -615,12 +615,12 @@ namespace MyEditor
 		/// 事件相关
 		public NodeDesigner onCreateTree(params object[] list)
 		{
-			if (BehaviorManager.Instance.CurTree == null)
+			if (BTEntity.Instance.CurTree == null)
 			{
 				Log.Error($"CurTree can not be null");
 				return null;
 			}
-			RootNode = new NodeDesigner(BehaviorManager.Instance.CurTree.Root);
+			RootNode = new NodeDesigner(BTEntity.Instance.CurTree.Root);
 			CalcGraphRect();
 			return RootNode;
 		}
@@ -637,8 +637,8 @@ namespace MyEditor
 			string name = (string) list[0];
 			Vector2 pos = (Vector2) list[1];
 
-			NodeMeta nodeProto = BehaviorManager.Instance.GetNodeMeta(name);
-			BehaviorNodeData nodeData = BehaviorManager.Instance.CreateNode((int) BehaviorManager.Instance.CurTree.Id, nodeProto.name);
+			NodeMeta nodeProto = BTEntity.Instance.GetNodeMeta(name);
+			BehaviorNodeData nodeData = BTEntity.Instance.CreateNode((int) BTEntity.Instance.CurTree.Id, nodeProto.name);
 			CreateNode(nodeData, pos);
 		}
 
@@ -735,7 +735,7 @@ namespace MyEditor
 				int idx = parent1.Children.IndexOf(node1);
 				parent1.AddChild(node2, idx);
 				parent1.AutoSort();
-				//BehaviorManager.GetInstance().ResetTreeId();
+				//BTEntity.GetInstance().ResetTreeId();
 			}
 
 			//             //不同父,插到node1的子节点
@@ -746,7 +746,7 @@ namespace MyEditor
 			//             parent2.AutoSort();
 			//             node1.AddChild(node2);
 			//             node1.AutoSort();
-			//             BehaviorManager.GetInstance().ResetTreeId();
+			//             BTEntity.GetInstance().ResetTreeId();
 		}
 
 		public void MoveNode(NodeDesigner dstNode)
@@ -777,7 +777,7 @@ namespace MyEditor
 			parent2.AutoSort();
 			node1.AddChild(node2);
 			node1.AutoSort();
-			//BehaviorManager.GetInstance().ResetTreeId();
+			//BTEntity.GetInstance().ResetTreeId();
 		}
 	}
 }

+ 13 - 13
Unity/Assets/Editor/BehaviorTreeEditor/NodeDesigner.cs

@@ -91,7 +91,7 @@ namespace MyEditor
 
 		public void Init()
 		{
-			NodeData.Proto = BehaviorManager.Instance.GetNodeMeta(NodeData.Name);
+			NodeData.Proto = BTEntity.Instance.GetNodeMeta(NodeData.Name);
 			string[] arr = NodeData.Proto.style.Split('/');
 			string style = arr.Length > 0? arr[0] : "";
 			if (style == "")
@@ -121,13 +121,13 @@ namespace MyEditor
 						break;
 				}
 			}
-			mBoxTex = BehaviorDesignerUtility.GetTexture(style);
-			mBoxHighLight = BehaviorDesignerUtility.GetTexture("HighLight");
-			mBoxSelectHighLight = BehaviorDesignerUtility.GetTexture("SelectHighLight");
+			mBoxTex = BTDesignerUtility.GetTexture(style);
+			mBoxHighLight = BTDesignerUtility.GetTexture("HighLight");
+			mBoxSelectHighLight = BTDesignerUtility.GetTexture("SelectHighLight");
 
 			if (mBoxTex == null)
 			{
-				mBoxTex = BehaviorDesignerUtility.GetTexture("default");
+				mBoxTex = BTDesignerUtility.GetTexture("default");
 			}
 			if (mBoxTex == null)
 			{
@@ -136,8 +136,8 @@ namespace MyEditor
 			Width = mBoxTex.width / 2;
 			Height = mBoxTex.height / 2;
 
-			mLeftConnectTex = BehaviorDesignerUtility.GetTexture("LeftConnect");
-			mRightConnectTex = BehaviorDesignerUtility.GetTexture("RightConnect");
+			mLeftConnectTex = BTDesignerUtility.GetTexture("LeftConnect");
+			mRightConnectTex = BTDesignerUtility.GetTexture("RightConnect");
 		}
 
 		public void Draw()
@@ -145,7 +145,7 @@ namespace MyEditor
 			foreach (NodeDesigner child in this.Children)
 			{
 				//先画子节点,让线条在最低层
-				BehaviorDesignerUtility.DrawConnection(this.RightPos, child.LeftPos);
+				BTDesignerUtility.DrawConnection(this.RightPos, child.LeftPos);
 				child.Draw();
 			}
 
@@ -179,7 +179,7 @@ namespace MyEditor
 			{
 				GUI.DrawTexture(rect, mBoxSelectHighLight);
 			}
-			else if (BehaviorManager.Instance.IsHighLight(this.NodeData))
+			else if (BTEntity.Instance.IsHighLight(this.NodeData))
 			{
 				GUI.DrawTexture(rect, mBoxHighLight);
 			}
@@ -204,13 +204,13 @@ namespace MyEditor
 			switch (NodeData.NodeDeubgState)
 			{
 				case DebugState.True:
-					tex = BehaviorDesignerUtility.GetTexture("Execute");
+					tex = BTDesignerUtility.GetTexture("Execute");
 					break;
 				//                 case DebugState.False:
-				//                     tex = BehaviorDesignerUtility.GetTexture("False");
+				//                     tex = BTDesignerUtility.GetTexture("False");
 				//                     break;
 				//                 case DebugState.Error:
-				//                     tex = BehaviorDesignerUtility.GetTexture("Error");
+				//                     tex = BTDesignerUtility.GetTexture("Error");
 				//                     break;
 			}
 			if (tex != null)
@@ -306,7 +306,7 @@ namespace MyEditor
 			isSelected = flag;
 			if (flag)
 			{
-				BehaviorManager.Instance.SelectNode(this.NodeData);
+				BTEntity.Instance.SelectNode(this.NodeData);
 			}
 		}
 

+ 5 - 5
Unity/Assets/Editor/BehaviorTreeEditor/NodeExtension.cs

@@ -9,14 +9,14 @@ namespace Model
 {
 	public class BTEditorTree
 	{
-		private int _id = BehaviorManager.NodeIdStartIndex;
+		private int _id = BTEntity.NodeIdStartIndex;
 		private readonly Node _root;
 
 		public BTEditorTree(BehaviorTreeConfig config)
 		{
-			Type rootType = Game.EntityEventManager.GetAssembly("Model").GetType($"Model.{config.RootNodeProto.Name}");
+			Type rootType = ObjectEvents.Instance.GetAssembly("Model").GetType($"Model.{config.RootNodeProto.Name}");
 			Node root = (Node) Activator.CreateInstance(rootType, config.RootNodeProto);
-			root.Id = BehaviorManager.NodeIdStartIndex;
+			root.Id = BTEntity.NodeIdStartIndex;
 			Queue<NodeProto> protoStack = new Queue<NodeProto>();
 			Queue<Node> nodeStack = new Queue<Node>();
 			protoStack.Enqueue(config.RootNodeProto);
@@ -33,7 +33,7 @@ namespace Model
 				}
 				foreach (NodeProto child in p.Children)
 				{
-					Type t = Game.EntityEventManager.GetAssembly("Model").GetType($"Model.{child.Name}");
+					Type t = ObjectEvents.Instance.GetAssembly("Model").GetType($"Model.{child.Name}");
 					Node childNode = (Node) Activator.CreateInstance(t, child);
 					AddChild(childNode, node);
 					protoStack.Enqueue(child);
@@ -73,7 +73,7 @@ namespace Model
 		private BTEditorTree(Node root, BehaviorTreeConfig config)
 		{
 			_root = root;
-			_root.Id = BehaviorManager.NodeIdStartIndex;
+			_root.Id = BTEntity.NodeIdStartIndex;
 			this.BTConfig = config;
 		}
 

+ 0 - 4
Unity/Assets/Editor/BehaviorTreeEditor/NodeMeta.cs

@@ -25,11 +25,7 @@ namespace Model
 		public string classify = "";
 		public string style = "";
 		public int child_limit = 0;
-		public List<string> args_desc = new List<string>();
 		public List<NodeFieldDesc> new_args_desc = new List<NodeFieldDesc>();
-		public List<string> input_keys_desc = new List<string>();
-		public List<string> output_keys_desc = new List<string>();
-		public List<string> game_object_desc = new List<string>();
 		public bool isDeprecated;
 		public string deprecatedDesc;
 		

+ 7 - 5
Unity/Assets/Editor/BehaviorTreeEditor/NodeMetaHelper.cs

@@ -45,7 +45,7 @@ namespace MyEditor
 
 		public static Assembly GetModelAssembly()
 		{
-			return Game.EntityEventManager.GetAssembly("Model");
+			return ObjectEvents.Instance.GetAssembly("Model");
 		}
 
 		public static NodeMeta GetNodeTypeProtoFromType(Type type)
@@ -63,10 +63,12 @@ namespace MyEditor
 				nodeDeprecatedAttribute = nodeDeprecatedAttrs[0] as NodeDeprecatedAttribute;
 			}
 
-			NodeMeta proto = new NodeMeta();
-			proto.type = nodeAttribute.ClassifytType.ToString();
-			proto.name = type.Name;
-			proto.describe = nodeAttribute.Desc;
+			NodeMeta proto = new NodeMeta()
+			{
+				type = nodeAttribute.ClassifytType.ToString(),
+				name = type.Name,
+				describe = nodeAttribute.Desc
+			};
 			if (nodeDeprecatedAttribute != null)
 			{
 				proto.isDeprecated = true;

+ 17 - 17
Unity/Assets/Editor/BehaviorTreeEditor/PropertyDesigner.cs

@@ -114,7 +114,7 @@ namespace MyEditor
 			mNodeFoldout = new FoldoutFolder("所有节点", SelectNodeFolderCallback);
 			mNodeFoldout.Fold = true;
 
-			foreach (KeyValuePair<string, List<NodeMeta>> kv in BehaviorManager.Instance.Classify2NodeProtoList)
+			foreach (KeyValuePair<string, List<NodeMeta>> kv in BTEntity.Instance.Classify2NodeProtoList)
 			{
 				string classify = kv.Key;
 				List<NodeMeta> nodeTypeList = kv.Value;
@@ -196,13 +196,13 @@ namespace MyEditor
 		{
 			Rect boxRect = new Rect(0f, Screen.height - offset + 15f, this.mWidth, 200f);
 			GUILayout.BeginArea(boxRect);
-			BehaviorManager.Instance.selectNodeName = "";
+			BTEntity.Instance.selectNodeName = "";
 			if (mCurNode != null)
 			{
 				string[] arr = mCurNode.Text.Split(' ');
 				string name = arr[0];
-				BehaviorManager.Instance.selectNodeName = name;
-				BehaviorManager.Instance.selectNodeType = mCurNode.folderName;
+				BTEntity.Instance.selectNodeName = name;
+				BTEntity.Instance.selectNodeType = mCurNode.folderName;
 				if (mCurNode.folderName != NodeClassifyType.Root.ToString())
 				{
 					if (GUILayout.Button("新建"))
@@ -221,9 +221,9 @@ namespace MyEditor
 
 				if (GUILayout.Button("保存"))
 				{
-					BehaviorManager.Instance.SaveAll();
+					BTEntity.Instance.SaveAll();
 				}
-				NodeMeta node = BehaviorManager.Instance.GetNodeMeta(name);
+				NodeMeta node = BTEntity.Instance.GetNodeMeta(name);
 				GUILayout.Label("节点名:" + node.name);
 				GUILayout.Label("描述:" + node.describe);
 			}
@@ -233,7 +233,7 @@ namespace MyEditor
 
 		private void ClearNodes()
 		{
-			BehaviorManager.Instance.selectNodeName = "";
+			BTEntity.Instance.selectNodeName = "";
 			mEnumNodeTypeSelection = 0;
 			mSearchNode = "";
 			foreach (FoldoutFolder folder in mNodeFoldout.Folders)
@@ -309,7 +309,7 @@ namespace MyEditor
 			value = (GameObject) EditorGUILayout.ObjectField(desc, value, typeof(GameObject), false);
 			if (value.GetComponent<BehaviorTreeConfig>() != null && GUILayout.Button("打开行为树"))
 			{
-				BehaviorManager.Instance.OpenBehaviorEditor(value);
+				BTEntity.Instance.OpenBehaviorEditor(value);
 				SetToolBar(2);
 			}
 			EditorGUILayout.EndHorizontal();
@@ -324,7 +324,7 @@ namespace MyEditor
 			}
 			if (GUILayout.Button("保存行为树"))
 			{
-				BehaviorManager.Instance.SaveAll();
+				BTEntity.Instance.SaveAll();
 			}
 			NodeMeta proto = mCurBehaviorNode.Proto;
 			GUILayout.Space(10f);
@@ -383,7 +383,7 @@ namespace MyEditor
 			{
 				NodeFieldDesc desc = fieldList[i];
 				Type fieldType = NodeMetaHelper.GetFieldType(nodeName, desc.name);
-				NodeMeta nodeMeta = BehaviorManager.Instance.GetNodeMeta(nodeName);
+				NodeMeta nodeMeta = BTEntity.Instance.GetNodeMeta(nodeName);
 
 				// 如果不存在这个参数,给一个默认的
 				if (!mCurBehaviorNode.Args.ContainsKey(desc.name))
@@ -631,7 +631,7 @@ namespace MyEditor
 		private object InputEnumFieldValue(NodeFieldDesc desc)
 		{
 			string oldValue = mCurBehaviorNode.Args.Get(desc.name)?.ToString();
-			string[] enumValueArr = BehaviorManager.Instance.GetCanInPutEnvKeyArray(mCurBehaviorNode, desc);
+			string[] enumValueArr = BTEntity.Instance.GetCanInPutEnvKeyArray(mCurBehaviorNode, desc);
 			if (enumValueArr.Length == 0)
 			{
 				enumValueArr = new string[1] { BTEnvKey.None };
@@ -705,8 +705,8 @@ namespace MyEditor
 
 		public void DrawDebugView()
 		{
-			BehaviorTree behaviorTree = BehaviorManager.Instance.GetComponent<BehaviorTreeDebugComponent>().BehaviorTree;
-			List<List<long>> treePathList = BehaviorManager.Instance.GetComponent<BehaviorTreeDebugComponent>().TreePathList;
+			BehaviorTree behaviorTree = BTEntity.Instance.GetComponent<BTDebugComponent>().BehaviorTree;
+			List<List<long>> treePathList = BTEntity.Instance.GetComponent<BTDebugComponent>().TreePathList;
 			if (behaviorTree == null)
 			{
 				return;
@@ -714,7 +714,7 @@ namespace MyEditor
 			if (GUILayout.Button("清空执行记录"))
 			{
 				treePathList.Clear();
-				BehaviorManager.Instance.ClearDebugState();
+				BTEntity.Instance.ClearDebugState();
 			}
 			const float offset = 55f;
 			GUILayout.BeginArea(new Rect(0f, 20f, this.mWidth, Screen.height - offset));
@@ -722,12 +722,12 @@ namespace MyEditor
 				new Rect(0f, 0f, this.mWidth, Screen.height - offset), this.mTreeScrollPos,
 			    new Rect(0f, 0f, this.mWidth - 20f, treePathList.Count * 22), false, false);
 
-			for (int i = 0; i < BehaviorManager.Instance.GetComponent<BehaviorTreeDebugComponent>().TreePathList.Count; i++)
+			for (int i = 0; i < BTEntity.Instance.GetComponent<BTDebugComponent>().TreePathList.Count; i++)
 			{
 				if (GUILayout.Button($"frame{i}"))
 				{
-					BehaviorManager.Instance.ClearDebugState();
-					BehaviorManager.Instance.SetDebugState(treePathList[i]);
+					BTEntity.Instance.ClearDebugState();
+					BTEntity.Instance.SetDebugState(treePathList[i]);
 				}
 			}
 			GUI.EndScrollView();

+ 3 - 3
Unity/Assets/Editor/EditorInit.cs

@@ -11,8 +11,8 @@ namespace MyEditor
 	{
 		static EditorInit()
 		{
-			Game.EntityEventManager.Register("Model", typeof (Game).Assembly);
-			Game.EntityEventManager.Register("Editor", typeof (EditorInit).Assembly);
+			ObjectEvents.Instance.Register("Model", typeof (Game).Assembly);
+			ObjectEvents.Instance.Register("Editor", typeof (EditorInit).Assembly);
 
 			EditorApplication.update += Update;
 		}
@@ -26,7 +26,7 @@ namespace MyEditor
 
 			try
 			{
-				Game.EntityEventManager.Update();
+				ObjectEvents.Instance.Update();
 			}
 			catch (Exception e)
 			{

+ 1 - 1
Unity/Assets/Editor/ILRuntimeEditor/ILRuntimeEditor.cs

@@ -27,7 +27,7 @@ namespace MyEditor
 			//因此List<A> List<B>,如果A与B都是ILRuntime中的类型,只需要添加List<ILRuntime.Runtime.Intepreter.ILTypeInstance>即可
 			types.Add(typeof(Dictionary<ILRuntime.Runtime.Intepreter.ILTypeInstance, int>));
 
-			Assembly assemby = Game.EntityEventManager.GetAssembly("Model");
+			Assembly assemby = ObjectEvents.Instance.GetAssembly("Model");
 			foreach (Type type in assemby.GetTypes())
 			{
 				if (type.GetCustomAttributes(typeof (ILBindingAttribute), false).Length == 0)

+ 1 - 5
Unity/Assets/Editor/ObjectManagerToolsEditor/ObjectManagerToolsWindow.cs

@@ -1,18 +1,14 @@
-using Base;
-using Model;
-using UnityEditor;
+using UnityEditor;
 
 public class ObjectManagerToolsWindow: EditorWindow
 {
 	[MenuItem("Tools/ObjectManagerTools/显示未Dispose的对象")]
 	private static void ShowUnDisposeObjects()
 	{
-		Log.Info(Game.DisposerInfo());
 	}
 
 	[MenuItem("Tools/ObjectManagerTools/清除所有对象")]
 	private static void ClearAllObjects()
 	{
-		Game.ClearDisposers();
 	}
 }

+ 1 - 1
Unity/Assets/Scripts/Component/BehaviorTreeComponent.cs

@@ -56,7 +56,7 @@ namespace Model
 
 		private static void InitFieldValue(ref Node node, NodeProto nodeProto)
 		{
-			Type type = Game.EntityEventManager.GetAssembly("Model").GetType("Model." + nodeProto.Name);
+			Type type = ObjectEvents.Instance.GetAssembly("Model").GetType("Model." + nodeProto.Name);
 
 			foreach (var args_item in nodeProto.Args.Dict())
 			{

+ 1 - 1
Unity/Assets/Scripts/Component/ConfigComponent.cs

@@ -10,7 +10,7 @@ namespace Model
 
 		private void Load()
 		{
-			Assembly assembly = Game.EntityEventManager.GetAssembly("Base");
+			Assembly assembly = ObjectEvents.Instance.GetAssembly("Base");
 
 			this.allConfig = new Dictionary<Type, ICategory>();
 			Type[] types = assembly.GetTypes();

+ 1 - 1
Unity/Assets/Scripts/Component/UIComponent.cs

@@ -17,7 +17,7 @@ namespace Model
 
 		public IILUIFactoryMethod(Type type)
 		{
-			appDomain = Game.EntityEventManager.AppDomain;
+			appDomain = ObjectEvents.Instance.AppDomain;
 			this.instance = this.appDomain.Instantiate(type.FullName);
 			this.method = this.instance.Type.GetMethod("Create", 3);
 		}

+ 8 - 84
Unity/Assets/Scripts/Entity/Game.cs

@@ -1,105 +1,29 @@
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using Base;
-
-namespace Model
+namespace Model
 {
 	public static class Game
 	{
-		private static HashSet<Disposer> disposers;
-
-		private static EntityEventManager entityEventManager;
-
-		public static TPoller Poller { get; } = new TPoller();
-
 		private static Scene scene;
 
 		public static Scene Scene
 		{
 			get
 			{
-				if (scene == null)
+				if (scene != null)
 				{
-					scene = new Scene();
-#if SERVER
-					scene.AddComponent<EventComponent>();
-#else
-					scene.AddComponent<EventComponent>();
-#endif
-					scene.AddComponent<TimerComponent>();
+					return scene;
 				}
-				return scene;
-			}
-		}
 
-		public static HashSet<Disposer> Disposers
-		{
-			get
-			{
-				if (disposers == null)
-				{
-					disposers = new HashSet<Disposer>();
-				}
-				return disposers;
+				scene = new Scene();
+				scene.AddComponent<EventComponent>();
+				scene.AddComponent<TimerComponent>();
+				return scene;
 			}
 		}
 
-		public static void CloseScene()
+		public static void Close()
 		{
 			scene.Dispose();
 			scene = null;
 		}
-
-		public static void ClearDisposers()
-		{
-			foreach (Disposer disposer in Disposers)
-			{
-				disposer.Dispose();
-			}
-			disposers.Clear();
-			disposers = null;
-		}
-
-		public static EntityEventManager EntityEventManager
-		{
-			get
-			{
-				if (entityEventManager == null)
-				{
-					entityEventManager = new EntityEventManager();
-				}
-				return entityEventManager;
-			}
-			set
-			{
-				entityEventManager = value;
-			}
-		}
-
-		public static string DisposerInfo()
-		{
-			var info = new Dictionary<string, int>();
-			foreach (Disposer disposer in Disposers)
-			{
-				if (info.ContainsKey(disposer.GetType().Name))
-				{
-					info[disposer.GetType().Name] += 1;
-				}
-				else
-				{
-					info[disposer.GetType().Name] = 1;
-				}
-			}
-			info = info.OrderByDescending(s => s.Value).ToDictionary(p => p.Key, p => p.Value);
-			StringBuilder sb = new StringBuilder();
-			sb.Append("\r\n");
-			foreach (string key in info.Keys)
-			{
-				sb.Append($"{info[key],10} {key}\r\n");
-			}
-
-			return sb.ToString();
-		}
 	}
 }

+ 4 - 4
Unity/Assets/Scripts/Helper/DllHelper.cs

@@ -20,7 +20,7 @@ namespace Model
 		public static Type[] GetMonoTypes()
 		{
 			List<Type> types = new List<Type>();
-			Assembly[] assemblies = Game.EntityEventManager.GetAssemblies();
+			Assembly[] assemblies = ObjectEvents.Instance.GetAssemblies();
 			foreach (Assembly assembly in assemblies)
 			{
 				Type[] t = assembly.GetTypes();
@@ -31,7 +31,7 @@ namespace Model
 
 		public static Type[] GetHotfixTypes()
 		{
-			ILRuntime.Runtime.Enviorment.AppDomain appDomain = Game.EntityEventManager.AppDomain;
+			ILRuntime.Runtime.Enviorment.AppDomain appDomain = ObjectEvents.Instance.AppDomain;
 			if (appDomain == null)
 			{
 				return new Type[0];
@@ -41,13 +41,13 @@ namespace Model
 
 		public static object CreateHotfixObject(Type type)
 		{
-			object obj = Game.EntityEventManager.AppDomain.Instantiate(type.FullName);
+			object obj = ObjectEvents.Instance.AppDomain.Instantiate(type.FullName);
 			return obj;
 		}
 
 		public static T CreateHotfixObject<T>(Type type) where T: class 
 		{
-			T obj = Game.EntityEventManager.AppDomain.Instantiate<T>(type.FullName);
+			T obj = ObjectEvents.Instance.AppDomain.Instantiate<T>(type.FullName);
 			return obj;
 		}
 	}

+ 6 - 6
Unity/Assets/Scripts/Init.cs

@@ -9,12 +9,12 @@ namespace Model
 		private void Start()
 		{
 #if ILRuntime
-			Game.EntityEventManager.RegisterILRuntime();
-			Game.EntityEventManager.RegisterILAdapter();
+			ObjectEvents.Instance.RegisterILRuntime();
+			ObjectEvents.Instance.RegisterILAdapter();
 #else
-			Game.EntityEventManager.Register("Hotfix", DllHelper.LoadHotfixAssembly());
+			ObjectEvents.Instance.Register("Hotfix", DllHelper.LoadHotfixAssembly());
 #endif
-			Game.EntityEventManager.Register("Model", typeof (Game).Assembly);
+			ObjectEvents.Instance.Register("Model", typeof (Game).Assembly);
 			Game.Scene.AddComponent<ResourcesComponent>();
 			Game.Scene.AddComponent<UIComponent>();
 			Game.Scene.AddComponent<UnitComponent>();
@@ -29,7 +29,7 @@ namespace Model
 		{
 			try
 			{
-				Game.EntityEventManager.Update();
+				ObjectEvents.Instance.Update();
 			}
 			catch (Exception e)
 			{
@@ -39,7 +39,7 @@ namespace Model
 
 		private void OnApplicationQuit()
 		{
-			Game.CloseScene();
+			Game.Close();
 		}
 	}
 }

+ 4 - 4
Unity/Assets/Scripts/Object/Component.cs

@@ -16,12 +16,12 @@ namespace Model
 
 		protected Component()
 		{
-			Game.EntityEventManager.Add(this);
+			ObjectEvents.Instance.Add(this);
 		}
 
 		protected Component(long id): base(id)
 		{
-			Game.EntityEventManager.Add(this);
+			ObjectEvents.Instance.Add(this);
 		}
 
 		public T GetComponent<T>() where T : Component
@@ -40,14 +40,14 @@ namespace Model
 
 			this.Owner.RemoveComponent(this.GetType());
 
-			Game.EntityEventManager.Remove(this);
+			ObjectEvents.Instance.Remove(this);
 		}
 
 		public override void EndInit()
 		{
 			base.EndInit();
 
-			Game.EntityEventManager.Add(this);
+			ObjectEvents.Instance.Add(this);
 		}
 	}
 }

+ 0 - 4
Unity/Assets/Scripts/Object/Disposer.cs

@@ -7,18 +7,15 @@ namespace Model
 	{
 		protected Disposer(): base(IdGenerater.GenerateId())
 		{
-			Game.Disposers.Add(this);
 		}
 
 		protected Disposer(long id): base(id)
 		{
-			Game.Disposers.Add(this);
 		}
 
 		public virtual void Dispose()
 		{
 			this.Id = 0;
-			Game.Disposers.Remove(this);
 		}
 
 		public override void BeginInit()
@@ -27,7 +24,6 @@ namespace Model
 
 		public override void EndInit()
 		{
-			Game.Disposers.Add(this);
 		}
 	}
 }

+ 10 - 10
Unity/Assets/Scripts/Object/Entity.cs

@@ -21,19 +21,19 @@ namespace Model
 		protected Entity()
 		{
 			this.Type = EntityType.None;
-			Game.EntityEventManager.Add(this);
+			ObjectEvents.Instance.Add(this);
 		}
 
 		protected Entity(EntityType entityType)
 		{
 			this.Type = entityType;
-			Game.EntityEventManager.Add(this);
+			ObjectEvents.Instance.Add(this);
 		}
 
 		protected Entity(long id, EntityType entityType): base(id)
 		{
 			this.Type = entityType;
-			Game.EntityEventManager.Add(this);
+			ObjectEvents.Instance.Add(this);
 		}
 
 		public override void Dispose()
@@ -57,7 +57,7 @@ namespace Model
 				}
 			}
 
-			Game.EntityEventManager.Remove(this);
+			ObjectEvents.Instance.Remove(this);
 		}
 
 		public K AddComponent<K>() where K : Component, new()
@@ -77,7 +77,7 @@ namespace Model
 
 			this.components.Add(component);
 			this.componentDict.Add(component.GetType(), component);
-			Game.EntityEventManager.Awake(component);
+			ObjectEvents.Instance.Awake(component);
 			return component;
 		}
 
@@ -98,7 +98,7 @@ namespace Model
 
 			this.components.Add(component);
 			this.componentDict.Add(component.GetType(), component);
-			Game.EntityEventManager.Awake(component, p1);
+			ObjectEvents.Instance.Awake(component, p1);
 			return component;
 		}
 
@@ -119,7 +119,7 @@ namespace Model
 
 			this.components.Add(component);
 			this.componentDict.Add(component.GetType(), component);
-			Game.EntityEventManager.Awake(component, p1, p2);
+			ObjectEvents.Instance.Awake(component, p1, p2);
 			return component;
 		}
 
@@ -140,7 +140,7 @@ namespace Model
 
 			this.components.Add(component);
 			this.componentDict.Add(component.GetType(), component);
-			Game.EntityEventManager.Awake(component, p1, p2, p3);
+			ObjectEvents.Instance.Awake(component, p1, p2, p3);
 			return component;
 		}
 
@@ -157,7 +157,7 @@ namespace Model
 			}
 			this.components.Add(component);
 			this.componentDict.Add(component.GetType(), component);
-			Game.EntityEventManager.Awake(component);
+			ObjectEvents.Instance.Awake(component);
 		}
 
 		public void RemoveComponent<K>() where K : Component
@@ -220,7 +220,7 @@ namespace Model
 		{
 			base.EndInit();
 
-			Game.EntityEventManager.Add(this);
+			ObjectEvents.Instance.Add(this);
 
 			if (this.components.Count == 0)
 			{

+ 18 - 3
Unity/Assets/Scripts/Object/EntityEventManager.cs → Unity/Assets/Scripts/Object/ObjectEvents.cs

@@ -67,8 +67,10 @@ namespace Model
 		}
 	}
 
-	public sealed class EntityEventManager
+	public sealed class ObjectEvents
 	{
+		private static ObjectEvents instance;
+
 		private readonly Dictionary<string, Assembly> assemblies = new Dictionary<string, Assembly>();
 
 		private readonly Dictionary<EntityEventType, HashSet<Disposer>> disposers = new Dictionary<EntityEventType, HashSet<Disposer>>();
@@ -83,7 +85,7 @@ namespace Model
 		private ILRuntime.Runtime.Enviorment.AppDomain appDomain;
 #endif
 
-		public EntityEventManager()
+		public ObjectEvents()
 		{
 			foreach (EntityEventType t in Enum.GetValues(typeof (EntityEventType)))
 			{
@@ -91,6 +93,19 @@ namespace Model
 			}
 		}
 
+		public static ObjectEvents Instance
+		{
+			get
+			{
+				return instance ?? (instance = new ObjectEvents());
+			}
+		}
+
+		public void Reset()
+		{
+			instance = null;
+		}
+
 		public void Register(string name, Assembly assembly)
 		{
 			this.assemblies[name] = assembly;
@@ -214,7 +229,7 @@ namespace Model
 
 		public void RegisterILAdapter()
 		{
-			Assembly assembly = Game.EntityEventManager.GetAssembly("Model");
+			Assembly assembly = ObjectEvents.Instance.GetAssembly("Model");
 
 			foreach (Type type in assembly.GetTypes())
 			{

+ 0 - 0
Unity/Assets/Scripts/Object/EntityEventManager.cs.meta → Unity/Assets/Scripts/Object/ObjectEvents.cs.meta


+ 2 - 2
Unity/Assets/Scripts/Other/ILMethod.cs

@@ -13,7 +13,7 @@ namespace Model
 		public ILInstanceMethod(Type type, string methodName)
 		{
 			this.Name = methodName;
-			appDomain = Game.EntityEventManager.AppDomain;
+			appDomain = ObjectEvents.Instance.AppDomain;
 			this.instance = this.appDomain.Instantiate(type.FullName);
 			this.method = this.instance.Type.GetMethod(methodName);
 		}
@@ -34,7 +34,7 @@ namespace Model
 		{
 			this.param = new object[paramsCount + 1];
 			this.Name = method.Name;
-			appDomain = Game.EntityEventManager.AppDomain;
+			appDomain = ObjectEvents.Instance.AppDomain;
 			this.method = method;
 		}