tanghai 2 лет назад
Родитель
Сommit
482cc45717
100 измененных файлов с 217 добавлено и 24 удалено
  1. 1 1
      Share/Tool/Share.Tool.csproj
  2. 8 0
      Unity/Assets/Scripts/Core/Game.meta
  3. 1 10
      Unity/Assets/Scripts/Core/Game/Game.cs
  4. 0 0
      Unity/Assets/Scripts/Core/Game/Game.cs.meta
  5. 0 0
      Unity/Assets/Scripts/Core/Game/IMessage.cs
  6. 0 0
      Unity/Assets/Scripts/Core/Game/IMessage.cs.meta
  7. 0 0
      Unity/Assets/Scripts/Core/Game/ISingletonAwake.cs
  8. 0 0
      Unity/Assets/Scripts/Core/Game/ISingletonAwake.cs.meta
  9. 0 0
      Unity/Assets/Scripts/Core/Game/ISingletonLateUpdate.cs
  10. 0 0
      Unity/Assets/Scripts/Core/Game/ISingletonLateUpdate.cs.meta
  11. 0 0
      Unity/Assets/Scripts/Core/Game/ISingletonLoad.cs
  12. 0 0
      Unity/Assets/Scripts/Core/Game/ISingletonLoad.cs.meta
  13. 0 0
      Unity/Assets/Scripts/Core/Game/ISingletonUpdate.cs
  14. 0 0
      Unity/Assets/Scripts/Core/Game/ISingletonUpdate.cs.meta
  15. 8 0
      Unity/Assets/Scripts/Core/Game/Module.meta
  16. 1 1
      Unity/Assets/Scripts/Core/Game/Module/Config.meta
  17. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Config/ConfigAttribute.cs
  18. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Config/ConfigAttribute.cs.meta
  19. 5 5
      Unity/Assets/Scripts/Core/Game/Module/Config/ConfigComponent.cs
  20. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Config/ConfigComponent.cs.meta
  21. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Config/ConfigSingleton.cs
  22. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Config/ConfigSingleton.cs.meta
  23. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Config/IConfig.cs
  24. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Config/IConfig.cs.meta
  25. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Config/IMerge.cs
  26. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Config/IMerge.cs.meta
  27. 1 1
      Unity/Assets/Scripts/Core/Game/Module/EventSystem.meta
  28. 0 0
      Unity/Assets/Scripts/Core/Game/Module/EventSystem/BaseAttribute.cs
  29. 0 0
      Unity/Assets/Scripts/Core/Game/Module/EventSystem/BaseAttribute.cs.meta
  30. 0 0
      Unity/Assets/Scripts/Core/Game/Module/EventSystem/EventAttribute.cs
  31. 0 0
      Unity/Assets/Scripts/Core/Game/Module/EventSystem/EventAttribute.cs.meta
  32. 0 0
      Unity/Assets/Scripts/Core/Game/Module/EventSystem/EventSystem.cs
  33. 0 0
      Unity/Assets/Scripts/Core/Game/Module/EventSystem/EventSystem.cs.meta
  34. 0 0
      Unity/Assets/Scripts/Core/Game/Module/EventSystem/IEvent.cs
  35. 0 0
      Unity/Assets/Scripts/Core/Game/Module/EventSystem/IEvent.cs.meta
  36. 0 0
      Unity/Assets/Scripts/Core/Game/Module/EventSystem/IInvoke.cs
  37. 0 0
      Unity/Assets/Scripts/Core/Game/Module/EventSystem/IInvoke.cs.meta
  38. 0 0
      Unity/Assets/Scripts/Core/Game/Module/EventSystem/InvokeAttribute.cs
  39. 0 0
      Unity/Assets/Scripts/Core/Game/Module/EventSystem/InvokeAttribute.cs.meta
  40. 0 0
      Unity/Assets/Scripts/Core/Game/Module/EventSystem/TypeSystems.cs
  41. 0 0
      Unity/Assets/Scripts/Core/Game/Module/EventSystem/TypeSystems.cs.meta
  42. 8 0
      Unity/Assets/Scripts/Core/Game/Module/GameActor.meta
  43. 89 0
      Unity/Assets/Scripts/Core/Game/Module/GameActor/GameActor.cs
  44. 1 1
      Unity/Assets/Scripts/Core/Game/Module/GameActor/GameActor.cs.meta
  45. 8 0
      Unity/Assets/Scripts/Core/Game/Module/GameActor/IProcessActorHandler.cs
  46. 1 1
      Unity/Assets/Scripts/Core/Game/Module/GameActor/IProcessActorHandler.cs.meta
  47. 45 0
      Unity/Assets/Scripts/Core/Game/Module/GameActor/ProcessActorHandler.cs
  48. 1 1
      Unity/Assets/Scripts/Core/Game/Module/GameActor/ProcessActorHandler.cs.meta
  49. 7 0
      Unity/Assets/Scripts/Core/Game/Module/GameActor/ProcessActorHandlerAttribute.cs
  50. 1 1
      Unity/Assets/Scripts/Core/Game/Module/GameActor/ProcessActorHandlerAttribute.cs.meta
  51. 18 0
      Unity/Assets/Scripts/Core/Game/Module/GameActor/ProcessActorMessage.cs
  52. 11 0
      Unity/Assets/Scripts/Core/Game/Module/GameActor/ProcessActorMessage.cs.meta
  53. 1 1
      Unity/Assets/Scripts/Core/Game/Module/Log.meta
  54. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Log/ILog.cs
  55. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Log/ILog.cs.meta
  56. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Log/Log.cs
  57. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Log/Log.cs.meta
  58. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Log/Logger.cs
  59. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Log/Logger.cs.meta
  60. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Log/NLogger.cs
  61. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Log/NLogger.cs.meta
  62. 1 1
      Unity/Assets/Scripts/Core/Game/Module/Network.meta
  63. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Network/AChannel.cs
  64. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Network/AChannel.cs.meta
  65. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Network/AService.cs
  66. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Network/AService.cs.meta
  67. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Network/Circularbuffer.cs
  68. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Network/Circularbuffer.cs.meta
  69. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Network/ErrorCore.cs
  70. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Network/ErrorCore.cs.meta
  71. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Network/Extensions.cs
  72. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Network/Extensions.cs.meta
  73. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Network/IPEndPointNonAlloc.cs
  74. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Network/IPEndPointNonAlloc.cs.meta
  75. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Network/KChannel.cs
  76. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Network/KChannel.cs.meta
  77. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Network/KService.cs
  78. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Network/KService.cs.meta
  79. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Network/MessageAttribute.cs
  80. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Network/MessageAttribute.cs.meta
  81. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Network/MessagePool.cs
  82. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Network/MessagePool.cs.meta
  83. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Network/MessageSerializeHelper.cs
  84. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Network/MessageSerializeHelper.cs.meta
  85. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Network/NetServices.cs
  86. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Network/NetServices.cs.meta
  87. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Network/OpcodeRangeDefine.cs
  88. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Network/OpcodeRangeDefine.cs.meta
  89. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Network/PacketParser.cs
  90. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Network/PacketParser.cs.meta
  91. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Network/RpcException.cs
  92. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Network/RpcException.cs.meta
  93. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Network/TChannel.cs
  94. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Network/TChannel.cs.meta
  95. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Network/TService.cs
  96. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Network/TService.cs.meta
  97. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Network/WChannel.cs
  98. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Network/WChannel.cs.meta
  99. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Network/WService.cs
  100. 0 0
      Unity/Assets/Scripts/Core/Game/Module/Network/WService.cs.meta

+ 1 - 1
Share/Tool/Share.Tool.csproj

@@ -43,7 +43,7 @@
             <Link>Module\Log\%(RecursiveDir)%(FileName)%(Extension)</Link>
         </Compile>
 
-        <Compile Include="..\..\Unity\Assets\Scripts\Core\Module\Network\OpcodeRangeDefine.cs">
+        <Compile Include="..\..\Unity\Assets\Scripts\Core\Game\Module\Network\OpcodeRangeDefine.cs">
             <Link>Module\Message\OpcodeRangeDefine.cs</Link>
         </Compile>
     </ItemGroup>

+ 8 - 0
Unity/Assets/Scripts/Core/Game.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 862fbc292c7137444a4100a0ef40fb6e
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 1 - 10
Unity/Assets/Scripts/Core/World/Game.cs → Unity/Assets/Scripts/Core/Game/Game.cs

@@ -114,16 +114,7 @@ namespace ET
         }
 
         #endregion
-
-
-        public void Send(int processId, MessageObject messageObject)
-        {
-            if (this.processes.TryGetValue(processId, out Process process))
-            {
-                return;
-            }
-            process.AddMessage(messageObject);
-        }
+        
         
         // 为了保证线程安全,只允许在Start之前AddSingleton,主要用于线程共用的一些东西
         public T AddSingleton<T>() where T: Singleton<T>, new()

+ 0 - 0
Unity/Assets/Scripts/Core/World/Game.cs.meta → Unity/Assets/Scripts/Core/Game/Game.cs.meta


+ 0 - 0
Unity/Assets/Scripts/Core/World/IMessage.cs → Unity/Assets/Scripts/Core/Game/IMessage.cs


+ 0 - 0
Unity/Assets/Scripts/Core/World/IMessage.cs.meta → Unity/Assets/Scripts/Core/Game/IMessage.cs.meta


+ 0 - 0
Unity/Assets/Scripts/Core/World/ISingletonAwake.cs → Unity/Assets/Scripts/Core/Game/ISingletonAwake.cs


+ 0 - 0
Unity/Assets/Scripts/Core/World/ISingletonAwake.cs.meta → Unity/Assets/Scripts/Core/Game/ISingletonAwake.cs.meta


+ 0 - 0
Unity/Assets/Scripts/Core/World/ISingletonLateUpdate.cs → Unity/Assets/Scripts/Core/Game/ISingletonLateUpdate.cs


+ 0 - 0
Unity/Assets/Scripts/Core/World/ISingletonLateUpdate.cs.meta → Unity/Assets/Scripts/Core/Game/ISingletonLateUpdate.cs.meta


+ 0 - 0
Unity/Assets/Scripts/Core/World/ISingletonLoad.cs → Unity/Assets/Scripts/Core/Game/ISingletonLoad.cs


+ 0 - 0
Unity/Assets/Scripts/Core/World/ISingletonLoad.cs.meta → Unity/Assets/Scripts/Core/Game/ISingletonLoad.cs.meta


+ 0 - 0
Unity/Assets/Scripts/Core/World/ISingletonUpdate.cs → Unity/Assets/Scripts/Core/Game/ISingletonUpdate.cs


+ 0 - 0
Unity/Assets/Scripts/Core/World/ISingletonUpdate.cs.meta → Unity/Assets/Scripts/Core/Game/ISingletonUpdate.cs.meta


+ 8 - 0
Unity/Assets/Scripts/Core/Game/Module.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 565753fb8d09f4c40903cc0071a3461f
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 1 - 1
Unity/Assets/Scripts/Core/Module/Config.meta → Unity/Assets/Scripts/Core/Game/Module/Config.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 49ccd2dc1f78414428420ba5772e1b3d
+guid: fdea67585847303418ec523256daa007
 folderAsset: yes
 DefaultImporter:
   externalObjects: {}

+ 0 - 0
Unity/Assets/Scripts/Core/Module/Config/ConfigAttribute.cs → Unity/Assets/Scripts/Core/Game/Module/Config/ConfigAttribute.cs


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Config/ConfigAttribute.cs.meta → Unity/Assets/Scripts/Core/Game/Module/Config/ConfigAttribute.cs.meta


+ 5 - 5
Unity/Assets/Scripts/Core/Module/Config/ConfigComponent.cs → Unity/Assets/Scripts/Core/Game/Module/Config/ConfigComponent.cs

@@ -7,7 +7,7 @@ namespace ET
 	/// <summary>
     /// Config组件会扫描所有的有ConfigAttribute标签的配置,加载进来
     /// </summary>
-    public class ConfigComponent: ProcessSingleton<ConfigComponent>
+    public class ConfigComponent: Singleton<ConfigComponent>
     {
         public struct GetAllConfigBytes
         {
@@ -18,7 +18,7 @@ namespace ET
             public string ConfigName;
         }
 		
-        private readonly Dictionary<Type, IProcessSingleton> allConfig = new Dictionary<Type, IProcessSingleton>();
+        private readonly Dictionary<Type, ISingleton> allConfig = new();
 
 		public override void Dispose()
 		{
@@ -30,7 +30,7 @@ namespace ET
 
 		public object LoadOneConfig(Type configType)
 		{
-			this.allConfig.TryGetValue(configType, out IProcessSingleton oneConfig);
+			this.allConfig.TryGetValue(configType, out ISingleton oneConfig);
 			if (oneConfig != null)
 			{
 				oneConfig.Destroy();
@@ -39,7 +39,7 @@ namespace ET
 			byte[] oneConfigBytes = EventSystem.Instance.Invoke<GetOneConfigBytes, byte[]>(new GetOneConfigBytes() {ConfigName = configType.FullName});
 
 			object category = MongoHelper.Deserialize(configType, oneConfigBytes, 0, oneConfigBytes.Length);
-			IProcessSingleton singleton = category as IProcessSingleton;
+			ISingleton singleton = category as ISingleton;
 			singleton.Register();
 			
 			this.allConfig[configType] = singleton;
@@ -81,7 +81,7 @@ namespace ET
 			
 			lock (this)
 			{
-				IProcessSingleton singleton = category as IProcessSingleton;
+				ISingleton singleton = category as ISingleton;
 				singleton.Register();
 				this.allConfig[configType] = singleton;
 			}

+ 0 - 0
Unity/Assets/Scripts/Core/Module/Config/ConfigComponent.cs.meta → Unity/Assets/Scripts/Core/Game/Module/Config/ConfigComponent.cs.meta


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Config/ConfigSingleton.cs → Unity/Assets/Scripts/Core/Game/Module/Config/ConfigSingleton.cs


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Config/ConfigSingleton.cs.meta → Unity/Assets/Scripts/Core/Game/Module/Config/ConfigSingleton.cs.meta


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Config/IConfig.cs → Unity/Assets/Scripts/Core/Game/Module/Config/IConfig.cs


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Config/IConfig.cs.meta → Unity/Assets/Scripts/Core/Game/Module/Config/IConfig.cs.meta


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Config/IMerge.cs → Unity/Assets/Scripts/Core/Game/Module/Config/IMerge.cs


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Config/IMerge.cs.meta → Unity/Assets/Scripts/Core/Game/Module/Config/IMerge.cs.meta


+ 1 - 1
Unity/Assets/Scripts/Core/Module/EventSystem.meta → Unity/Assets/Scripts/Core/Game/Module/EventSystem.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: b553c30d9e74bf4449d6a1371894ddc7
+guid: 6f63520dc272ce84894929d06d86966b
 folderAsset: yes
 DefaultImporter:
   externalObjects: {}

+ 0 - 0
Unity/Assets/Scripts/Core/Module/EventSystem/BaseAttribute.cs → Unity/Assets/Scripts/Core/Game/Module/EventSystem/BaseAttribute.cs


+ 0 - 0
Unity/Assets/Scripts/Core/Module/EventSystem/BaseAttribute.cs.meta → Unity/Assets/Scripts/Core/Game/Module/EventSystem/BaseAttribute.cs.meta


+ 0 - 0
Unity/Assets/Scripts/Core/Module/EventSystem/EventAttribute.cs → Unity/Assets/Scripts/Core/Game/Module/EventSystem/EventAttribute.cs


+ 0 - 0
Unity/Assets/Scripts/Core/Module/EventSystem/EventAttribute.cs.meta → Unity/Assets/Scripts/Core/Game/Module/EventSystem/EventAttribute.cs.meta


+ 0 - 0
Unity/Assets/Scripts/Core/Module/EventSystem/EventSystem.cs → Unity/Assets/Scripts/Core/Game/Module/EventSystem/EventSystem.cs


+ 0 - 0
Unity/Assets/Scripts/Core/Module/EventSystem/EventSystem.cs.meta → Unity/Assets/Scripts/Core/Game/Module/EventSystem/EventSystem.cs.meta


+ 0 - 0
Unity/Assets/Scripts/Core/Module/EventSystem/IEvent.cs → Unity/Assets/Scripts/Core/Game/Module/EventSystem/IEvent.cs


+ 0 - 0
Unity/Assets/Scripts/Core/Module/EventSystem/IEvent.cs.meta → Unity/Assets/Scripts/Core/Game/Module/EventSystem/IEvent.cs.meta


+ 0 - 0
Unity/Assets/Scripts/Core/Module/EventSystem/IInvoke.cs → Unity/Assets/Scripts/Core/Game/Module/EventSystem/IInvoke.cs


+ 0 - 0
Unity/Assets/Scripts/Core/Module/EventSystem/IInvoke.cs.meta → Unity/Assets/Scripts/Core/Game/Module/EventSystem/IInvoke.cs.meta


+ 0 - 0
Unity/Assets/Scripts/Core/Module/EventSystem/InvokeAttribute.cs → Unity/Assets/Scripts/Core/Game/Module/EventSystem/InvokeAttribute.cs


+ 0 - 0
Unity/Assets/Scripts/Core/Module/EventSystem/InvokeAttribute.cs.meta → Unity/Assets/Scripts/Core/Game/Module/EventSystem/InvokeAttribute.cs.meta


+ 0 - 0
Unity/Assets/Scripts/Core/Module/EventSystem/TypeSystems.cs → Unity/Assets/Scripts/Core/Game/Module/EventSystem/TypeSystems.cs


+ 0 - 0
Unity/Assets/Scripts/Core/Module/EventSystem/TypeSystems.cs.meta → Unity/Assets/Scripts/Core/Game/Module/EventSystem/TypeSystems.cs.meta


+ 8 - 0
Unity/Assets/Scripts/Core/Game/Module/GameActor.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9aa6e30507103464a88a69b0621a0b89
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 89 - 0
Unity/Assets/Scripts/Core/Game/Module/GameActor/GameActor.cs

@@ -0,0 +1,89 @@
+using System;
+using System.Collections.Concurrent;
+using System.Collections.Generic;
+using System;
+
+namespace ET
+{
+    public class GameActor: Singleton<GameActor>, ISingletonAwake, ISingletonLoad
+    {
+        private readonly Dictionary<Type, List<IProcessActorHandler>> handlers = new();
+
+        private readonly ConcurrentDictionary<int, ConcurrentQueue<MessageObject>> messages = new();
+        
+        public void Awake()
+        {
+            this.Load();
+        }
+
+        public void Load()
+        {
+            var types = EventSystem.Instance.GetTypes(typeof (ProcessActorHandlerAttribute));
+            foreach (Type type in types)
+            {
+                IProcessActorHandler processActorHandler = Activator.CreateInstance(type) as IProcessActorHandler;
+                if (processActorHandler == null)
+                {
+                    Log.Error($"Process Actor Handler {type.Name} 需要继承 IProcessActorHandler");
+                    continue;
+                }
+
+                Type messageType = processActorHandler.GetMessageType();
+                if (!this.handlers.TryGetValue(messageType, out var list))
+                {
+                    list = new List<IProcessActorHandler>();
+                    this.handlers.Add(messageType, list);
+                }
+                list.Add(processActorHandler);
+            }
+        }
+
+        public void Handle(MessageObject messageObject)
+        {
+            if (!this.handlers.TryGetValue(messageObject.GetType(), out var list))
+            {
+                throw new Exception($"not found process actor handler: {messageObject.GetType().FullName}");
+            }
+
+            foreach (IProcessActorHandler processActorHandler in list)
+            {
+                processActorHandler.Handle(messageObject);
+            }
+        }
+        
+        public void Send(int processId, MessageObject messageObject)
+        {
+            if (!this.messages.TryGetValue(processId, out var queue))
+            {
+                return;
+            }
+            queue.Enqueue(messageObject);
+        }
+        
+        public MessageObject Fetch(int processId)
+        {
+            if (!this.messages.TryGetValue(processId, out var queue))
+            {
+                return null;
+            }
+
+            if (!queue.TryDequeue(out var message))
+            {
+                return null;
+            }
+
+            return message;
+        }
+
+        public void AddActor(int processId)
+        {
+            var queue = new ConcurrentQueue<MessageObject>();
+            this.messages[processId] = queue;
+        }
+        
+        public void RemoveActor(int processId)
+        {
+            this.messages.TryRemove(processId, out _);
+        }
+    }
+}

+ 1 - 1
Unity/Assets/Scripts/Core/Singleton/ISingletonAwake.cs.meta → Unity/Assets/Scripts/Core/Game/Module/GameActor/GameActor.cs.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 60e674069f8984b75b16d7027540547e
+guid: 8927ee74103a4e94c92e48f9b8b302d5
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2

+ 8 - 0
Unity/Assets/Scripts/Core/Game/Module/GameActor/IProcessActorHandler.cs

@@ -0,0 +1,8 @@
+namespace ET
+{
+    public interface IProcessActorHandler
+    {
+        void Handle(MessageObject messageObject);
+        System.Type GetMessageType();
+    }
+}

+ 1 - 1
Unity/Assets/Scripts/Core/Singleton/ISingletonLateUpdate.cs.meta → Unity/Assets/Scripts/Core/Game/Module/GameActor/IProcessActorHandler.cs.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 80e79c8701e539f49abb8f05eb75dd64
+guid: 9873c9c556253924fa03cae8c0181b6c
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2

+ 45 - 0
Unity/Assets/Scripts/Core/Game/Module/GameActor/ProcessActorHandler.cs

@@ -0,0 +1,45 @@
+using System;
+
+namespace ET
+{
+    [ProcessActorHandler]
+    public abstract class ProcessActorHandler<T>: IProcessActorHandler where T : MessageObject, IProcessActorMessage
+    {
+        protected abstract void Run(T messageObject);
+
+        public void Handle(MessageObject messageObject)
+        {
+            this.Run((T)messageObject);
+        }
+
+        public Type GetMessageType()
+        {
+            return typeof (T);
+        }
+    }
+    
+    [ProcessActorHandler]
+    public abstract class ProcessActorHandler<Request, Response>: IProcessActorHandler where Request : MessageObject, IProcessActorRequest where Response: MessageObject, IProcessActorResponse, new()
+    {
+        protected abstract void Run(Request request, Response response);
+
+        public void Handle(MessageObject messageObject)
+        {
+            Request request = (Request)messageObject;
+            int processId = request.ProcessId;
+            Response response = new();
+            this.Run(request, response);
+            ProcessActor.Instance.Send(processId, response);
+        }
+
+        public Type GetMessageType()
+        {
+            return typeof (Request);
+        }
+        
+        public Type GetResponseType()
+        {
+            return typeof (Response);
+        }
+    }
+}

+ 1 - 1
Unity/Assets/Scripts/Core/Singleton/ISingletonLoad.cs.meta → Unity/Assets/Scripts/Core/Game/Module/GameActor/ProcessActorHandler.cs.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 8ef1119ffe67d423f9988b71ba3e528c
+guid: c4cfbabc72cfd0040acb0af4e6053e4e
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2

+ 7 - 0
Unity/Assets/Scripts/Core/Game/Module/GameActor/ProcessActorHandlerAttribute.cs

@@ -0,0 +1,7 @@
+namespace ET
+{
+    public class ProcessActorHandlerAttribute: BaseAttribute
+    {
+        
+    }
+}

+ 1 - 1
Unity/Assets/Scripts/Core/Singleton/ISingletonUpdate.cs.meta → Unity/Assets/Scripts/Core/Game/Module/GameActor/ProcessActorHandlerAttribute.cs.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: a6595c55919c53d47b6a79d0e24b00c1
+guid: 64e18cdb4bb9fed4f90e69bc23b62c10
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2

+ 18 - 0
Unity/Assets/Scripts/Core/Game/Module/GameActor/ProcessActorMessage.cs

@@ -0,0 +1,18 @@
+namespace ET
+{
+    public interface IProcessActorMessage
+    {
+
+    }
+    
+    public interface IProcessActorRequest
+    {
+        int ProcessId { get; set; }
+        int RpcId { get; set; }
+    }
+    
+    public interface IProcessActorResponse
+    {
+
+    }
+}

+ 11 - 0
Unity/Assets/Scripts/Core/Game/Module/GameActor/ProcessActorMessage.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: ae53893104abc3a48bb93ee61ff27b59
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 1 - 1
Unity/Assets/Scripts/Core/Module/Log.meta → Unity/Assets/Scripts/Core/Game/Module/Log.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: de55781370d7d2342912082763b105e3
+guid: 057d576e460d8e44182a6f4b62585eb0
 folderAsset: yes
 DefaultImporter:
   externalObjects: {}

+ 0 - 0
Unity/Assets/Scripts/Core/Module/Log/ILog.cs → Unity/Assets/Scripts/Core/Game/Module/Log/ILog.cs


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Log/ILog.cs.meta → Unity/Assets/Scripts/Core/Game/Module/Log/ILog.cs.meta


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Log/Log.cs → Unity/Assets/Scripts/Core/Game/Module/Log/Log.cs


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Log/Log.cs.meta → Unity/Assets/Scripts/Core/Game/Module/Log/Log.cs.meta


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Log/Logger.cs → Unity/Assets/Scripts/Core/Game/Module/Log/Logger.cs


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Log/Logger.cs.meta → Unity/Assets/Scripts/Core/Game/Module/Log/Logger.cs.meta


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Log/NLogger.cs → Unity/Assets/Scripts/Core/Game/Module/Log/NLogger.cs


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Log/NLogger.cs.meta → Unity/Assets/Scripts/Core/Game/Module/Log/NLogger.cs.meta


+ 1 - 1
Unity/Assets/Scripts/Core/Module/Network.meta → Unity/Assets/Scripts/Core/Game/Module/Network.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: cd3d3e2288d73f14ba84f19fdde8df9b
+guid: 7c722632550408348b2b382876995b75
 folderAsset: yes
 DefaultImporter:
   externalObjects: {}

+ 0 - 0
Unity/Assets/Scripts/Core/Module/Network/AChannel.cs → Unity/Assets/Scripts/Core/Game/Module/Network/AChannel.cs


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Network/AChannel.cs.meta → Unity/Assets/Scripts/Core/Game/Module/Network/AChannel.cs.meta


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Network/AService.cs → Unity/Assets/Scripts/Core/Game/Module/Network/AService.cs


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Network/AService.cs.meta → Unity/Assets/Scripts/Core/Game/Module/Network/AService.cs.meta


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Network/Circularbuffer.cs → Unity/Assets/Scripts/Core/Game/Module/Network/Circularbuffer.cs


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Network/Circularbuffer.cs.meta → Unity/Assets/Scripts/Core/Game/Module/Network/Circularbuffer.cs.meta


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Network/ErrorCore.cs → Unity/Assets/Scripts/Core/Game/Module/Network/ErrorCore.cs


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Network/ErrorCore.cs.meta → Unity/Assets/Scripts/Core/Game/Module/Network/ErrorCore.cs.meta


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Network/Extensions.cs → Unity/Assets/Scripts/Core/Game/Module/Network/Extensions.cs


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Network/Extensions.cs.meta → Unity/Assets/Scripts/Core/Game/Module/Network/Extensions.cs.meta


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Network/IPEndPointNonAlloc.cs → Unity/Assets/Scripts/Core/Game/Module/Network/IPEndPointNonAlloc.cs


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Network/IPEndPointNonAlloc.cs.meta → Unity/Assets/Scripts/Core/Game/Module/Network/IPEndPointNonAlloc.cs.meta


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Network/KChannel.cs → Unity/Assets/Scripts/Core/Game/Module/Network/KChannel.cs


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Network/KChannel.cs.meta → Unity/Assets/Scripts/Core/Game/Module/Network/KChannel.cs.meta


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Network/KService.cs → Unity/Assets/Scripts/Core/Game/Module/Network/KService.cs


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Network/KService.cs.meta → Unity/Assets/Scripts/Core/Game/Module/Network/KService.cs.meta


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Network/MessageAttribute.cs → Unity/Assets/Scripts/Core/Game/Module/Network/MessageAttribute.cs


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Network/MessageAttribute.cs.meta → Unity/Assets/Scripts/Core/Game/Module/Network/MessageAttribute.cs.meta


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Network/MessagePool.cs → Unity/Assets/Scripts/Core/Game/Module/Network/MessagePool.cs


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Network/MessagePool.cs.meta → Unity/Assets/Scripts/Core/Game/Module/Network/MessagePool.cs.meta


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Network/MessageSerializeHelper.cs → Unity/Assets/Scripts/Core/Game/Module/Network/MessageSerializeHelper.cs


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Network/MessageSerializeHelper.cs.meta → Unity/Assets/Scripts/Core/Game/Module/Network/MessageSerializeHelper.cs.meta


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Network/NetServices.cs → Unity/Assets/Scripts/Core/Game/Module/Network/NetServices.cs


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Network/NetServices.cs.meta → Unity/Assets/Scripts/Core/Game/Module/Network/NetServices.cs.meta


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Network/OpcodeRangeDefine.cs → Unity/Assets/Scripts/Core/Game/Module/Network/OpcodeRangeDefine.cs


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Network/OpcodeRangeDefine.cs.meta → Unity/Assets/Scripts/Core/Game/Module/Network/OpcodeRangeDefine.cs.meta


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Network/PacketParser.cs → Unity/Assets/Scripts/Core/Game/Module/Network/PacketParser.cs


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Network/PacketParser.cs.meta → Unity/Assets/Scripts/Core/Game/Module/Network/PacketParser.cs.meta


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Network/RpcException.cs → Unity/Assets/Scripts/Core/Game/Module/Network/RpcException.cs


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Network/RpcException.cs.meta → Unity/Assets/Scripts/Core/Game/Module/Network/RpcException.cs.meta


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Network/TChannel.cs → Unity/Assets/Scripts/Core/Game/Module/Network/TChannel.cs


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Network/TChannel.cs.meta → Unity/Assets/Scripts/Core/Game/Module/Network/TChannel.cs.meta


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Network/TService.cs → Unity/Assets/Scripts/Core/Game/Module/Network/TService.cs


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Network/TService.cs.meta → Unity/Assets/Scripts/Core/Game/Module/Network/TService.cs.meta


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Network/WChannel.cs → Unity/Assets/Scripts/Core/Game/Module/Network/WChannel.cs


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Network/WChannel.cs.meta → Unity/Assets/Scripts/Core/Game/Module/Network/WChannel.cs.meta


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Network/WService.cs → Unity/Assets/Scripts/Core/Game/Module/Network/WService.cs


+ 0 - 0
Unity/Assets/Scripts/Core/Module/Network/WService.cs.meta → Unity/Assets/Scripts/Core/Game/Module/Network/WService.cs.meta


Некоторые файлы не были показаны из-за большого количества измененных файлов