Explorar el Código

优化Proto工具 (#571)

* 优化Proto工具

1.支持summary备注
2.ResponseType配置更灵活, 不限制空格
3.代码生成格式和使用编辑器格式化的格式保持一致
4.meta文件不直接删除,以免文件变动

* proto文件优化及生成文件提交

* 优化配置文件

1.删除历史遗留配置
2.提示修复:'存在未生成的生命周期函数111'  →  '存在未生成的生命周期函数'
EP-Toushirou hace 1 año
padre
commit
1f867a073c
Se han modificado 22 ficheros con 7244 adiciones y 6529 borrados
  1. 10 40
      ET.sln.DotSettings
  2. 22 24
      Share/Analyzer/Config/DiagnosticRules.cs
  3. 171 129
      Share/Tool/Proto2CS/Proto2CS.cs
  4. 4 5
      Unity/Assets/Config/Proto/ClientMessage_C_1000.proto
  5. 11 12
      Unity/Assets/Config/Proto/InnerMessage_S_20001.proto
  6. 7 7
      Unity/Assets/Config/Proto/LockStepInner_S_21001.proto
  7. 6 7
      Unity/Assets/Config/Proto/LockStepOuter_C_11001.proto
  8. 11 11
      Unity/Assets/Config/Proto/OuterMessage_C_10001.proto
  9. 88 77
      Unity/Assets/Scripts/Model/Generate/Client/Message/ClientMessage_C_1000.cs
  10. 382 338
      Unity/Assets/Scripts/Model/Generate/Client/Message/LockStepOuter_C_11001.cs
  11. 1118 1005
      Unity/Assets/Scripts/Model/Generate/Client/Message/OuterMessage_C_10001.cs
  12. 88 77
      Unity/Assets/Scripts/Model/Generate/ClientServer/Message/ClientMessage_C_1000.cs
  13. 822 754
      Unity/Assets/Scripts/Model/Generate/ClientServer/Message/InnerMessage_S_20001.cs
  14. 287 259
      Unity/Assets/Scripts/Model/Generate/ClientServer/Message/LockStepInner_S_21001.cs
  15. 382 338
      Unity/Assets/Scripts/Model/Generate/ClientServer/Message/LockStepOuter_C_11001.cs
  16. 1118 1005
      Unity/Assets/Scripts/Model/Generate/ClientServer/Message/OuterMessage_C_10001.cs
  17. 88 77
      Unity/Assets/Scripts/Model/Generate/Server/Message/ClientMessage_C_1000.cs
  18. 822 754
      Unity/Assets/Scripts/Model/Generate/Server/Message/InnerMessage_S_20001.cs
  19. 287 259
      Unity/Assets/Scripts/Model/Generate/Server/Message/LockStepInner_S_21001.cs
  20. 382 338
      Unity/Assets/Scripts/Model/Generate/Server/Message/LockStepOuter_C_11001.cs
  21. 1118 1005
      Unity/Assets/Scripts/Model/Generate/Server/Message/OuterMessage_C_10001.cs
  22. 20 8
      Unity/Unity.sln.DotSettings

+ 10 - 40
ET.sln.DotSettings

@@ -70,8 +70,9 @@
 	<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/INDENT_METHOD_DECL_PARS/@EntryValue">NONE</s:String>
 	<s:Int64 x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/KEEP_BLANK_LINES_IN_CODE/@EntryValue">1</s:Int64>
 	<s:Int64 x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/KEEP_BLANK_LINES_IN_DECLARATIONS/@EntryValue">1</s:Int64>
+	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/KEEP_EXISTING_DECLARATION_BLOCK_ARRANGEMENT/@EntryValue">True</s:Boolean>
 	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/KEEP_EXISTING_EXPR_MEMBER_ARRANGEMENT/@EntryValue">False</s:Boolean>
-	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/KEEP_EXISTING_INITIALIZER_ARRANGEMENT/@EntryValue">False</s:Boolean>
+	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/KEEP_EXISTING_INITIALIZER_ARRANGEMENT/@EntryValue">True</s:Boolean>
 	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/KEEP_EXISTING_INVOCATION_PARENS_ARRANGEMENT/@EntryValue">False</s:Boolean>
 	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/KEEP_USER_LINEBREAKS/@EntryValue">True</s:Boolean>
 	<s:Int64 x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/MAX_ENUM_MEMBERS_ON_LINE/@EntryValue">1</s:Int64>
@@ -88,14 +89,15 @@
 	<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/REDUNDANT_THIS_QUALIFIER_STYLE/@EntryValue">ALWAYS_USE</s:String>
 	<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SIMPLE_CASE_STATEMENT_STYLE/@EntryValue">LINE_BREAK</s:String>
 	<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SIMPLE_EMBEDDED_STATEMENT_STYLE/@EntryValue">LINE_BREAK</s:String>
+	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_AROUND_ARROW_OP/@EntryValue">True</s:Boolean>
 	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_AROUND_MULTIPLICATIVE_OP/@EntryValue">True</s:Boolean>
-	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_BEFORE_CHECKED_PARENTHESES/@EntryValue">True</s:Boolean>
-	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_BEFORE_DEFAULT_PARENTHESES/@EntryValue">True</s:Boolean>
-	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_BEFORE_EXTENDS_COLON/@EntryValue">False</s:Boolean>
-	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_BEFORE_NAMEOF_PARENTHESES/@EntryValue">True</s:Boolean>
-	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_BEFORE_SIZEOF_PARENTHESES/@EntryValue">True</s:Boolean>
-	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_BEFORE_TERNARY_QUEST/@EntryValue">False</s:Boolean>
-	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_BEFORE_TYPEOF_PARENTHESES/@EntryValue">True</s:Boolean>
+	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_BEFORE_CHECKED_PARENTHESES/@EntryValue">False</s:Boolean>
+	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_BEFORE_DEFAULT_PARENTHESES/@EntryValue">False</s:Boolean>
+	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_BEFORE_EXTENDS_COLON/@EntryValue">True</s:Boolean>
+	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_BEFORE_NAMEOF_PARENTHESES/@EntryValue">False</s:Boolean>
+	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_BEFORE_SIZEOF_PARENTHESES/@EntryValue">False</s:Boolean>
+	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_BEFORE_TERNARY_QUEST/@EntryValue">True</s:Boolean>
+	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_BEFORE_TYPEOF_PARENTHESES/@EntryValue">False</s:Boolean>
 	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_WITHIN_SINGLE_LINE_ARRAY_INITIALIZER_BRACES/@EntryValue">True</s:Boolean>
 	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/STICK_COMMENT/@EntryValue">False</s:Boolean>
 	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/USE_CONTINUOUS_INDENT_INSIDE_INITIALIZER_BRACES/@EntryValue">False</s:Boolean>
@@ -1007,38 +1009,6 @@ II.2.12 &lt;HandlesEvent /&gt;&#xD;
 	<s:Boolean x:Key="/Default/Housekeeping/VsActionManager/KeyboardShortcutToVsCommand/=Subtract/@KeyIndexDefined">True</s:Boolean>
 	<s:Boolean x:Key="/Default/Housekeeping/VsActionManager/KeyboardShortcutToVsCommand/=Tab/@KeyIndexDefined">True</s:Boolean>
 	<s:Boolean x:Key="/Default/Housekeeping/VsActionManager/KeyboardShortcutToVsCommand/=Up/@KeyIndexDefined">True</s:Boolean>
-	<s:String x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=A250F653CAF27546A7BBA145E3FE2EAC/Text/@EntryValue">[ObjectSystem]
-    public class DestroySystem: DestroySystem&lt;$name$&gt;
-    {
-        protected override void Destroy($name$ self)
-        {
-            throw new System.NotImplementedException();
-        }
-    }</s:String>
-	<s:String x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=AD278F5071B8A94A8D97347126B64213/Text/@EntryValue">[ObjectSystem]
-    public class DeserializeSystem: DeserializeSystem&lt;$name$&gt;
-    {
-        protected override void Deserialize($name$ self)
-        {
-            throw new System.NotImplementedException();
-        }
-    }</s:String>
-	<s:String x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=C9AD3A6A561FAF4E9291C094532B2782/Text/@EntryValue">[ObjectSystem]
-public class AwakeSystem: AwakeSystem&lt;$name$&gt;
-    {
-        protected override void Awake($name$ self)
-        {
-            throw new System.NotImplementedException();
-        }
-    }</s:String>
-	<s:String x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=DE79363016CF7642B2EAEA51A418E7A0/Text/@EntryValue">[ObjectSystem]
-    public class UpdateSystem: UpdateSystem&lt;$name$&gt;
-    {
-        protected override void Update($name$ self)
-        {
-            throw new System.NotImplementedException();
-        }
-    }</s:String>
 	<s:Boolean x:Key="/Default/RiderDebugger/RiderRestoreDecompile/RestoreDecompileSetting/@EntryValue">False</s:Boolean>
 	<s:String x:Key="/Default/SnapshotsStore/CurrentStore/@EntryValue">C:\Users\USER-PC\AppData\Local\JetBrains\Shared\vAny\Sessions</s:String>
 	<s:Boolean x:Key="/Default/SymbolServers/RestoreDecompileSetting/@EntryValue">False</s:Boolean>

+ 22 - 24
Share/Analyzer/Config/DiagnosticRules.cs

@@ -140,12 +140,12 @@ namespace ET.Analyzer
                 new DiagnosticDescriptor(DiagnosticIds.StaticFieldDeclarationAnalyzerRule,
                     Title,
                     MessageFormat,
-                    DiagnosticCategories.All, 
+                    DiagnosticCategories.All,
                     DiagnosticSeverity.Error,
                     true,
                     Description);
     }
-    
+
     public static class CheckETCancellTokenAfterAwaitAnalyzerRule
     {
         private const string Title = "含有ETCancelToken参数的异步函数内调用await表达式后必须判断CancelToken.IsCancel";
@@ -158,38 +158,38 @@ namespace ET.Analyzer
                 new DiagnosticDescriptor(DiagnosticIds.ETCancellationTokenAnalyzerRuleId,
                     Title,
                     MessageFormat,
-                    DiagnosticCategories.All, 
+                    DiagnosticCategories.All,
                     DiagnosticSeverity.Error,
                     true,
                     Description);
     }
-    
+
     public static class AwaitExpressionCancelTokenParamAnalyzerRule
     {
         private const string Title = "含有ETCancelToken参数的异步函数内调用await表达式必须传入同一个CancelToken";
-    
+
         private const string MessageFormat = "含有ETCancelToken参数的异步函数内调用await表达式必须传入同一个CancelToken";
-    
+
         private const string Description = "含有ETCancelToken参数的异步函数内调用await表达式必须传入同一个CancelToken.";
-    
+
         public static readonly DiagnosticDescriptor Rule =
                 new DiagnosticDescriptor(DiagnosticIds.AwaitExpressionCancelTokenParamAnalyzerRuleId,
                     Title,
                     MessageFormat,
-                    DiagnosticCategories.All, 
+                    DiagnosticCategories.All,
                     DiagnosticSeverity.Error,
                     true,
                     Description);
     }
-    
+
     public static class AsyncMethodWithCancelTokenParamAnalyzerRule
     {
         private const string Title = "异步函数声明处的ETCancelToken参数禁止声明默认值";
-    
+
         private const string MessageFormat = "异步函数声明处的ETCancelToken参数禁止声明默认值";
-    
+
         private const string Description = "异步函数声明处的ETCancelToken参数禁止声明默认值.";
-    
+
         public static readonly DiagnosticDescriptor Rule =
                 new DiagnosticDescriptor(DiagnosticIds.AsyncMethodWithCancelTokenParamAnalyzerRuleId,
                     Title,
@@ -199,16 +199,15 @@ namespace ET.Analyzer
                     true,
                     Description);
     }
-    
-    
+
     public static class ExpressionWithCancelTokenParamAnalyzerRule
     {
         private const string Title = "函数调用处的ETCancelToken参数禁止传入null";
-    
+
         private const string MessageFormat = "函数调用处的ETCancelToken参数禁止传入null";
-    
+
         private const string Description = "函数调用处的ETCancelToken参数禁止传入null.";
-    
+
         public static readonly DiagnosticDescriptor Rule =
                 new DiagnosticDescriptor(DiagnosticIds.ExpressionWithCancelTokenParamAnalyzerRuleId,
                     Title,
@@ -328,7 +327,7 @@ namespace ET.Analyzer
     {
         private const string Title = "Entity类存在未生成的生命周期函数";
 
-        private const string MessageFormat = "Entity类: {0} 存在未生成的生命周期函数111";
+        private const string MessageFormat = "Entity类: {0} 存在未生成的生命周期函数";
 
         private const string Description = "Entity类存在未生成的生命周期函数.";
 
@@ -395,7 +394,7 @@ namespace ET.Analyzer
                     true,
                     Description);
     }
-    
+
     public static class EntityComponentChildAnalyzerRule
     {
         private const string Title = "实体类禁止同时标记为Component和Child";
@@ -413,7 +412,7 @@ namespace ET.Analyzer
                     true,
                     Description);
     }
-    
+
     public static class EntityCannotDeclareGenericTypeRule
     {
         private const string Title = "实体类禁止声明为泛型实体类";
@@ -431,8 +430,7 @@ namespace ET.Analyzer
                     true,
                     Description);
     }
-    
-    
+
     public static class NetMessageAnalyzerRule
     {
         private const string Title = "消息类禁止声明实体字段";
@@ -450,7 +448,7 @@ namespace ET.Analyzer
                     true,
                     Description);
     }
-    
+
     public static class DisableNewAnalyzerRule
     {
         private const string Title = "含有DisableNew标记的类禁止使用new构造对象";
@@ -468,7 +466,7 @@ namespace ET.Analyzer
                     true,
                     Description);
     }
-    
+
     public static class EntityClassDeclarationAnalyzerrRule
     {
         private const string Title = "Model/ModelView程序集禁止声明非实体类";

+ 171 - 129
Share/Tool/Proto2CS/Proto2CS.cs

@@ -2,7 +2,7 @@
 using System.Collections.Generic;
 using System.IO;
 using System.Text;
-using Microsoft.Extensions.Primitives;
+using System.Text.RegularExpressions;
 
 namespace ET
 {
@@ -16,39 +16,27 @@ namespace ET
     {
         public static void Export()
         {
-            // InnerMessage.proto生成cs代码
             InnerProto2CS.Proto2CS();
             Log.Console("proto2cs succeed!");
         }
     }
 
-    public static class InnerProto2CS
+    public static partial class InnerProto2CS
     {
         private const string protoDir = "../Unity/Assets/Config/Proto";
         private const string clientMessagePath = "../Unity/Assets/Scripts/Model/Generate/Client/Message/";
         private const string serverMessagePath = "../Unity/Assets/Scripts/Model/Generate/Server/Message/";
         private const string clientServerMessagePath = "../Unity/Assets/Scripts/Model/Generate/ClientServer/Message/";
-        private static readonly char[] splitChars = { ' ', '\t' };
-        private static readonly List<OpcodeInfo> msgOpcode = new List<OpcodeInfo>();
+        private static readonly char[] splitChars = [' ', '\t'];
+        private static readonly List<OpcodeInfo> msgOpcode = [];
 
         public static void Proto2CS()
         {
             msgOpcode.Clear();
 
-            if (Directory.Exists(clientMessagePath))
-            {
-                Directory.Delete(clientMessagePath, true);
-            }
-
-            if (Directory.Exists(serverMessagePath))
-            {
-                Directory.Delete(serverMessagePath, true);
-            }
-            
-            if (Directory.Exists(clientServerMessagePath))
-            {
-                Directory.Delete(clientServerMessagePath, true);
-            }
+            RemoveAllFilesExceptMeta(clientMessagePath);
+            RemoveAllFilesExceptMeta(serverMessagePath);
+            RemoveAllFilesExceptMeta(clientServerMessagePath);
 
             List<string> list = FileHelper.GetAllFiles(protoDir, "*proto");
             foreach (string s in list)
@@ -57,6 +45,7 @@ namespace ET
                 {
                     continue;
                 }
+
                 string fileName = Path.GetFileNameWithoutExtension(s);
                 string[] ss2 = fileName.Split('_');
                 string protoName = ss2[0];
@@ -64,56 +53,68 @@ namespace ET
                 int startOpcode = int.Parse(ss2[2]);
                 ProtoFile2CS(fileName, protoName, cs, startOpcode);
             }
+
+            RemoveUnusedMetaFiles(clientMessagePath);
+            RemoveUnusedMetaFiles(serverMessagePath);
+            RemoveUnusedMetaFiles(clientServerMessagePath);
         }
 
-        public static void ProtoFile2CS(string fileName, string protoName, string cs, int startOpcode)
+        private static void ProtoFile2CS(string fileName, string protoName, string cs, int startOpcode)
         {
-            string ns = "ET";
             msgOpcode.Clear();
+
             string proto = Path.Combine(protoDir, $"{fileName}.proto");
-            
             string s = File.ReadAllText(proto);
 
-            StringBuilder sb = new StringBuilder();
-            sb.Append("using ET;\n");
+            StringBuilder sb = new();
             sb.Append("using MemoryPack;\n");
-            sb.Append("using System.Collections.Generic;\n");
-            sb.Append($"namespace {ns}\n");
+            sb.Append("using System.Collections.Generic;\n\n");
+            sb.Append($"namespace ET\n");
             sb.Append("{\n");
-            
+
             bool isMsgStart = false;
             string msgName = "";
-            StringBuilder sbDispose = new StringBuilder();
+            string responseType = "";
+            StringBuilder sbDispose = new();
+            Regex responseTypeRegex = ResponseTypeRegex();
             foreach (string line in s.Split('\n'))
             {
                 string newline = line.Trim();
-                
-                if (newline == "")
+                if (string.IsNullOrEmpty(newline))
                 {
                     continue;
                 }
 
-                if (newline.StartsWith("//ResponseType"))
+                if (responseTypeRegex.IsMatch(newline))
                 {
-                    string responseType = line.Split(" ")[1].TrimEnd('\r', '\n');
-                    sb.Append($"\t[ResponseType(nameof({responseType}))]\n");
+                    responseType = responseTypeRegex.Replace(newline, string.Empty);
+                    responseType = responseType.Trim().Split(' ')[0].TrimEnd('\r', '\n');
                     continue;
                 }
 
-                if (newline.StartsWith("//"))
+                if (!isMsgStart && newline.StartsWith("//"))
                 {
-                    sb.Append($"{newline}\n");
+                    if (newline.StartsWith("///"))
+                    {
+                        sb.Append("\t/// <summary>\n");
+                        sb.Append($"\t/// {newline.TrimStart('/', ' ')}\n");
+                        sb.Append("\t/// </summary>\n");
+                    }
+                    else
+                    {
+                        sb.Append($"\t// {newline.TrimStart('/', ' ')}\n");
+                    }
+
                     continue;
                 }
 
                 if (newline.StartsWith("message"))
                 {
-                    string parentClass = "";
                     isMsgStart = true;
-                    
-                    msgName = newline.Split(splitChars, StringSplitOptions.RemoveEmptyEntries)[1];
-                    string[] ss = newline.Split(new[] { "//" }, StringSplitOptions.RemoveEmptyEntries);
 
+                    string parentClass = "";
+                    msgName = newline.Split(splitChars, StringSplitOptions.RemoveEmptyEntries)[1];
+                    string[] ss = newline.Split(["//"], StringSplitOptions.RemoveEmptyEntries);
                     if (ss.Length == 2)
                     {
                         parentClass = ss[1].Trim();
@@ -121,12 +122,16 @@ namespace ET
 
                     msgOpcode.Add(new OpcodeInfo() { Name = msgName, Opcode = ++startOpcode });
 
-                    sb.Append($"\t[Message({protoName}.{msgName})]\n");
                     sb.Append($"\t[MemoryPackable]\n");
-                    sb.Append($"\tpublic partial class {msgName}: MessageObject");
-                    
+                    sb.Append($"\t[Message({protoName}.{msgName})]\n");
+                    if (!string.IsNullOrEmpty(responseType))
+                    {
+                        sb.Append($"\t[ResponseType(nameof({responseType}))]\n");
+                    }
+
+                    sb.Append($"\tpublic partial class {msgName} : MessageObject");
 
-                    if (parentClass == "IActorMessage" || parentClass == "IActorRequest" || parentClass == "IActorResponse")
+                    if (parentClass is "IActorMessage" or "IActorRequest" or "IActorResponse")
                     {
                         sb.Append($", {parentClass}\n");
                     }
@@ -136,7 +141,7 @@ namespace ET
                     }
                     else
                     {
-                        sb.Append("\n");
+                        sb.Append('\n');
                     }
 
                     continue;
@@ -144,82 +149,94 @@ namespace ET
 
                 if (isMsgStart)
                 {
-                    if (newline.StartsWith("{"))
+                    if (newline.StartsWith('{'))
                     {
                         sbDispose.Clear();
                         sb.Append("\t{\n");
-                        
-                        sb.Append($"\t\tpublic static {msgName} Create(bool isFromPool = false) \n\t\t{{ \n\t\t\treturn ObjectPool.Instance.Fetch(typeof({msgName}), isFromPool) as {msgName}; \n\t\t}}\n\n");
-                        
+                        sb.Append($"\t\tpublic static {msgName} Create(bool isFromPool = false)\n\t\t{{\n\t\t\treturn ObjectPool.Instance.Fetch(typeof({msgName}), isFromPool) as {msgName};\n\t\t}}\n\n");
                         continue;
                     }
 
-                    if (newline.StartsWith("}"))
+                    if (newline.StartsWith('}'))
                     {
                         isMsgStart = false;
+                        responseType = "";
 
                         // 加了no dispose则自己去定义dispose函数,不要自动生成
                         if (!newline.Contains("// no dispose"))
                         {
-                            sb.Append(
-                                $"\t\tpublic override void Dispose() \n\t\t{{\n\t\t\tif (!this.IsFromPool) {{ return; }}\n\t\t\t{sbDispose.ToString()}\n\t\t\tObjectPool.Instance.Recycle(this); \n\t\t}}\n\n");
+                            sb.Append($"\t\tpublic override void Dispose()\n\t\t{{\n\t\t\tif (!this.IsFromPool)\n\t\t\t{{\n\t\t\t\treturn;\n\t\t\t}}\n\n\t\t\t{sbDispose.ToString().TrimEnd('\t')}\n\t\t\tObjectPool.Instance.Recycle(this);\n\t\t}}\n");
                         }
 
                         sb.Append("\t}\n\n");
                         continue;
                     }
 
-                    if (newline.Trim().StartsWith("//"))
+                    if (newline.StartsWith("//"))
                     {
-                        sb.Append($"{newline}\n");
+                        sb.Append("\t\t/// <summary>\n");
+                        sb.Append($"\t\t/// {newline.TrimStart('/', ' ')}\n");
+                        sb.Append("\t\t/// </summary>\n");
                         continue;
                     }
 
-                    if (newline.Trim() != "" && newline != "}")
+                    string memberStr;
+                    if (newline.Contains("//"))
                     {
-                        if (newline.StartsWith("map<"))
-                        {
-                            Map(sb, ns, newline, sbDispose);
-                        }
-                        else if (newline.StartsWith("repeated"))
-                        {
-                            Repeated(sb, ns, newline, sbDispose);
-                        }
-                        else
-                        {
-                            Members(sb, newline, true, sbDispose);
-                        }
+                        string[] lineSplit = newline.Split("//");
+                        memberStr = lineSplit[0].Trim();
+                        sb.Append("\t\t/// <summary>\n");
+                        sb.Append($"\t\t/// {lineSplit[1].Trim()}\n");
+                        sb.Append("\t\t/// </summary>\n");
+                    }
+                    else
+                    {
+                        memberStr = newline;
+                    }
+
+                    if (memberStr.StartsWith("map<"))
+                    {
+                        Map(sb, memberStr, sbDispose);
+                    }
+                    else if (memberStr.StartsWith("repeated"))
+                    {
+                        Repeated(sb, memberStr, sbDispose);
+                    }
+                    else
+                    {
+                        Members(sb, memberStr, sbDispose);
                     }
                 }
             }
 
-
             sb.Append("\tpublic static class " + protoName + "\n\t{\n");
             foreach (OpcodeInfo info in msgOpcode)
             {
-                sb.Append($"\t\t public const ushort {info.Name} = {info.Opcode};\n");
+                sb.Append($"\t\tpublic const ushort {info.Name} = {info.Opcode};\n");
             }
 
             sb.Append("\t}\n");
-            
 
-            sb.Append("}\n");
+            sb.Append('}');
+
+            sb.Replace("\t", "    ");
+            string result = sb.ToString().ReplaceLineEndings("\r\n");
 
-            if (cs.Contains("C"))
+            if (cs.Contains('C'))
             {
-                GenerateCS(sb, clientMessagePath, proto);
-                GenerateCS(sb, serverMessagePath, proto);
-                GenerateCS(sb, clientServerMessagePath, proto);
+                GenerateCS(result, clientMessagePath, proto);
+                GenerateCS(result, serverMessagePath, proto);
+                GenerateCS(result, clientServerMessagePath, proto);
             }
-            
-            if (cs.Contains("S"))
+
+            if (cs.Contains('S'))
             {
-                GenerateCS(sb, serverMessagePath, proto);
-                GenerateCS(sb, clientServerMessagePath, proto);
+                GenerateCS(result, serverMessagePath, proto);
+                GenerateCS(result, clientServerMessagePath, proto);
             }
         }
 
-        private static void GenerateCS(StringBuilder sb, string path, string proto)
+        private static void GenerateCS(string result, string path, string proto)
         {
             if (!Directory.Exists(path))
             {
@@ -227,36 +244,36 @@ namespace ET
             }
 
             string csPath = Path.Combine(path, Path.GetFileNameWithoutExtension(proto) + ".cs");
-            using FileStream txt = new FileStream(csPath, FileMode.Create, FileAccess.ReadWrite);
-            using StreamWriter sw = new StreamWriter(txt);
-            sw.Write(sb.ToString());
+            using FileStream txt = new(csPath, FileMode.Create, FileAccess.ReadWrite);
+            using StreamWriter sw = new(txt);
+            sw.Write(result);
         }
 
-        private static void Map(StringBuilder sb, string ns, string newline, StringBuilder sbDispose)
+        private static void Map(StringBuilder sb, string newline, StringBuilder sbDispose)
         {
-            int start = newline.IndexOf("<") + 1;
-            int end = newline.IndexOf(">");
+            int start = newline.IndexOf('<') + 1;
+            int end = newline.IndexOf('>');
             string types = newline.Substring(start, end - start);
-            string[] ss = types.Split(",");
+            string[] ss = types.Split(',');
             string keyType = ConvertType(ss[0].Trim());
             string valueType = ConvertType(ss[1].Trim());
-            string tail = newline.Substring(end + 1);
-            ss = tail.Trim().Replace(";", "").Split(" ");
+            string tail = newline[(end + 1)..];
+            ss = tail.Trim().Replace(";", "").Split(' ');
             string v = ss[0];
             int n = int.Parse(ss[2]);
-            
+
             sb.Append("\t\t[MongoDB.Bson.Serialization.Attributes.BsonDictionaryOptions(MongoDB.Bson.Serialization.Options.DictionaryRepresentation.ArrayOfArrays)]\n");
             sb.Append($"\t\t[MemoryPackOrder({n - 1})]\n");
             sb.Append($"\t\tpublic Dictionary<{keyType}, {valueType}> {v} {{ get; set; }} = new();\n");
-            
+
             sbDispose.Append($"this.{v}.Clear();\n\t\t\t");
         }
-        
-        private static void Repeated(StringBuilder sb, string ns, string newline, StringBuilder sbDispose)
+
+        private static void Repeated(StringBuilder sb, string newline, StringBuilder sbDispose)
         {
             try
             {
-                int index = newline.IndexOf(";");
+                int index = newline.IndexOf(';');
                 newline = newline.Remove(index);
                 string[] ss = newline.Split(splitChars, StringSplitOptions.RemoveEmptyEntries);
                 string type = ss[1];
@@ -266,7 +283,7 @@ namespace ET
 
                 sb.Append($"\t\t[MemoryPackOrder({n - 1})]\n");
                 sb.Append($"\t\tpublic List<{type}> {name} {{ get; set; }} = new();\n\n");
-                
+
                 sbDispose.Append($"this.{name}.Clear();\n\t\t\t");
             }
             catch (Exception e)
@@ -277,53 +294,32 @@ namespace ET
 
         private static string ConvertType(string type)
         {
-            string typeCs = "";
-            switch (type)
+            return type switch
             {
-                case "int16":
-                    typeCs = "short";
-                    break;
-                case "int32":
-                    typeCs = "int";
-                    break;
-                case "bytes":
-                    typeCs = "byte[]";
-                    break;
-                case "uint32":
-                    typeCs = "uint";
-                    break;
-                case "long":
-                    typeCs = "long";
-                    break;
-                case "int64":
-                    typeCs = "long";
-                    break;
-                case "uint64":
-                    typeCs = "ulong";
-                    break;
-                case "uint16":
-                    typeCs = "ushort";
-                    break;
-                default:
-                    typeCs = type;
-                    break;
-            }
-
-            return typeCs;
+                "int16" => "short",
+                "int32" => "int",
+                "bytes" => "byte[]",
+                "uint32" => "uint",
+                "long" => "long",
+                "int64" => "long",
+                "uint64" => "ulong",
+                "uint16" => "ushort",
+                _ => type
+            };
         }
 
-        private static void Members(StringBuilder sb, string newline, bool isRequired, StringBuilder sbDispose)
+        private static void Members(StringBuilder sb, string newline, StringBuilder sbDispose)
         {
             try
             {
-                int index = newline.IndexOf(";");
+                int index = newline.IndexOf(';');
                 newline = newline.Remove(index);
                 string[] ss = newline.Split(splitChars, StringSplitOptions.RemoveEmptyEntries);
                 string type = ss[0];
                 string name = ss[1];
                 int n = int.Parse(ss[3]);
                 string typeCs = ConvertType(type);
-                
+
                 sb.Append($"\t\t[MemoryPackOrder({n - 1})]\n");
                 sb.Append($"\t\tpublic {typeCs} {name} {{ get; set; }}\n\n");
 
@@ -343,5 +339,51 @@ namespace ET
                 Console.WriteLine($"{newline}\n {e}");
             }
         }
+
+        /// <summary>
+        /// 删除meta以外的所有文件
+        /// </summary>
+        static void RemoveAllFilesExceptMeta(string directory)
+        {
+            if (!Directory.Exists(directory))
+            {
+                return;
+            }
+
+            DirectoryInfo targetDir = new(directory);
+            FileInfo[] fileInfos = targetDir.GetFiles("*", SearchOption.AllDirectories);
+            foreach (FileInfo info in fileInfos)
+            {
+                if (!info.Name.EndsWith(".meta"))
+                {
+                    File.Delete(info.FullName);
+                }
+            }
+        }
+
+        /// <summary>
+        /// 删除多余的meta文件
+        /// </summary>
+        static void RemoveUnusedMetaFiles(string directory)
+        {
+            if (!Directory.Exists(directory))
+            {
+                return;
+            }
+
+            DirectoryInfo targetDir = new(directory);
+            FileInfo[] fileInfos = targetDir.GetFiles("*.meta", SearchOption.AllDirectories);
+            foreach (FileInfo info in fileInfos)
+            {
+                string pathWithoutMeta = info.FullName.Remove(info.FullName.LastIndexOf(".meta", StringComparison.Ordinal));
+                if (!File.Exists(pathWithoutMeta) && !Directory.Exists(pathWithoutMeta))
+                {
+                    File.Delete(info.FullName);
+                }
+            }
+        }
+
+        [GeneratedRegex(@"//\s*ResponseType")]
+        private static partial Regex ResponseTypeRegex();
     }
 }

+ 4 - 5
Unity/Assets/Config/Proto/ClientMessage_C_1000.proto

@@ -1,15 +1,14 @@
 syntax = "proto3";
-// using 
 
 package ET;
 
-//ResponseType NetClient2Main_Login
+// ResponseType NetClient2Main_Login
 message Main2NetClient_Login // IRequest
 {
 	int32 RpcId = 1;
 	int32 OwnerFiberId = 2;
-	string Account = 3;
-	string Password = 4;
+	string Account = 3;		// 账号
+	string Password = 4; 	// 密码
 }
 
 message NetClient2Main_Login // IResponse
@@ -17,6 +16,6 @@ message NetClient2Main_Login // IResponse
 	int32 RpcId = 1;
 	int32 Error = 2;
 	string Message = 3;
-	
+
 	int64 PlayerId = 4;
 }

+ 11 - 12
Unity/Assets/Config/Proto/InnerMessage_S_20001.proto

@@ -1,9 +1,8 @@
 syntax = "proto3";
-// using 
 
 package ET;
 
-//ResponseType ObjectQueryResponse
+// ResponseType ObjectQueryResponse
 message ObjectQueryRequest // IRequest
 {
 	int32 RpcId = 1;
@@ -11,7 +10,7 @@ message ObjectQueryRequest // IRequest
 	int64 InstanceId = 3;
 }
 
-//ResponseType A2M_Reload
+// ResponseType A2M_Reload
 message M2A_Reload // IRequest
 {
 	int32 RpcId = 1;
@@ -24,7 +23,7 @@ message A2M_Reload // IResponse
 	string Message = 3;
 }
 
-//ResponseType G2G_LockResponse
+// ResponseType G2G_LockResponse
 message G2G_LockRequest // IRequest
 {
 	int32 RpcId = 1;
@@ -39,7 +38,7 @@ message G2G_LockResponse // IResponse
 	string Message = 3;
 }
 
-//ResponseType G2G_LockReleaseResponse
+// ResponseType G2G_LockReleaseResponse
 message G2G_LockReleaseRequest // IRequest
 {
 	int32 RpcId = 1;
@@ -54,7 +53,7 @@ message G2G_LockReleaseResponse // IResponse
 	string Message = 3;
 }
 
-//ResponseType ObjectAddResponse
+// ResponseType ObjectAddResponse
 message ObjectAddRequest // IRequest
 {
 	int32 RpcId = 1;
@@ -70,7 +69,7 @@ message ObjectAddResponse // IResponse
 	string Message = 3;
 }
 
-//ResponseType ObjectLockResponse
+// ResponseType ObjectLockResponse
 message ObjectLockRequest // IRequest
 {
 	int32 RpcId = 1;
@@ -86,7 +85,7 @@ message ObjectLockResponse // IResponse
 	string Message = 3;
 }
 
-//ResponseType ObjectUnLockResponse
+// ResponseType ObjectUnLockResponse
 message ObjectUnLockRequest // IRequest
 {
 	int32 RpcId = 1;
@@ -102,7 +101,7 @@ message ObjectUnLockResponse // IResponse
 	string Message = 3;
 }
 
-//ResponseType ObjectRemoveResponse
+// ResponseType ObjectRemoveResponse
 message ObjectRemoveRequest // IRequest
 {
 	int32 RpcId = 1;
@@ -116,7 +115,7 @@ message ObjectRemoveResponse // IResponse
 	string Message = 3;
 }
 
-//ResponseType ObjectGetResponse
+// ResponseType ObjectGetResponse
 message ObjectGetRequest // IRequest
 {
 	int32 RpcId = 1;
@@ -132,7 +131,7 @@ message ObjectGetResponse // IResponse
 	ActorId ActorId = 5;
 }
 
-//ResponseType G2R_GetLoginKey
+// ResponseType G2R_GetLoginKey
 message R2G_GetLoginKey // IRequest
 {
 	int32 RpcId = 1;
@@ -161,7 +160,7 @@ message ObjectQueryResponse // IResponse
 	bytes Entity = 4;
 }
 
-//ResponseType M2M_UnitTransferResponse
+// ResponseType M2M_UnitTransferResponse
 message M2M_UnitTransferRequest // IRequest
 {
 	int32 RpcId = 1;

+ 7 - 7
Unity/Assets/Config/Proto/LockStepInner_S_21001.proto

@@ -1,8 +1,8 @@
 syntax = "proto3";
 package ET;
 
-// 请求匹配
-//ResponseType Match2G_Match
+/// 请求匹配
+// ResponseType Match2G_Match
 message G2Match_Match // IRequest
 {
 	int32 RpcId = 1;
@@ -17,7 +17,7 @@ message Match2G_Match // IResponse
 	string Message = 3;
 }
 
-//ResponseType Map2Match_GetRoom
+// ResponseType Map2Match_GetRoom
 message Match2Map_GetRoom // IRequest
 {
 	int32 RpcId = 1;
@@ -29,12 +29,12 @@ message Map2Match_GetRoom // IResponse
 	int32 RpcId = 1;
 	int32 Error = 2;
 	string Message = 3;
-	
-	// 房间的ActorId
+
+	/// 房间的ActorId
 	ActorId ActorId = 4;
 }
 
-//ResponseType Room2G_Reconnect
+// ResponseType Room2G_Reconnect
 message G2Room_Reconnect // IRequest
 {
 	int32 RpcId = 1;
@@ -52,7 +52,7 @@ message Room2G_Reconnect // IResponse
 	int32 Frame = 6;
 }
 
-//ResponseType Room2RoomManager_Init
+// ResponseType Room2RoomManager_Init
 message RoomManager2Room_Init // IRequest
 {
 	int32 RpcId = 1;

+ 6 - 7
Unity/Assets/Config/Proto/LockStepOuter_C_11001.proto

@@ -1,7 +1,7 @@
 syntax = "proto3";
 package ET;
 
-//ResponseType G2C_Match
+// ResponseType G2C_Match
 message C2G_Match // ISessionRequest
 {
 	int32 RpcId = 1;
@@ -14,15 +14,15 @@ message G2C_Match // ISessionResponse
 	string Message = 3;
 }
 
-// 匹配成功,通知客户端切换场景
+/// 匹配成功,通知客户端切换场景
 message Match2G_NotifyMatchSuccess // IMessage
 {
 	int32 RpcId = 1;
-	// 房间的ActorId
+	/// 房间的ActorId
 	ActorId ActorId = 2;
 }
 
-// 客户端通知房间切换场景完成
+/// 客户端通知房间切换场景完成
 message C2Room_ChangeSceneFinish // IRoomMessage
 {
 	int64 PlayerId = 1;
@@ -35,7 +35,7 @@ message LockStepUnitInfo
 	TrueSync.TSQuaternion Rotation = 3;
 }
 
-// 房间通知客户端进入战斗
+/// 房间通知客户端进入战斗
 message Room2C_Start // IMessage
 {
 	int64 StartTime = 1;
@@ -77,5 +77,4 @@ message G2C_Reconnect // IMessage
 	int64 StartTime = 1;
 	repeated LockStepUnitInfo UnitInfos = 2;
 	int32 Frame = 3;
-}
-
+}

+ 11 - 11
Unity/Assets/Config/Proto/OuterMessage_C_10001.proto

@@ -13,7 +13,7 @@ message RouterSync
 	string Address = 2;
 }
 
-//ResponseType M2C_TestResponse
+// ResponseType M2C_TestResponse
 message C2M_TestRequest // ILocationRequest
 {
 	int32 RpcId = 1;
@@ -28,7 +28,7 @@ message M2C_TestResponse // IResponse
 	string response = 4;
 }
 
-//ResponseType G2C_EnterMap
+// ResponseType G2C_EnterMap
 message C2G_EnterMap // ISessionRequest
 {
 	int32 RpcId = 1;
@@ -39,7 +39,7 @@ message G2C_EnterMap // ISessionResponse
 	int32 RpcId = 1;
 	int32 Error = 2;
 	string Message = 3;
-	// 自己unitId
+	/// 自己的UnitId
 	int64 MyId = 4;
 }
 
@@ -74,7 +74,7 @@ message M2C_CreateMyUnit // IMessage
 message M2C_StartSceneChange // IMessage
 {
 	int64 SceneInstanceId = 1;
-	string SceneName = 2;	
+	string SceneName = 2;
 }
 
 message M2C_RemoveUnits // IMessage
@@ -108,7 +108,7 @@ message M2C_Stop // IMessage
 	Unity.Mathematics.quaternion Rotation = 4;
 }
 
-//ResponseType G2C_Ping
+// ResponseType G2C_Ping
 message C2G_Ping // ISessionRequest
 {
 	int32 RpcId = 1;
@@ -127,7 +127,7 @@ message G2C_Test // ISessionMessage
 {
 }
 
-//ResponseType M2C_Reload
+// ResponseType M2C_Reload
 message C2M_Reload // ISessionRequest
 {
 	int32 RpcId = 1;
@@ -142,7 +142,7 @@ message M2C_Reload // ISessionResponse
 	string Message = 3;
 }
 
-//ResponseType R2C_Login
+// ResponseType R2C_Login
 message C2R_Login // ISessionRequest
 {
 	int32 RpcId = 1;
@@ -160,7 +160,7 @@ message R2C_Login // ISessionResponse
 	int64 GateId = 6;
 }
 
-//ResponseType G2C_LoginGate
+// ResponseType G2C_LoginGate
 message C2G_LoginGate // ISessionRequest
 {
 	int32 RpcId = 1;
@@ -181,7 +181,7 @@ message G2C_TestHotfixMessage // ISessionMessage
 	string Info = 1;
 }
 
-//ResponseType M2C_TestRobotCase
+// ResponseType M2C_TestRobotCase
 message C2M_TestRobotCase // ILocationRequest
 {
 	int32 RpcId = 1;
@@ -208,7 +208,7 @@ message M2C_TestRobotCase2 // ILocationMessage
 	int32 N = 2;
 }
 
-//ResponseType M2C_TransferMap
+// ResponseType M2C_TransferMap
 message C2M_TransferMap // ILocationRequest
 {
 	int32 RpcId = 1;
@@ -221,7 +221,7 @@ message M2C_TransferMap // ILocationResponse
 	string Message = 3;
 }
 
-//ResponseType G2C_Benchmark
+// ResponseType G2C_Benchmark
 message C2G_Benchmark // ISessionRequest
 {
 	int32 RpcId = 1;

+ 88 - 77
Unity/Assets/Scripts/Model/Generate/Client/Message/ClientMessage_C_1000.cs

@@ -1,81 +1,92 @@
-using ET;
 using MemoryPack;
 using System.Collections.Generic;
+
 namespace ET
 {
-// using
-	[ResponseType(nameof(NetClient2Main_Login))]
-	[Message(ClientMessage.Main2NetClient_Login)]
-	[MemoryPackable]
-	public partial class Main2NetClient_Login: MessageObject, IRequest
-	{
-		public static Main2NetClient_Login Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(Main2NetClient_Login), isFromPool) as Main2NetClient_Login; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int OwnerFiberId { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Account { get; set; }
-
-		[MemoryPackOrder(3)]
-		public string Password { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.OwnerFiberId = default;
-			this.Account = default;
-			this.Password = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(ClientMessage.NetClient2Main_Login)]
-	[MemoryPackable]
-	public partial class NetClient2Main_Login: MessageObject, IResponse
-	{
-		public static NetClient2Main_Login Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(NetClient2Main_Login), isFromPool) as NetClient2Main_Login; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		[MemoryPackOrder(3)]
-		public long PlayerId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			this.PlayerId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	public static class ClientMessage
-	{
-		 public const ushort Main2NetClient_Login = 1001;
-		 public const ushort NetClient2Main_Login = 1002;
-	}
-}
+    [MemoryPackable]
+    [Message(ClientMessage.Main2NetClient_Login)]
+    [ResponseType(nameof(NetClient2Main_Login))]
+    public partial class Main2NetClient_Login : MessageObject, IRequest
+    {
+        public static Main2NetClient_Login Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(Main2NetClient_Login), isFromPool) as Main2NetClient_Login;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int OwnerFiberId { get; set; }
+
+        /// <summary>
+        /// 账号
+        /// </summary>
+        [MemoryPackOrder(2)]
+        public string Account { get; set; }
+
+        /// <summary>
+        /// 密码
+        /// </summary>
+        [MemoryPackOrder(3)]
+        public string Password { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.OwnerFiberId = default;
+            this.Account = default;
+            this.Password = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(ClientMessage.NetClient2Main_Login)]
+    public partial class NetClient2Main_Login : MessageObject, IResponse
+    {
+        public static NetClient2Main_Login Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(NetClient2Main_Login), isFromPool) as NetClient2Main_Login;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        [MemoryPackOrder(3)]
+        public long PlayerId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+            this.PlayerId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    public static class ClientMessage
+    {
+        public const ushort Main2NetClient_Login = 1001;
+        public const ushort NetClient2Main_Login = 1002;
+    }
+}

+ 382 - 338
Unity/Assets/Scripts/Model/Generate/Client/Message/LockStepOuter_C_11001.cs

@@ -1,342 +1,386 @@
-using ET;
 using MemoryPack;
 using System.Collections.Generic;
+
 namespace ET
 {
-	[ResponseType(nameof(G2C_Match))]
-	[Message(LockStepOuter.C2G_Match)]
-	[MemoryPackable]
-	public partial class C2G_Match: MessageObject, ISessionRequest
-	{
-		public static C2G_Match Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2G_Match), isFromPool) as C2G_Match; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(LockStepOuter.G2C_Match)]
-	[MemoryPackable]
-	public partial class G2C_Match: MessageObject, ISessionResponse
-	{
-		public static G2C_Match Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(G2C_Match), isFromPool) as G2C_Match; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-// 匹配成功,通知客户端切换场景
-	[Message(LockStepOuter.Match2G_NotifyMatchSuccess)]
-	[MemoryPackable]
-	public partial class Match2G_NotifyMatchSuccess: MessageObject, IMessage
-	{
-		public static Match2G_NotifyMatchSuccess Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(Match2G_NotifyMatchSuccess), isFromPool) as Match2G_NotifyMatchSuccess; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-// 房间的ActorId
-		[MemoryPackOrder(1)]
-		public ActorId ActorId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.ActorId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-// 客户端通知房间切换场景完成
-	[Message(LockStepOuter.C2Room_ChangeSceneFinish)]
-	[MemoryPackable]
-	public partial class C2Room_ChangeSceneFinish: MessageObject, IRoomMessage
-	{
-		public static C2Room_ChangeSceneFinish Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2Room_ChangeSceneFinish), isFromPool) as C2Room_ChangeSceneFinish; 
-		}
-
-		[MemoryPackOrder(0)]
-		public long PlayerId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.PlayerId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(LockStepOuter.LockStepUnitInfo)]
-	[MemoryPackable]
-	public partial class LockStepUnitInfo: MessageObject
-	{
-		public static LockStepUnitInfo Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(LockStepUnitInfo), isFromPool) as LockStepUnitInfo; 
-		}
-
-		[MemoryPackOrder(0)]
-		public long PlayerId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public TrueSync.TSVector Position { get; set; }
-
-		[MemoryPackOrder(2)]
-		public TrueSync.TSQuaternion Rotation { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.PlayerId = default;
-			this.Position = default;
-			this.Rotation = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-// 房间通知客户端进入战斗
-	[Message(LockStepOuter.Room2C_Start)]
-	[MemoryPackable]
-	public partial class Room2C_Start: MessageObject, IMessage
-	{
-		public static Room2C_Start Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(Room2C_Start), isFromPool) as Room2C_Start; 
-		}
-
-		[MemoryPackOrder(0)]
-		public long StartTime { get; set; }
-
-		[MemoryPackOrder(1)]
-		public List<LockStepUnitInfo> UnitInfo { get; set; } = new();
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.StartTime = default;
-			this.UnitInfo.Clear();
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(LockStepOuter.FrameMessage)]
-	[MemoryPackable]
-	public partial class FrameMessage: MessageObject, IMessage
-	{
-		public static FrameMessage Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(FrameMessage), isFromPool) as FrameMessage; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int Frame { get; set; }
-
-		[MemoryPackOrder(1)]
-		public long PlayerId { get; set; }
-
-		[MemoryPackOrder(2)]
-		public LSInput Input { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.Frame = default;
-			this.PlayerId = default;
-			this.Input = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(LockStepOuter.OneFrameInputs)]
-	[MemoryPackable]
-	public partial class OneFrameInputs: MessageObject, IMessage
-	{
-		public static OneFrameInputs Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(OneFrameInputs), isFromPool) as OneFrameInputs; 
-		}
-
-		[MongoDB.Bson.Serialization.Attributes.BsonDictionaryOptions(MongoDB.Bson.Serialization.Options.DictionaryRepresentation.ArrayOfArrays)]
-		[MemoryPackOrder(1)]
-		public Dictionary<long, LSInput> Inputs { get; set; } = new();
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.Inputs.Clear();
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(LockStepOuter.Room2C_AdjustUpdateTime)]
-	[MemoryPackable]
-	public partial class Room2C_AdjustUpdateTime: MessageObject, IMessage
-	{
-		public static Room2C_AdjustUpdateTime Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(Room2C_AdjustUpdateTime), isFromPool) as Room2C_AdjustUpdateTime; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int DiffTime { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.DiffTime = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(LockStepOuter.C2Room_CheckHash)]
-	[MemoryPackable]
-	public partial class C2Room_CheckHash: MessageObject, IRoomMessage
-	{
-		public static C2Room_CheckHash Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2Room_CheckHash), isFromPool) as C2Room_CheckHash; 
-		}
-
-		[MemoryPackOrder(0)]
-		public long PlayerId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Frame { get; set; }
-
-		[MemoryPackOrder(2)]
-		public long Hash { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.PlayerId = default;
-			this.Frame = default;
-			this.Hash = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(LockStepOuter.Room2C_CheckHashFail)]
-	[MemoryPackable]
-	public partial class Room2C_CheckHashFail: MessageObject, IMessage
-	{
-		public static Room2C_CheckHashFail Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(Room2C_CheckHashFail), isFromPool) as Room2C_CheckHashFail; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int Frame { get; set; }
-
-		[MemoryPackOrder(1)]
-		public byte[] LSWorldBytes { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.Frame = default;
-			this.LSWorldBytes = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(LockStepOuter.G2C_Reconnect)]
-	[MemoryPackable]
-	public partial class G2C_Reconnect: MessageObject, IMessage
-	{
-		public static G2C_Reconnect Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(G2C_Reconnect), isFromPool) as G2C_Reconnect; 
-		}
-
-		[MemoryPackOrder(0)]
-		public long StartTime { get; set; }
-
-		[MemoryPackOrder(1)]
-		public List<LockStepUnitInfo> UnitInfos { get; set; } = new();
-
-		[MemoryPackOrder(2)]
-		public int Frame { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.StartTime = default;
-			this.UnitInfos.Clear();
-			this.Frame = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	public static class LockStepOuter
-	{
-		 public const ushort C2G_Match = 11002;
-		 public const ushort G2C_Match = 11003;
-		 public const ushort Match2G_NotifyMatchSuccess = 11004;
-		 public const ushort C2Room_ChangeSceneFinish = 11005;
-		 public const ushort LockStepUnitInfo = 11006;
-		 public const ushort Room2C_Start = 11007;
-		 public const ushort FrameMessage = 11008;
-		 public const ushort OneFrameInputs = 11009;
-		 public const ushort Room2C_AdjustUpdateTime = 11010;
-		 public const ushort C2Room_CheckHash = 11011;
-		 public const ushort Room2C_CheckHashFail = 11012;
-		 public const ushort G2C_Reconnect = 11013;
-	}
-}
+    [MemoryPackable]
+    [Message(LockStepOuter.C2G_Match)]
+    [ResponseType(nameof(G2C_Match))]
+    public partial class C2G_Match : MessageObject, ISessionRequest
+    {
+        public static C2G_Match Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2G_Match), isFromPool) as C2G_Match;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(LockStepOuter.G2C_Match)]
+    public partial class G2C_Match : MessageObject, ISessionResponse
+    {
+        public static G2C_Match Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(G2C_Match), isFromPool) as G2C_Match;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    /// <summary>
+    /// 匹配成功,通知客户端切换场景
+    /// </summary>
+    [MemoryPackable]
+    [Message(LockStepOuter.Match2G_NotifyMatchSuccess)]
+    public partial class Match2G_NotifyMatchSuccess : MessageObject, IMessage
+    {
+        public static Match2G_NotifyMatchSuccess Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(Match2G_NotifyMatchSuccess), isFromPool) as Match2G_NotifyMatchSuccess;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        /// <summary>
+        /// 房间的ActorId
+        /// </summary>
+        [MemoryPackOrder(1)]
+        public ActorId ActorId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.ActorId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    /// <summary>
+    /// 客户端通知房间切换场景完成
+    /// </summary>
+    [MemoryPackable]
+    [Message(LockStepOuter.C2Room_ChangeSceneFinish)]
+    public partial class C2Room_ChangeSceneFinish : MessageObject, IRoomMessage
+    {
+        public static C2Room_ChangeSceneFinish Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2Room_ChangeSceneFinish), isFromPool) as C2Room_ChangeSceneFinish;
+        }
+
+        [MemoryPackOrder(0)]
+        public long PlayerId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.PlayerId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(LockStepOuter.LockStepUnitInfo)]
+    public partial class LockStepUnitInfo : MessageObject
+    {
+        public static LockStepUnitInfo Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(LockStepUnitInfo), isFromPool) as LockStepUnitInfo;
+        }
+
+        [MemoryPackOrder(0)]
+        public long PlayerId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public TrueSync.TSVector Position { get; set; }
+
+        [MemoryPackOrder(2)]
+        public TrueSync.TSQuaternion Rotation { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.PlayerId = default;
+            this.Position = default;
+            this.Rotation = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    /// <summary>
+    /// 房间通知客户端进入战斗
+    /// </summary>
+    [MemoryPackable]
+    [Message(LockStepOuter.Room2C_Start)]
+    public partial class Room2C_Start : MessageObject, IMessage
+    {
+        public static Room2C_Start Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(Room2C_Start), isFromPool) as Room2C_Start;
+        }
+
+        [MemoryPackOrder(0)]
+        public long StartTime { get; set; }
+
+        [MemoryPackOrder(1)]
+        public List<LockStepUnitInfo> UnitInfo { get; set; } = new();
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.StartTime = default;
+            this.UnitInfo.Clear();
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(LockStepOuter.FrameMessage)]
+    public partial class FrameMessage : MessageObject, IMessage
+    {
+        public static FrameMessage Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(FrameMessage), isFromPool) as FrameMessage;
+        }
+
+        [MemoryPackOrder(0)]
+        public int Frame { get; set; }
+
+        [MemoryPackOrder(1)]
+        public long PlayerId { get; set; }
+
+        [MemoryPackOrder(2)]
+        public LSInput Input { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.Frame = default;
+            this.PlayerId = default;
+            this.Input = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(LockStepOuter.OneFrameInputs)]
+    public partial class OneFrameInputs : MessageObject, IMessage
+    {
+        public static OneFrameInputs Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(OneFrameInputs), isFromPool) as OneFrameInputs;
+        }
+
+        [MongoDB.Bson.Serialization.Attributes.BsonDictionaryOptions(MongoDB.Bson.Serialization.Options.DictionaryRepresentation.ArrayOfArrays)]
+        [MemoryPackOrder(1)]
+        public Dictionary<long, LSInput> Inputs { get; set; } = new();
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.Inputs.Clear();
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(LockStepOuter.Room2C_AdjustUpdateTime)]
+    public partial class Room2C_AdjustUpdateTime : MessageObject, IMessage
+    {
+        public static Room2C_AdjustUpdateTime Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(Room2C_AdjustUpdateTime), isFromPool) as Room2C_AdjustUpdateTime;
+        }
+
+        [MemoryPackOrder(0)]
+        public int DiffTime { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.DiffTime = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(LockStepOuter.C2Room_CheckHash)]
+    public partial class C2Room_CheckHash : MessageObject, IRoomMessage
+    {
+        public static C2Room_CheckHash Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2Room_CheckHash), isFromPool) as C2Room_CheckHash;
+        }
+
+        [MemoryPackOrder(0)]
+        public long PlayerId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Frame { get; set; }
+
+        [MemoryPackOrder(2)]
+        public long Hash { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.PlayerId = default;
+            this.Frame = default;
+            this.Hash = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(LockStepOuter.Room2C_CheckHashFail)]
+    public partial class Room2C_CheckHashFail : MessageObject, IMessage
+    {
+        public static Room2C_CheckHashFail Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(Room2C_CheckHashFail), isFromPool) as Room2C_CheckHashFail;
+        }
+
+        [MemoryPackOrder(0)]
+        public int Frame { get; set; }
+
+        [MemoryPackOrder(1)]
+        public byte[] LSWorldBytes { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.Frame = default;
+            this.LSWorldBytes = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(LockStepOuter.G2C_Reconnect)]
+    public partial class G2C_Reconnect : MessageObject, IMessage
+    {
+        public static G2C_Reconnect Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(G2C_Reconnect), isFromPool) as G2C_Reconnect;
+        }
+
+        [MemoryPackOrder(0)]
+        public long StartTime { get; set; }
+
+        [MemoryPackOrder(1)]
+        public List<LockStepUnitInfo> UnitInfos { get; set; } = new();
+
+        [MemoryPackOrder(2)]
+        public int Frame { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.StartTime = default;
+            this.UnitInfos.Clear();
+            this.Frame = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    public static class LockStepOuter
+    {
+        public const ushort C2G_Match = 11002;
+        public const ushort G2C_Match = 11003;
+        public const ushort Match2G_NotifyMatchSuccess = 11004;
+        public const ushort C2Room_ChangeSceneFinish = 11005;
+        public const ushort LockStepUnitInfo = 11006;
+        public const ushort Room2C_Start = 11007;
+        public const ushort FrameMessage = 11008;
+        public const ushort OneFrameInputs = 11009;
+        public const ushort Room2C_AdjustUpdateTime = 11010;
+        public const ushort C2Room_CheckHash = 11011;
+        public const ushort Room2C_CheckHashFail = 11012;
+        public const ushort G2C_Reconnect = 11013;
+    }
+}

+ 1118 - 1005
Unity/Assets/Scripts/Model/Generate/Client/Message/OuterMessage_C_10001.cs

@@ -1,1009 +1,1122 @@
-using ET;
 using MemoryPack;
 using System.Collections.Generic;
+
 namespace ET
 {
-	[Message(OuterMessage.HttpGetRouterResponse)]
-	[MemoryPackable]
-	public partial class HttpGetRouterResponse: MessageObject
-	{
-		public static HttpGetRouterResponse Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(HttpGetRouterResponse), isFromPool) as HttpGetRouterResponse; 
-		}
-
-		[MemoryPackOrder(0)]
-		public List<string> Realms { get; set; } = new();
-
-		[MemoryPackOrder(1)]
-		public List<string> Routers { get; set; } = new();
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.Realms.Clear();
-			this.Routers.Clear();
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.RouterSync)]
-	[MemoryPackable]
-	public partial class RouterSync: MessageObject
-	{
-		public static RouterSync Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(RouterSync), isFromPool) as RouterSync; 
-		}
-
-		[MemoryPackOrder(0)]
-		public uint ConnectId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public string Address { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.ConnectId = default;
-			this.Address = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(M2C_TestResponse))]
-	[Message(OuterMessage.C2M_TestRequest)]
-	[MemoryPackable]
-	public partial class C2M_TestRequest: MessageObject, ILocationRequest
-	{
-		public static C2M_TestRequest Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2M_TestRequest), isFromPool) as C2M_TestRequest; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public string request { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.request = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.M2C_TestResponse)]
-	[MemoryPackable]
-	public partial class M2C_TestResponse: MessageObject, IResponse
-	{
-		public static M2C_TestResponse Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(M2C_TestResponse), isFromPool) as M2C_TestResponse; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		[MemoryPackOrder(3)]
-		public string response { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			this.response = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(G2C_EnterMap))]
-	[Message(OuterMessage.C2G_EnterMap)]
-	[MemoryPackable]
-	public partial class C2G_EnterMap: MessageObject, ISessionRequest
-	{
-		public static C2G_EnterMap Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2G_EnterMap), isFromPool) as C2G_EnterMap; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.G2C_EnterMap)]
-	[MemoryPackable]
-	public partial class G2C_EnterMap: MessageObject, ISessionResponse
-	{
-		public static G2C_EnterMap Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(G2C_EnterMap), isFromPool) as G2C_EnterMap; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-// 自己unitId
-		[MemoryPackOrder(3)]
-		public long MyId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			this.MyId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.MoveInfo)]
-	[MemoryPackable]
-	public partial class MoveInfo: MessageObject
-	{
-		public static MoveInfo Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(MoveInfo), isFromPool) as MoveInfo; 
-		}
-
-		[MemoryPackOrder(0)]
-		public List<Unity.Mathematics.float3> Points { get; set; } = new();
-
-		[MemoryPackOrder(1)]
-		public Unity.Mathematics.quaternion Rotation { get; set; }
-
-		[MemoryPackOrder(2)]
-		public int TurnSpeed { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.Points.Clear();
-			this.Rotation = default;
-			this.TurnSpeed = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.UnitInfo)]
-	[MemoryPackable]
-	public partial class UnitInfo: MessageObject
-	{
-		public static UnitInfo Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(UnitInfo), isFromPool) as UnitInfo; 
-		}
-
-		[MemoryPackOrder(0)]
-		public long UnitId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int ConfigId { get; set; }
-
-		[MemoryPackOrder(2)]
-		public int Type { get; set; }
-
-		[MemoryPackOrder(3)]
-		public Unity.Mathematics.float3 Position { get; set; }
-
-		[MemoryPackOrder(4)]
-		public Unity.Mathematics.float3 Forward { get; set; }
-
-		[MongoDB.Bson.Serialization.Attributes.BsonDictionaryOptions(MongoDB.Bson.Serialization.Options.DictionaryRepresentation.ArrayOfArrays)]
-		[MemoryPackOrder(5)]
-		public Dictionary<int, long> KV { get; set; } = new();
-		[MemoryPackOrder(6)]
-		public MoveInfo MoveInfo { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.UnitId = default;
-			this.ConfigId = default;
-			this.Type = default;
-			this.Position = default;
-			this.Forward = default;
-			this.KV.Clear();
-			this.MoveInfo = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.M2C_CreateUnits)]
-	[MemoryPackable]
-	public partial class M2C_CreateUnits: MessageObject, IMessage
-	{
-		public static M2C_CreateUnits Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(M2C_CreateUnits), isFromPool) as M2C_CreateUnits; 
-		}
-
-		[MemoryPackOrder(0)]
-		public List<UnitInfo> Units { get; set; } = new();
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.Units.Clear();
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.M2C_CreateMyUnit)]
-	[MemoryPackable]
-	public partial class M2C_CreateMyUnit: MessageObject, IMessage
-	{
-		public static M2C_CreateMyUnit Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(M2C_CreateMyUnit), isFromPool) as M2C_CreateMyUnit; 
-		}
-
-		[MemoryPackOrder(0)]
-		public UnitInfo Unit { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.Unit = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.M2C_StartSceneChange)]
-	[MemoryPackable]
-	public partial class M2C_StartSceneChange: MessageObject, IMessage
-	{
-		public static M2C_StartSceneChange Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(M2C_StartSceneChange), isFromPool) as M2C_StartSceneChange; 
-		}
-
-		[MemoryPackOrder(0)]
-		public long SceneInstanceId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public string SceneName { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.SceneInstanceId = default;
-			this.SceneName = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.M2C_RemoveUnits)]
-	[MemoryPackable]
-	public partial class M2C_RemoveUnits: MessageObject, IMessage
-	{
-		public static M2C_RemoveUnits Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(M2C_RemoveUnits), isFromPool) as M2C_RemoveUnits; 
-		}
-
-		[MemoryPackOrder(0)]
-		public List<long> Units { get; set; } = new();
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.Units.Clear();
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.C2M_PathfindingResult)]
-	[MemoryPackable]
-	public partial class C2M_PathfindingResult: MessageObject, ILocationMessage
-	{
-		public static C2M_PathfindingResult Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2M_PathfindingResult), isFromPool) as C2M_PathfindingResult; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public Unity.Mathematics.float3 Position { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Position = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.C2M_Stop)]
-	[MemoryPackable]
-	public partial class C2M_Stop: MessageObject, ILocationMessage
-	{
-		public static C2M_Stop Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2M_Stop), isFromPool) as C2M_Stop; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.M2C_PathfindingResult)]
-	[MemoryPackable]
-	public partial class M2C_PathfindingResult: MessageObject, IMessage
-	{
-		public static M2C_PathfindingResult Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(M2C_PathfindingResult), isFromPool) as M2C_PathfindingResult; 
-		}
-
-		[MemoryPackOrder(0)]
-		public long Id { get; set; }
-
-		[MemoryPackOrder(1)]
-		public Unity.Mathematics.float3 Position { get; set; }
-
-		[MemoryPackOrder(2)]
-		public List<Unity.Mathematics.float3> Points { get; set; } = new();
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.Id = default;
-			this.Position = default;
-			this.Points.Clear();
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.M2C_Stop)]
-	[MemoryPackable]
-	public partial class M2C_Stop: MessageObject, IMessage
-	{
-		public static M2C_Stop Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(M2C_Stop), isFromPool) as M2C_Stop; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(1)]
-		public long Id { get; set; }
-
-		[MemoryPackOrder(2)]
-		public Unity.Mathematics.float3 Position { get; set; }
-
-		[MemoryPackOrder(3)]
-		public Unity.Mathematics.quaternion Rotation { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.Error = default;
-			this.Id = default;
-			this.Position = default;
-			this.Rotation = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(G2C_Ping))]
-	[Message(OuterMessage.C2G_Ping)]
-	[MemoryPackable]
-	public partial class C2G_Ping: MessageObject, ISessionRequest
-	{
-		public static C2G_Ping Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2G_Ping), isFromPool) as C2G_Ping; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.G2C_Ping)]
-	[MemoryPackable]
-	public partial class G2C_Ping: MessageObject, ISessionResponse
-	{
-		public static G2C_Ping Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(G2C_Ping), isFromPool) as G2C_Ping; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		[MemoryPackOrder(3)]
-		public long Time { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			this.Time = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.G2C_Test)]
-	[MemoryPackable]
-	public partial class G2C_Test: MessageObject, ISessionMessage
-	{
-		public static G2C_Test Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(G2C_Test), isFromPool) as G2C_Test; 
-		}
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(M2C_Reload))]
-	[Message(OuterMessage.C2M_Reload)]
-	[MemoryPackable]
-	public partial class C2M_Reload: MessageObject, ISessionRequest
-	{
-		public static C2M_Reload Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2M_Reload), isFromPool) as C2M_Reload; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public string Account { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Password { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Account = default;
-			this.Password = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.M2C_Reload)]
-	[MemoryPackable]
-	public partial class M2C_Reload: MessageObject, ISessionResponse
-	{
-		public static M2C_Reload Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(M2C_Reload), isFromPool) as M2C_Reload; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(R2C_Login))]
-	[Message(OuterMessage.C2R_Login)]
-	[MemoryPackable]
-	public partial class C2R_Login: MessageObject, ISessionRequest
-	{
-		public static C2R_Login Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2R_Login), isFromPool) as C2R_Login; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public string Account { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Password { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Account = default;
-			this.Password = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.R2C_Login)]
-	[MemoryPackable]
-	public partial class R2C_Login: MessageObject, ISessionResponse
-	{
-		public static R2C_Login Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(R2C_Login), isFromPool) as R2C_Login; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		[MemoryPackOrder(3)]
-		public string Address { get; set; }
-
-		[MemoryPackOrder(4)]
-		public long Key { get; set; }
-
-		[MemoryPackOrder(5)]
-		public long GateId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			this.Address = default;
-			this.Key = default;
-			this.GateId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(G2C_LoginGate))]
-	[Message(OuterMessage.C2G_LoginGate)]
-	[MemoryPackable]
-	public partial class C2G_LoginGate: MessageObject, ISessionRequest
-	{
-		public static C2G_LoginGate Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2G_LoginGate), isFromPool) as C2G_LoginGate; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public long Key { get; set; }
-
-		[MemoryPackOrder(2)]
-		public long GateId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Key = default;
-			this.GateId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.G2C_LoginGate)]
-	[MemoryPackable]
-	public partial class G2C_LoginGate: MessageObject, ISessionResponse
-	{
-		public static G2C_LoginGate Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(G2C_LoginGate), isFromPool) as G2C_LoginGate; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		[MemoryPackOrder(3)]
-		public long PlayerId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			this.PlayerId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.G2C_TestHotfixMessage)]
-	[MemoryPackable]
-	public partial class G2C_TestHotfixMessage: MessageObject, ISessionMessage
-	{
-		public static G2C_TestHotfixMessage Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(G2C_TestHotfixMessage), isFromPool) as G2C_TestHotfixMessage; 
-		}
-
-		[MemoryPackOrder(0)]
-		public string Info { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.Info = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(M2C_TestRobotCase))]
-	[Message(OuterMessage.C2M_TestRobotCase)]
-	[MemoryPackable]
-	public partial class C2M_TestRobotCase: MessageObject, ILocationRequest
-	{
-		public static C2M_TestRobotCase Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2M_TestRobotCase), isFromPool) as C2M_TestRobotCase; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int N { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.N = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.M2C_TestRobotCase)]
-	[MemoryPackable]
-	public partial class M2C_TestRobotCase: MessageObject, ILocationResponse
-	{
-		public static M2C_TestRobotCase Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(M2C_TestRobotCase), isFromPool) as M2C_TestRobotCase; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		[MemoryPackOrder(3)]
-		public int N { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			this.N = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.C2M_TestRobotCase2)]
-	[MemoryPackable]
-	public partial class C2M_TestRobotCase2: MessageObject, ILocationMessage
-	{
-		public static C2M_TestRobotCase2 Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2M_TestRobotCase2), isFromPool) as C2M_TestRobotCase2; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int N { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.N = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.M2C_TestRobotCase2)]
-	[MemoryPackable]
-	public partial class M2C_TestRobotCase2: MessageObject, ILocationMessage
-	{
-		public static M2C_TestRobotCase2 Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(M2C_TestRobotCase2), isFromPool) as M2C_TestRobotCase2; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int N { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.N = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(M2C_TransferMap))]
-	[Message(OuterMessage.C2M_TransferMap)]
-	[MemoryPackable]
-	public partial class C2M_TransferMap: MessageObject, ILocationRequest
-	{
-		public static C2M_TransferMap Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2M_TransferMap), isFromPool) as C2M_TransferMap; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.M2C_TransferMap)]
-	[MemoryPackable]
-	public partial class M2C_TransferMap: MessageObject, ILocationResponse
-	{
-		public static M2C_TransferMap Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(M2C_TransferMap), isFromPool) as M2C_TransferMap; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(G2C_Benchmark))]
-	[Message(OuterMessage.C2G_Benchmark)]
-	[MemoryPackable]
-	public partial class C2G_Benchmark: MessageObject, ISessionRequest
-	{
-		public static C2G_Benchmark Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2G_Benchmark), isFromPool) as C2G_Benchmark; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.G2C_Benchmark)]
-	[MemoryPackable]
-	public partial class G2C_Benchmark: MessageObject, ISessionResponse
-	{
-		public static G2C_Benchmark Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(G2C_Benchmark), isFromPool) as G2C_Benchmark; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	public static class OuterMessage
-	{
-		 public const ushort HttpGetRouterResponse = 10002;
-		 public const ushort RouterSync = 10003;
-		 public const ushort C2M_TestRequest = 10004;
-		 public const ushort M2C_TestResponse = 10005;
-		 public const ushort C2G_EnterMap = 10006;
-		 public const ushort G2C_EnterMap = 10007;
-		 public const ushort MoveInfo = 10008;
-		 public const ushort UnitInfo = 10009;
-		 public const ushort M2C_CreateUnits = 10010;
-		 public const ushort M2C_CreateMyUnit = 10011;
-		 public const ushort M2C_StartSceneChange = 10012;
-		 public const ushort M2C_RemoveUnits = 10013;
-		 public const ushort C2M_PathfindingResult = 10014;
-		 public const ushort C2M_Stop = 10015;
-		 public const ushort M2C_PathfindingResult = 10016;
-		 public const ushort M2C_Stop = 10017;
-		 public const ushort C2G_Ping = 10018;
-		 public const ushort G2C_Ping = 10019;
-		 public const ushort G2C_Test = 10020;
-		 public const ushort C2M_Reload = 10021;
-		 public const ushort M2C_Reload = 10022;
-		 public const ushort C2R_Login = 10023;
-		 public const ushort R2C_Login = 10024;
-		 public const ushort C2G_LoginGate = 10025;
-		 public const ushort G2C_LoginGate = 10026;
-		 public const ushort G2C_TestHotfixMessage = 10027;
-		 public const ushort C2M_TestRobotCase = 10028;
-		 public const ushort M2C_TestRobotCase = 10029;
-		 public const ushort C2M_TestRobotCase2 = 10030;
-		 public const ushort M2C_TestRobotCase2 = 10031;
-		 public const ushort C2M_TransferMap = 10032;
-		 public const ushort M2C_TransferMap = 10033;
-		 public const ushort C2G_Benchmark = 10034;
-		 public const ushort G2C_Benchmark = 10035;
-	}
-}
+    [MemoryPackable]
+    [Message(OuterMessage.HttpGetRouterResponse)]
+    public partial class HttpGetRouterResponse : MessageObject
+    {
+        public static HttpGetRouterResponse Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(HttpGetRouterResponse), isFromPool) as HttpGetRouterResponse;
+        }
+
+        [MemoryPackOrder(0)]
+        public List<string> Realms { get; set; } = new();
+
+        [MemoryPackOrder(1)]
+        public List<string> Routers { get; set; } = new();
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.Realms.Clear();
+            this.Routers.Clear();
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.RouterSync)]
+    public partial class RouterSync : MessageObject
+    {
+        public static RouterSync Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(RouterSync), isFromPool) as RouterSync;
+        }
+
+        [MemoryPackOrder(0)]
+        public uint ConnectId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public string Address { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.ConnectId = default;
+            this.Address = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.C2M_TestRequest)]
+    [ResponseType(nameof(M2C_TestResponse))]
+    public partial class C2M_TestRequest : MessageObject, ILocationRequest
+    {
+        public static C2M_TestRequest Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2M_TestRequest), isFromPool) as C2M_TestRequest;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public string request { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.request = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.M2C_TestResponse)]
+    public partial class M2C_TestResponse : MessageObject, IResponse
+    {
+        public static M2C_TestResponse Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(M2C_TestResponse), isFromPool) as M2C_TestResponse;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        [MemoryPackOrder(3)]
+        public string response { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+            this.response = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.C2G_EnterMap)]
+    [ResponseType(nameof(G2C_EnterMap))]
+    public partial class C2G_EnterMap : MessageObject, ISessionRequest
+    {
+        public static C2G_EnterMap Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2G_EnterMap), isFromPool) as C2G_EnterMap;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.G2C_EnterMap)]
+    public partial class G2C_EnterMap : MessageObject, ISessionResponse
+    {
+        public static G2C_EnterMap Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(G2C_EnterMap), isFromPool) as G2C_EnterMap;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        /// <summary>
+        /// 自己的UnitId
+        /// </summary>
+        [MemoryPackOrder(3)]
+        public long MyId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+            this.MyId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.MoveInfo)]
+    public partial class MoveInfo : MessageObject
+    {
+        public static MoveInfo Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(MoveInfo), isFromPool) as MoveInfo;
+        }
+
+        [MemoryPackOrder(0)]
+        public List<Unity.Mathematics.float3> Points { get; set; } = new();
+
+        [MemoryPackOrder(1)]
+        public Unity.Mathematics.quaternion Rotation { get; set; }
+
+        [MemoryPackOrder(2)]
+        public int TurnSpeed { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.Points.Clear();
+            this.Rotation = default;
+            this.TurnSpeed = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.UnitInfo)]
+    public partial class UnitInfo : MessageObject
+    {
+        public static UnitInfo Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(UnitInfo), isFromPool) as UnitInfo;
+        }
+
+        [MemoryPackOrder(0)]
+        public long UnitId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int ConfigId { get; set; }
+
+        [MemoryPackOrder(2)]
+        public int Type { get; set; }
+
+        [MemoryPackOrder(3)]
+        public Unity.Mathematics.float3 Position { get; set; }
+
+        [MemoryPackOrder(4)]
+        public Unity.Mathematics.float3 Forward { get; set; }
+
+        [MongoDB.Bson.Serialization.Attributes.BsonDictionaryOptions(MongoDB.Bson.Serialization.Options.DictionaryRepresentation.ArrayOfArrays)]
+        [MemoryPackOrder(5)]
+        public Dictionary<int, long> KV { get; set; } = new();
+        [MemoryPackOrder(6)]
+        public MoveInfo MoveInfo { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.UnitId = default;
+            this.ConfigId = default;
+            this.Type = default;
+            this.Position = default;
+            this.Forward = default;
+            this.KV.Clear();
+            this.MoveInfo = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.M2C_CreateUnits)]
+    public partial class M2C_CreateUnits : MessageObject, IMessage
+    {
+        public static M2C_CreateUnits Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(M2C_CreateUnits), isFromPool) as M2C_CreateUnits;
+        }
+
+        [MemoryPackOrder(0)]
+        public List<UnitInfo> Units { get; set; } = new();
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.Units.Clear();
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.M2C_CreateMyUnit)]
+    public partial class M2C_CreateMyUnit : MessageObject, IMessage
+    {
+        public static M2C_CreateMyUnit Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(M2C_CreateMyUnit), isFromPool) as M2C_CreateMyUnit;
+        }
+
+        [MemoryPackOrder(0)]
+        public UnitInfo Unit { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.Unit = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.M2C_StartSceneChange)]
+    public partial class M2C_StartSceneChange : MessageObject, IMessage
+    {
+        public static M2C_StartSceneChange Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(M2C_StartSceneChange), isFromPool) as M2C_StartSceneChange;
+        }
+
+        [MemoryPackOrder(0)]
+        public long SceneInstanceId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public string SceneName { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.SceneInstanceId = default;
+            this.SceneName = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.M2C_RemoveUnits)]
+    public partial class M2C_RemoveUnits : MessageObject, IMessage
+    {
+        public static M2C_RemoveUnits Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(M2C_RemoveUnits), isFromPool) as M2C_RemoveUnits;
+        }
+
+        [MemoryPackOrder(0)]
+        public List<long> Units { get; set; } = new();
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.Units.Clear();
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.C2M_PathfindingResult)]
+    public partial class C2M_PathfindingResult : MessageObject, ILocationMessage
+    {
+        public static C2M_PathfindingResult Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2M_PathfindingResult), isFromPool) as C2M_PathfindingResult;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public Unity.Mathematics.float3 Position { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Position = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.C2M_Stop)]
+    public partial class C2M_Stop : MessageObject, ILocationMessage
+    {
+        public static C2M_Stop Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2M_Stop), isFromPool) as C2M_Stop;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.M2C_PathfindingResult)]
+    public partial class M2C_PathfindingResult : MessageObject, IMessage
+    {
+        public static M2C_PathfindingResult Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(M2C_PathfindingResult), isFromPool) as M2C_PathfindingResult;
+        }
+
+        [MemoryPackOrder(0)]
+        public long Id { get; set; }
+
+        [MemoryPackOrder(1)]
+        public Unity.Mathematics.float3 Position { get; set; }
+
+        [MemoryPackOrder(2)]
+        public List<Unity.Mathematics.float3> Points { get; set; } = new();
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.Id = default;
+            this.Position = default;
+            this.Points.Clear();
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.M2C_Stop)]
+    public partial class M2C_Stop : MessageObject, IMessage
+    {
+        public static M2C_Stop Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(M2C_Stop), isFromPool) as M2C_Stop;
+        }
+
+        [MemoryPackOrder(0)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(1)]
+        public long Id { get; set; }
+
+        [MemoryPackOrder(2)]
+        public Unity.Mathematics.float3 Position { get; set; }
+
+        [MemoryPackOrder(3)]
+        public Unity.Mathematics.quaternion Rotation { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.Error = default;
+            this.Id = default;
+            this.Position = default;
+            this.Rotation = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.C2G_Ping)]
+    [ResponseType(nameof(G2C_Ping))]
+    public partial class C2G_Ping : MessageObject, ISessionRequest
+    {
+        public static C2G_Ping Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2G_Ping), isFromPool) as C2G_Ping;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.G2C_Ping)]
+    public partial class G2C_Ping : MessageObject, ISessionResponse
+    {
+        public static G2C_Ping Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(G2C_Ping), isFromPool) as G2C_Ping;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        [MemoryPackOrder(3)]
+        public long Time { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+            this.Time = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.G2C_Test)]
+    public partial class G2C_Test : MessageObject, ISessionMessage
+    {
+        public static G2C_Test Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(G2C_Test), isFromPool) as G2C_Test;
+        }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.C2M_Reload)]
+    [ResponseType(nameof(M2C_Reload))]
+    public partial class C2M_Reload : MessageObject, ISessionRequest
+    {
+        public static C2M_Reload Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2M_Reload), isFromPool) as C2M_Reload;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public string Account { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Password { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Account = default;
+            this.Password = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.M2C_Reload)]
+    public partial class M2C_Reload : MessageObject, ISessionResponse
+    {
+        public static M2C_Reload Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(M2C_Reload), isFromPool) as M2C_Reload;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.C2R_Login)]
+    [ResponseType(nameof(R2C_Login))]
+    public partial class C2R_Login : MessageObject, ISessionRequest
+    {
+        public static C2R_Login Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2R_Login), isFromPool) as C2R_Login;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        /// <summary>
+        /// 帐号
+        /// </summary>
+        [MemoryPackOrder(1)]
+        public string Account { get; set; }
+
+        /// <summary>
+        /// 密码
+        /// </summary>
+        [MemoryPackOrder(2)]
+        public string Password { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Account = default;
+            this.Password = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.R2C_Login)]
+    public partial class R2C_Login : MessageObject, ISessionResponse
+    {
+        public static R2C_Login Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(R2C_Login), isFromPool) as R2C_Login;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        [MemoryPackOrder(3)]
+        public string Address { get; set; }
+
+        [MemoryPackOrder(4)]
+        public long Key { get; set; }
+
+        [MemoryPackOrder(5)]
+        public long GateId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+            this.Address = default;
+            this.Key = default;
+            this.GateId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.C2G_LoginGate)]
+    [ResponseType(nameof(G2C_LoginGate))]
+    public partial class C2G_LoginGate : MessageObject, ISessionRequest
+    {
+        public static C2G_LoginGate Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2G_LoginGate), isFromPool) as C2G_LoginGate;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        /// <summary>
+        /// 帐号
+        /// </summary>
+        [MemoryPackOrder(1)]
+        public long Key { get; set; }
+
+        [MemoryPackOrder(2)]
+        public long GateId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Key = default;
+            this.GateId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.G2C_LoginGate)]
+    public partial class G2C_LoginGate : MessageObject, ISessionResponse
+    {
+        public static G2C_LoginGate Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(G2C_LoginGate), isFromPool) as G2C_LoginGate;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        [MemoryPackOrder(3)]
+        public long PlayerId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+            this.PlayerId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.G2C_TestHotfixMessage)]
+    public partial class G2C_TestHotfixMessage : MessageObject, ISessionMessage
+    {
+        public static G2C_TestHotfixMessage Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(G2C_TestHotfixMessage), isFromPool) as G2C_TestHotfixMessage;
+        }
+
+        [MemoryPackOrder(0)]
+        public string Info { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.Info = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.C2M_TestRobotCase)]
+    [ResponseType(nameof(M2C_TestRobotCase))]
+    public partial class C2M_TestRobotCase : MessageObject, ILocationRequest
+    {
+        public static C2M_TestRobotCase Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2M_TestRobotCase), isFromPool) as C2M_TestRobotCase;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int N { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.N = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.M2C_TestRobotCase)]
+    public partial class M2C_TestRobotCase : MessageObject, ILocationResponse
+    {
+        public static M2C_TestRobotCase Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(M2C_TestRobotCase), isFromPool) as M2C_TestRobotCase;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        [MemoryPackOrder(3)]
+        public int N { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+            this.N = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.C2M_TestRobotCase2)]
+    public partial class C2M_TestRobotCase2 : MessageObject, ILocationMessage
+    {
+        public static C2M_TestRobotCase2 Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2M_TestRobotCase2), isFromPool) as C2M_TestRobotCase2;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int N { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.N = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.M2C_TestRobotCase2)]
+    public partial class M2C_TestRobotCase2 : MessageObject, ILocationMessage
+    {
+        public static M2C_TestRobotCase2 Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(M2C_TestRobotCase2), isFromPool) as M2C_TestRobotCase2;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int N { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.N = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.C2M_TransferMap)]
+    [ResponseType(nameof(M2C_TransferMap))]
+    public partial class C2M_TransferMap : MessageObject, ILocationRequest
+    {
+        public static C2M_TransferMap Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2M_TransferMap), isFromPool) as C2M_TransferMap;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.M2C_TransferMap)]
+    public partial class M2C_TransferMap : MessageObject, ILocationResponse
+    {
+        public static M2C_TransferMap Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(M2C_TransferMap), isFromPool) as M2C_TransferMap;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.C2G_Benchmark)]
+    [ResponseType(nameof(G2C_Benchmark))]
+    public partial class C2G_Benchmark : MessageObject, ISessionRequest
+    {
+        public static C2G_Benchmark Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2G_Benchmark), isFromPool) as C2G_Benchmark;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.G2C_Benchmark)]
+    public partial class G2C_Benchmark : MessageObject, ISessionResponse
+    {
+        public static G2C_Benchmark Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(G2C_Benchmark), isFromPool) as G2C_Benchmark;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    public static class OuterMessage
+    {
+        public const ushort HttpGetRouterResponse = 10002;
+        public const ushort RouterSync = 10003;
+        public const ushort C2M_TestRequest = 10004;
+        public const ushort M2C_TestResponse = 10005;
+        public const ushort C2G_EnterMap = 10006;
+        public const ushort G2C_EnterMap = 10007;
+        public const ushort MoveInfo = 10008;
+        public const ushort UnitInfo = 10009;
+        public const ushort M2C_CreateUnits = 10010;
+        public const ushort M2C_CreateMyUnit = 10011;
+        public const ushort M2C_StartSceneChange = 10012;
+        public const ushort M2C_RemoveUnits = 10013;
+        public const ushort C2M_PathfindingResult = 10014;
+        public const ushort C2M_Stop = 10015;
+        public const ushort M2C_PathfindingResult = 10016;
+        public const ushort M2C_Stop = 10017;
+        public const ushort C2G_Ping = 10018;
+        public const ushort G2C_Ping = 10019;
+        public const ushort G2C_Test = 10020;
+        public const ushort C2M_Reload = 10021;
+        public const ushort M2C_Reload = 10022;
+        public const ushort C2R_Login = 10023;
+        public const ushort R2C_Login = 10024;
+        public const ushort C2G_LoginGate = 10025;
+        public const ushort G2C_LoginGate = 10026;
+        public const ushort G2C_TestHotfixMessage = 10027;
+        public const ushort C2M_TestRobotCase = 10028;
+        public const ushort M2C_TestRobotCase = 10029;
+        public const ushort C2M_TestRobotCase2 = 10030;
+        public const ushort M2C_TestRobotCase2 = 10031;
+        public const ushort C2M_TransferMap = 10032;
+        public const ushort M2C_TransferMap = 10033;
+        public const ushort C2G_Benchmark = 10034;
+        public const ushort G2C_Benchmark = 10035;
+    }
+}

+ 88 - 77
Unity/Assets/Scripts/Model/Generate/ClientServer/Message/ClientMessage_C_1000.cs

@@ -1,81 +1,92 @@
-using ET;
 using MemoryPack;
 using System.Collections.Generic;
+
 namespace ET
 {
-// using
-	[ResponseType(nameof(NetClient2Main_Login))]
-	[Message(ClientMessage.Main2NetClient_Login)]
-	[MemoryPackable]
-	public partial class Main2NetClient_Login: MessageObject, IRequest
-	{
-		public static Main2NetClient_Login Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(Main2NetClient_Login), isFromPool) as Main2NetClient_Login; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int OwnerFiberId { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Account { get; set; }
-
-		[MemoryPackOrder(3)]
-		public string Password { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.OwnerFiberId = default;
-			this.Account = default;
-			this.Password = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(ClientMessage.NetClient2Main_Login)]
-	[MemoryPackable]
-	public partial class NetClient2Main_Login: MessageObject, IResponse
-	{
-		public static NetClient2Main_Login Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(NetClient2Main_Login), isFromPool) as NetClient2Main_Login; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		[MemoryPackOrder(3)]
-		public long PlayerId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			this.PlayerId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	public static class ClientMessage
-	{
-		 public const ushort Main2NetClient_Login = 1001;
-		 public const ushort NetClient2Main_Login = 1002;
-	}
-}
+    [MemoryPackable]
+    [Message(ClientMessage.Main2NetClient_Login)]
+    [ResponseType(nameof(NetClient2Main_Login))]
+    public partial class Main2NetClient_Login : MessageObject, IRequest
+    {
+        public static Main2NetClient_Login Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(Main2NetClient_Login), isFromPool) as Main2NetClient_Login;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int OwnerFiberId { get; set; }
+
+        /// <summary>
+        /// 账号
+        /// </summary>
+        [MemoryPackOrder(2)]
+        public string Account { get; set; }
+
+        /// <summary>
+        /// 密码
+        /// </summary>
+        [MemoryPackOrder(3)]
+        public string Password { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.OwnerFiberId = default;
+            this.Account = default;
+            this.Password = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(ClientMessage.NetClient2Main_Login)]
+    public partial class NetClient2Main_Login : MessageObject, IResponse
+    {
+        public static NetClient2Main_Login Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(NetClient2Main_Login), isFromPool) as NetClient2Main_Login;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        [MemoryPackOrder(3)]
+        public long PlayerId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+            this.PlayerId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    public static class ClientMessage
+    {
+        public const ushort Main2NetClient_Login = 1001;
+        public const ushort NetClient2Main_Login = 1002;
+    }
+}

+ 822 - 754
Unity/Assets/Scripts/Model/Generate/ClientServer/Message/InnerMessage_S_20001.cs

@@ -1,758 +1,826 @@
-using ET;
 using MemoryPack;
 using System.Collections.Generic;
+
 namespace ET
 {
-// using
-	[ResponseType(nameof(ObjectQueryResponse))]
-	[Message(InnerMessage.ObjectQueryRequest)]
-	[MemoryPackable]
-	public partial class ObjectQueryRequest: MessageObject, IRequest
-	{
-		public static ObjectQueryRequest Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(ObjectQueryRequest), isFromPool) as ObjectQueryRequest; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public long Key { get; set; }
-
-		[MemoryPackOrder(2)]
-		public long InstanceId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Key = default;
-			this.InstanceId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(A2M_Reload))]
-	[Message(InnerMessage.M2A_Reload)]
-	[MemoryPackable]
-	public partial class M2A_Reload: MessageObject, IRequest
-	{
-		public static M2A_Reload Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(M2A_Reload), isFromPool) as M2A_Reload; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(InnerMessage.A2M_Reload)]
-	[MemoryPackable]
-	public partial class A2M_Reload: MessageObject, IResponse
-	{
-		public static A2M_Reload Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(A2M_Reload), isFromPool) as A2M_Reload; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(G2G_LockResponse))]
-	[Message(InnerMessage.G2G_LockRequest)]
-	[MemoryPackable]
-	public partial class G2G_LockRequest: MessageObject, IRequest
-	{
-		public static G2G_LockRequest Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(G2G_LockRequest), isFromPool) as G2G_LockRequest; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public long Id { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Address { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Id = default;
-			this.Address = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(InnerMessage.G2G_LockResponse)]
-	[MemoryPackable]
-	public partial class G2G_LockResponse: MessageObject, IResponse
-	{
-		public static G2G_LockResponse Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(G2G_LockResponse), isFromPool) as G2G_LockResponse; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(G2G_LockReleaseResponse))]
-	[Message(InnerMessage.G2G_LockReleaseRequest)]
-	[MemoryPackable]
-	public partial class G2G_LockReleaseRequest: MessageObject, IRequest
-	{
-		public static G2G_LockReleaseRequest Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(G2G_LockReleaseRequest), isFromPool) as G2G_LockReleaseRequest; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public long Id { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Address { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Id = default;
-			this.Address = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(InnerMessage.G2G_LockReleaseResponse)]
-	[MemoryPackable]
-	public partial class G2G_LockReleaseResponse: MessageObject, IResponse
-	{
-		public static G2G_LockReleaseResponse Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(G2G_LockReleaseResponse), isFromPool) as G2G_LockReleaseResponse; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(ObjectAddResponse))]
-	[Message(InnerMessage.ObjectAddRequest)]
-	[MemoryPackable]
-	public partial class ObjectAddRequest: MessageObject, IRequest
-	{
-		public static ObjectAddRequest Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(ObjectAddRequest), isFromPool) as ObjectAddRequest; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Type { get; set; }
-
-		[MemoryPackOrder(2)]
-		public long Key { get; set; }
-
-		[MemoryPackOrder(3)]
-		public ActorId ActorId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Type = default;
-			this.Key = default;
-			this.ActorId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(InnerMessage.ObjectAddResponse)]
-	[MemoryPackable]
-	public partial class ObjectAddResponse: MessageObject, IResponse
-	{
-		public static ObjectAddResponse Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(ObjectAddResponse), isFromPool) as ObjectAddResponse; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(ObjectLockResponse))]
-	[Message(InnerMessage.ObjectLockRequest)]
-	[MemoryPackable]
-	public partial class ObjectLockRequest: MessageObject, IRequest
-	{
-		public static ObjectLockRequest Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(ObjectLockRequest), isFromPool) as ObjectLockRequest; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Type { get; set; }
-
-		[MemoryPackOrder(2)]
-		public long Key { get; set; }
-
-		[MemoryPackOrder(3)]
-		public ActorId ActorId { get; set; }
-
-		[MemoryPackOrder(4)]
-		public int Time { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Type = default;
-			this.Key = default;
-			this.ActorId = default;
-			this.Time = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(InnerMessage.ObjectLockResponse)]
-	[MemoryPackable]
-	public partial class ObjectLockResponse: MessageObject, IResponse
-	{
-		public static ObjectLockResponse Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(ObjectLockResponse), isFromPool) as ObjectLockResponse; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(ObjectUnLockResponse))]
-	[Message(InnerMessage.ObjectUnLockRequest)]
-	[MemoryPackable]
-	public partial class ObjectUnLockRequest: MessageObject, IRequest
-	{
-		public static ObjectUnLockRequest Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(ObjectUnLockRequest), isFromPool) as ObjectUnLockRequest; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Type { get; set; }
-
-		[MemoryPackOrder(2)]
-		public long Key { get; set; }
-
-		[MemoryPackOrder(3)]
-		public ActorId OldActorId { get; set; }
-
-		[MemoryPackOrder(4)]
-		public ActorId NewActorId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Type = default;
-			this.Key = default;
-			this.OldActorId = default;
-			this.NewActorId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(InnerMessage.ObjectUnLockResponse)]
-	[MemoryPackable]
-	public partial class ObjectUnLockResponse: MessageObject, IResponse
-	{
-		public static ObjectUnLockResponse Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(ObjectUnLockResponse), isFromPool) as ObjectUnLockResponse; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(ObjectRemoveResponse))]
-	[Message(InnerMessage.ObjectRemoveRequest)]
-	[MemoryPackable]
-	public partial class ObjectRemoveRequest: MessageObject, IRequest
-	{
-		public static ObjectRemoveRequest Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(ObjectRemoveRequest), isFromPool) as ObjectRemoveRequest; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Type { get; set; }
-
-		[MemoryPackOrder(2)]
-		public long Key { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Type = default;
-			this.Key = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(InnerMessage.ObjectRemoveResponse)]
-	[MemoryPackable]
-	public partial class ObjectRemoveResponse: MessageObject, IResponse
-	{
-		public static ObjectRemoveResponse Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(ObjectRemoveResponse), isFromPool) as ObjectRemoveResponse; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(ObjectGetResponse))]
-	[Message(InnerMessage.ObjectGetRequest)]
-	[MemoryPackable]
-	public partial class ObjectGetRequest: MessageObject, IRequest
-	{
-		public static ObjectGetRequest Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(ObjectGetRequest), isFromPool) as ObjectGetRequest; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Type { get; set; }
-
-		[MemoryPackOrder(2)]
-		public long Key { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Type = default;
-			this.Key = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(InnerMessage.ObjectGetResponse)]
-	[MemoryPackable]
-	public partial class ObjectGetResponse: MessageObject, IResponse
-	{
-		public static ObjectGetResponse Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(ObjectGetResponse), isFromPool) as ObjectGetResponse; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		[MemoryPackOrder(3)]
-		public int Type { get; set; }
-
-		[MemoryPackOrder(4)]
-		public ActorId ActorId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			this.Type = default;
-			this.ActorId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(G2R_GetLoginKey))]
-	[Message(InnerMessage.R2G_GetLoginKey)]
-	[MemoryPackable]
-	public partial class R2G_GetLoginKey: MessageObject, IRequest
-	{
-		public static R2G_GetLoginKey Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(R2G_GetLoginKey), isFromPool) as R2G_GetLoginKey; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public string Account { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Account = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(InnerMessage.G2R_GetLoginKey)]
-	[MemoryPackable]
-	public partial class G2R_GetLoginKey: MessageObject, IResponse
-	{
-		public static G2R_GetLoginKey Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(G2R_GetLoginKey), isFromPool) as G2R_GetLoginKey; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		[MemoryPackOrder(3)]
-		public long Key { get; set; }
-
-		[MemoryPackOrder(4)]
-		public long GateId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			this.Key = default;
-			this.GateId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(InnerMessage.G2M_SessionDisconnect)]
-	[MemoryPackable]
-	public partial class G2M_SessionDisconnect: MessageObject, ILocationMessage
-	{
-		public static G2M_SessionDisconnect Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(G2M_SessionDisconnect), isFromPool) as G2M_SessionDisconnect; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(InnerMessage.ObjectQueryResponse)]
-	[MemoryPackable]
-	public partial class ObjectQueryResponse: MessageObject, IResponse
-	{
-		public static ObjectQueryResponse Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(ObjectQueryResponse), isFromPool) as ObjectQueryResponse; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		[MemoryPackOrder(3)]
-		public byte[] Entity { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			this.Entity = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(M2M_UnitTransferResponse))]
-	[Message(InnerMessage.M2M_UnitTransferRequest)]
-	[MemoryPackable]
-	public partial class M2M_UnitTransferRequest: MessageObject, IRequest
-	{
-		public static M2M_UnitTransferRequest Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(M2M_UnitTransferRequest), isFromPool) as M2M_UnitTransferRequest; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public ActorId OldActorId { get; set; }
-
-		[MemoryPackOrder(2)]
-		public byte[] Unit { get; set; }
-
-		[MemoryPackOrder(3)]
-		public List<byte[]> Entitys { get; set; } = new();
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.OldActorId = default;
-			this.Unit = default;
-			this.Entitys.Clear();
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(InnerMessage.M2M_UnitTransferResponse)]
-	[MemoryPackable]
-	public partial class M2M_UnitTransferResponse: MessageObject, IResponse
-	{
-		public static M2M_UnitTransferResponse Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(M2M_UnitTransferResponse), isFromPool) as M2M_UnitTransferResponse; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	public static class InnerMessage
-	{
-		 public const ushort ObjectQueryRequest = 20002;
-		 public const ushort M2A_Reload = 20003;
-		 public const ushort A2M_Reload = 20004;
-		 public const ushort G2G_LockRequest = 20005;
-		 public const ushort G2G_LockResponse = 20006;
-		 public const ushort G2G_LockReleaseRequest = 20007;
-		 public const ushort G2G_LockReleaseResponse = 20008;
-		 public const ushort ObjectAddRequest = 20009;
-		 public const ushort ObjectAddResponse = 20010;
-		 public const ushort ObjectLockRequest = 20011;
-		 public const ushort ObjectLockResponse = 20012;
-		 public const ushort ObjectUnLockRequest = 20013;
-		 public const ushort ObjectUnLockResponse = 20014;
-		 public const ushort ObjectRemoveRequest = 20015;
-		 public const ushort ObjectRemoveResponse = 20016;
-		 public const ushort ObjectGetRequest = 20017;
-		 public const ushort ObjectGetResponse = 20018;
-		 public const ushort R2G_GetLoginKey = 20019;
-		 public const ushort G2R_GetLoginKey = 20020;
-		 public const ushort G2M_SessionDisconnect = 20021;
-		 public const ushort ObjectQueryResponse = 20022;
-		 public const ushort M2M_UnitTransferRequest = 20023;
-		 public const ushort M2M_UnitTransferResponse = 20024;
-	}
-}
+    [MemoryPackable]
+    [Message(InnerMessage.ObjectQueryRequest)]
+    [ResponseType(nameof(ObjectQueryResponse))]
+    public partial class ObjectQueryRequest : MessageObject, IRequest
+    {
+        public static ObjectQueryRequest Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(ObjectQueryRequest), isFromPool) as ObjectQueryRequest;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public long Key { get; set; }
+
+        [MemoryPackOrder(2)]
+        public long InstanceId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Key = default;
+            this.InstanceId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.M2A_Reload)]
+    [ResponseType(nameof(A2M_Reload))]
+    public partial class M2A_Reload : MessageObject, IRequest
+    {
+        public static M2A_Reload Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(M2A_Reload), isFromPool) as M2A_Reload;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.A2M_Reload)]
+    public partial class A2M_Reload : MessageObject, IResponse
+    {
+        public static A2M_Reload Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(A2M_Reload), isFromPool) as A2M_Reload;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.G2G_LockRequest)]
+    [ResponseType(nameof(G2G_LockResponse))]
+    public partial class G2G_LockRequest : MessageObject, IRequest
+    {
+        public static G2G_LockRequest Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(G2G_LockRequest), isFromPool) as G2G_LockRequest;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public long Id { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Address { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Id = default;
+            this.Address = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.G2G_LockResponse)]
+    public partial class G2G_LockResponse : MessageObject, IResponse
+    {
+        public static G2G_LockResponse Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(G2G_LockResponse), isFromPool) as G2G_LockResponse;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.G2G_LockReleaseRequest)]
+    [ResponseType(nameof(G2G_LockReleaseResponse))]
+    public partial class G2G_LockReleaseRequest : MessageObject, IRequest
+    {
+        public static G2G_LockReleaseRequest Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(G2G_LockReleaseRequest), isFromPool) as G2G_LockReleaseRequest;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public long Id { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Address { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Id = default;
+            this.Address = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.G2G_LockReleaseResponse)]
+    public partial class G2G_LockReleaseResponse : MessageObject, IResponse
+    {
+        public static G2G_LockReleaseResponse Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(G2G_LockReleaseResponse), isFromPool) as G2G_LockReleaseResponse;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.ObjectAddRequest)]
+    [ResponseType(nameof(ObjectAddResponse))]
+    public partial class ObjectAddRequest : MessageObject, IRequest
+    {
+        public static ObjectAddRequest Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(ObjectAddRequest), isFromPool) as ObjectAddRequest;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Type { get; set; }
+
+        [MemoryPackOrder(2)]
+        public long Key { get; set; }
+
+        [MemoryPackOrder(3)]
+        public ActorId ActorId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Type = default;
+            this.Key = default;
+            this.ActorId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.ObjectAddResponse)]
+    public partial class ObjectAddResponse : MessageObject, IResponse
+    {
+        public static ObjectAddResponse Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(ObjectAddResponse), isFromPool) as ObjectAddResponse;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.ObjectLockRequest)]
+    [ResponseType(nameof(ObjectLockResponse))]
+    public partial class ObjectLockRequest : MessageObject, IRequest
+    {
+        public static ObjectLockRequest Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(ObjectLockRequest), isFromPool) as ObjectLockRequest;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Type { get; set; }
+
+        [MemoryPackOrder(2)]
+        public long Key { get; set; }
+
+        [MemoryPackOrder(3)]
+        public ActorId ActorId { get; set; }
+
+        [MemoryPackOrder(4)]
+        public int Time { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Type = default;
+            this.Key = default;
+            this.ActorId = default;
+            this.Time = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.ObjectLockResponse)]
+    public partial class ObjectLockResponse : MessageObject, IResponse
+    {
+        public static ObjectLockResponse Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(ObjectLockResponse), isFromPool) as ObjectLockResponse;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.ObjectUnLockRequest)]
+    [ResponseType(nameof(ObjectUnLockResponse))]
+    public partial class ObjectUnLockRequest : MessageObject, IRequest
+    {
+        public static ObjectUnLockRequest Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(ObjectUnLockRequest), isFromPool) as ObjectUnLockRequest;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Type { get; set; }
+
+        [MemoryPackOrder(2)]
+        public long Key { get; set; }
+
+        [MemoryPackOrder(3)]
+        public ActorId OldActorId { get; set; }
+
+        [MemoryPackOrder(4)]
+        public ActorId NewActorId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Type = default;
+            this.Key = default;
+            this.OldActorId = default;
+            this.NewActorId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.ObjectUnLockResponse)]
+    public partial class ObjectUnLockResponse : MessageObject, IResponse
+    {
+        public static ObjectUnLockResponse Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(ObjectUnLockResponse), isFromPool) as ObjectUnLockResponse;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.ObjectRemoveRequest)]
+    [ResponseType(nameof(ObjectRemoveResponse))]
+    public partial class ObjectRemoveRequest : MessageObject, IRequest
+    {
+        public static ObjectRemoveRequest Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(ObjectRemoveRequest), isFromPool) as ObjectRemoveRequest;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Type { get; set; }
+
+        [MemoryPackOrder(2)]
+        public long Key { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Type = default;
+            this.Key = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.ObjectRemoveResponse)]
+    public partial class ObjectRemoveResponse : MessageObject, IResponse
+    {
+        public static ObjectRemoveResponse Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(ObjectRemoveResponse), isFromPool) as ObjectRemoveResponse;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.ObjectGetRequest)]
+    [ResponseType(nameof(ObjectGetResponse))]
+    public partial class ObjectGetRequest : MessageObject, IRequest
+    {
+        public static ObjectGetRequest Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(ObjectGetRequest), isFromPool) as ObjectGetRequest;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Type { get; set; }
+
+        [MemoryPackOrder(2)]
+        public long Key { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Type = default;
+            this.Key = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.ObjectGetResponse)]
+    public partial class ObjectGetResponse : MessageObject, IResponse
+    {
+        public static ObjectGetResponse Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(ObjectGetResponse), isFromPool) as ObjectGetResponse;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        [MemoryPackOrder(3)]
+        public int Type { get; set; }
+
+        [MemoryPackOrder(4)]
+        public ActorId ActorId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+            this.Type = default;
+            this.ActorId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.R2G_GetLoginKey)]
+    [ResponseType(nameof(G2R_GetLoginKey))]
+    public partial class R2G_GetLoginKey : MessageObject, IRequest
+    {
+        public static R2G_GetLoginKey Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(R2G_GetLoginKey), isFromPool) as R2G_GetLoginKey;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public string Account { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Account = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.G2R_GetLoginKey)]
+    public partial class G2R_GetLoginKey : MessageObject, IResponse
+    {
+        public static G2R_GetLoginKey Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(G2R_GetLoginKey), isFromPool) as G2R_GetLoginKey;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        [MemoryPackOrder(3)]
+        public long Key { get; set; }
+
+        [MemoryPackOrder(4)]
+        public long GateId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+            this.Key = default;
+            this.GateId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.G2M_SessionDisconnect)]
+    public partial class G2M_SessionDisconnect : MessageObject, ILocationMessage
+    {
+        public static G2M_SessionDisconnect Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(G2M_SessionDisconnect), isFromPool) as G2M_SessionDisconnect;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.ObjectQueryResponse)]
+    public partial class ObjectQueryResponse : MessageObject, IResponse
+    {
+        public static ObjectQueryResponse Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(ObjectQueryResponse), isFromPool) as ObjectQueryResponse;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        [MemoryPackOrder(3)]
+        public byte[] Entity { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+            this.Entity = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.M2M_UnitTransferRequest)]
+    [ResponseType(nameof(M2M_UnitTransferResponse))]
+    public partial class M2M_UnitTransferRequest : MessageObject, IRequest
+    {
+        public static M2M_UnitTransferRequest Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(M2M_UnitTransferRequest), isFromPool) as M2M_UnitTransferRequest;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public ActorId OldActorId { get; set; }
+
+        [MemoryPackOrder(2)]
+        public byte[] Unit { get; set; }
+
+        [MemoryPackOrder(3)]
+        public List<byte[]> Entitys { get; set; } = new();
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.OldActorId = default;
+            this.Unit = default;
+            this.Entitys.Clear();
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.M2M_UnitTransferResponse)]
+    public partial class M2M_UnitTransferResponse : MessageObject, IResponse
+    {
+        public static M2M_UnitTransferResponse Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(M2M_UnitTransferResponse), isFromPool) as M2M_UnitTransferResponse;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    public static class InnerMessage
+    {
+        public const ushort ObjectQueryRequest = 20002;
+        public const ushort M2A_Reload = 20003;
+        public const ushort A2M_Reload = 20004;
+        public const ushort G2G_LockRequest = 20005;
+        public const ushort G2G_LockResponse = 20006;
+        public const ushort G2G_LockReleaseRequest = 20007;
+        public const ushort G2G_LockReleaseResponse = 20008;
+        public const ushort ObjectAddRequest = 20009;
+        public const ushort ObjectAddResponse = 20010;
+        public const ushort ObjectLockRequest = 20011;
+        public const ushort ObjectLockResponse = 20012;
+        public const ushort ObjectUnLockRequest = 20013;
+        public const ushort ObjectUnLockResponse = 20014;
+        public const ushort ObjectRemoveRequest = 20015;
+        public const ushort ObjectRemoveResponse = 20016;
+        public const ushort ObjectGetRequest = 20017;
+        public const ushort ObjectGetResponse = 20018;
+        public const ushort R2G_GetLoginKey = 20019;
+        public const ushort G2R_GetLoginKey = 20020;
+        public const ushort G2M_SessionDisconnect = 20021;
+        public const ushort ObjectQueryResponse = 20022;
+        public const ushort M2M_UnitTransferRequest = 20023;
+        public const ushort M2M_UnitTransferResponse = 20024;
+    }
+}

+ 287 - 259
Unity/Assets/Scripts/Model/Generate/ClientServer/Message/LockStepInner_S_21001.cs

@@ -1,263 +1,291 @@
-using ET;
 using MemoryPack;
 using System.Collections.Generic;
+
 namespace ET
 {
-// 请求匹配
-	[ResponseType(nameof(Match2G_Match))]
-	[Message(LockStepInner.G2Match_Match)]
-	[MemoryPackable]
-	public partial class G2Match_Match: MessageObject, IRequest
-	{
-		public static G2Match_Match Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(G2Match_Match), isFromPool) as G2Match_Match; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public long Id { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Id = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(LockStepInner.Match2G_Match)]
-	[MemoryPackable]
-	public partial class Match2G_Match: MessageObject, IResponse
-	{
-		public static Match2G_Match Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(Match2G_Match), isFromPool) as Match2G_Match; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(Map2Match_GetRoom))]
-	[Message(LockStepInner.Match2Map_GetRoom)]
-	[MemoryPackable]
-	public partial class Match2Map_GetRoom: MessageObject, IRequest
-	{
-		public static Match2Map_GetRoom Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(Match2Map_GetRoom), isFromPool) as Match2Map_GetRoom; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public List<long> PlayerIds { get; set; } = new();
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.PlayerIds.Clear();
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(LockStepInner.Map2Match_GetRoom)]
-	[MemoryPackable]
-	public partial class Map2Match_GetRoom: MessageObject, IResponse
-	{
-		public static Map2Match_GetRoom Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(Map2Match_GetRoom), isFromPool) as Map2Match_GetRoom; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-// 房间的ActorId
-		[MemoryPackOrder(3)]
-		public ActorId ActorId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			this.ActorId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(Room2G_Reconnect))]
-	[Message(LockStepInner.G2Room_Reconnect)]
-	[MemoryPackable]
-	public partial class G2Room_Reconnect: MessageObject, IRequest
-	{
-		public static G2Room_Reconnect Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(G2Room_Reconnect), isFromPool) as G2Room_Reconnect; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public long PlayerId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.PlayerId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(LockStepInner.Room2G_Reconnect)]
-	[MemoryPackable]
-	public partial class Room2G_Reconnect: MessageObject, IResponse
-	{
-		public static Room2G_Reconnect Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(Room2G_Reconnect), isFromPool) as Room2G_Reconnect; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		[MemoryPackOrder(3)]
-		public long StartTime { get; set; }
-
-		[MemoryPackOrder(4)]
-		public List<LockStepUnitInfo> UnitInfos { get; set; } = new();
-
-		[MemoryPackOrder(5)]
-		public int Frame { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			this.StartTime = default;
-			this.UnitInfos.Clear();
-			this.Frame = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(Room2RoomManager_Init))]
-	[Message(LockStepInner.RoomManager2Room_Init)]
-	[MemoryPackable]
-	public partial class RoomManager2Room_Init: MessageObject, IRequest
-	{
-		public static RoomManager2Room_Init Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(RoomManager2Room_Init), isFromPool) as RoomManager2Room_Init; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public List<long> PlayerIds { get; set; } = new();
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.PlayerIds.Clear();
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(LockStepInner.Room2RoomManager_Init)]
-	[MemoryPackable]
-	public partial class Room2RoomManager_Init: MessageObject, IResponse
-	{
-		public static Room2RoomManager_Init Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(Room2RoomManager_Init), isFromPool) as Room2RoomManager_Init; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	public static class LockStepInner
-	{
-		 public const ushort G2Match_Match = 21002;
-		 public const ushort Match2G_Match = 21003;
-		 public const ushort Match2Map_GetRoom = 21004;
-		 public const ushort Map2Match_GetRoom = 21005;
-		 public const ushort G2Room_Reconnect = 21006;
-		 public const ushort Room2G_Reconnect = 21007;
-		 public const ushort RoomManager2Room_Init = 21008;
-		 public const ushort Room2RoomManager_Init = 21009;
-	}
-}
+    /// <summary>
+    /// 请求匹配
+    /// </summary>
+    [MemoryPackable]
+    [Message(LockStepInner.G2Match_Match)]
+    [ResponseType(nameof(Match2G_Match))]
+    public partial class G2Match_Match : MessageObject, IRequest
+    {
+        public static G2Match_Match Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(G2Match_Match), isFromPool) as G2Match_Match;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public long Id { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Id = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(LockStepInner.Match2G_Match)]
+    public partial class Match2G_Match : MessageObject, IResponse
+    {
+        public static Match2G_Match Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(Match2G_Match), isFromPool) as Match2G_Match;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(LockStepInner.Match2Map_GetRoom)]
+    [ResponseType(nameof(Map2Match_GetRoom))]
+    public partial class Match2Map_GetRoom : MessageObject, IRequest
+    {
+        public static Match2Map_GetRoom Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(Match2Map_GetRoom), isFromPool) as Match2Map_GetRoom;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public List<long> PlayerIds { get; set; } = new();
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.PlayerIds.Clear();
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(LockStepInner.Map2Match_GetRoom)]
+    public partial class Map2Match_GetRoom : MessageObject, IResponse
+    {
+        public static Map2Match_GetRoom Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(Map2Match_GetRoom), isFromPool) as Map2Match_GetRoom;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        /// <summary>
+        /// 房间的ActorId
+        /// </summary>
+        [MemoryPackOrder(3)]
+        public ActorId ActorId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+            this.ActorId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(LockStepInner.G2Room_Reconnect)]
+    [ResponseType(nameof(Room2G_Reconnect))]
+    public partial class G2Room_Reconnect : MessageObject, IRequest
+    {
+        public static G2Room_Reconnect Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(G2Room_Reconnect), isFromPool) as G2Room_Reconnect;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public long PlayerId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.PlayerId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(LockStepInner.Room2G_Reconnect)]
+    public partial class Room2G_Reconnect : MessageObject, IResponse
+    {
+        public static Room2G_Reconnect Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(Room2G_Reconnect), isFromPool) as Room2G_Reconnect;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        [MemoryPackOrder(3)]
+        public long StartTime { get; set; }
+
+        [MemoryPackOrder(4)]
+        public List<LockStepUnitInfo> UnitInfos { get; set; } = new();
+
+        [MemoryPackOrder(5)]
+        public int Frame { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+            this.StartTime = default;
+            this.UnitInfos.Clear();
+            this.Frame = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(LockStepInner.RoomManager2Room_Init)]
+    [ResponseType(nameof(Room2RoomManager_Init))]
+    public partial class RoomManager2Room_Init : MessageObject, IRequest
+    {
+        public static RoomManager2Room_Init Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(RoomManager2Room_Init), isFromPool) as RoomManager2Room_Init;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public List<long> PlayerIds { get; set; } = new();
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.PlayerIds.Clear();
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(LockStepInner.Room2RoomManager_Init)]
+    public partial class Room2RoomManager_Init : MessageObject, IResponse
+    {
+        public static Room2RoomManager_Init Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(Room2RoomManager_Init), isFromPool) as Room2RoomManager_Init;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    public static class LockStepInner
+    {
+        public const ushort G2Match_Match = 21002;
+        public const ushort Match2G_Match = 21003;
+        public const ushort Match2Map_GetRoom = 21004;
+        public const ushort Map2Match_GetRoom = 21005;
+        public const ushort G2Room_Reconnect = 21006;
+        public const ushort Room2G_Reconnect = 21007;
+        public const ushort RoomManager2Room_Init = 21008;
+        public const ushort Room2RoomManager_Init = 21009;
+    }
+}

+ 382 - 338
Unity/Assets/Scripts/Model/Generate/ClientServer/Message/LockStepOuter_C_11001.cs

@@ -1,342 +1,386 @@
-using ET;
 using MemoryPack;
 using System.Collections.Generic;
+
 namespace ET
 {
-	[ResponseType(nameof(G2C_Match))]
-	[Message(LockStepOuter.C2G_Match)]
-	[MemoryPackable]
-	public partial class C2G_Match: MessageObject, ISessionRequest
-	{
-		public static C2G_Match Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2G_Match), isFromPool) as C2G_Match; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(LockStepOuter.G2C_Match)]
-	[MemoryPackable]
-	public partial class G2C_Match: MessageObject, ISessionResponse
-	{
-		public static G2C_Match Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(G2C_Match), isFromPool) as G2C_Match; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-// 匹配成功,通知客户端切换场景
-	[Message(LockStepOuter.Match2G_NotifyMatchSuccess)]
-	[MemoryPackable]
-	public partial class Match2G_NotifyMatchSuccess: MessageObject, IMessage
-	{
-		public static Match2G_NotifyMatchSuccess Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(Match2G_NotifyMatchSuccess), isFromPool) as Match2G_NotifyMatchSuccess; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-// 房间的ActorId
-		[MemoryPackOrder(1)]
-		public ActorId ActorId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.ActorId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-// 客户端通知房间切换场景完成
-	[Message(LockStepOuter.C2Room_ChangeSceneFinish)]
-	[MemoryPackable]
-	public partial class C2Room_ChangeSceneFinish: MessageObject, IRoomMessage
-	{
-		public static C2Room_ChangeSceneFinish Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2Room_ChangeSceneFinish), isFromPool) as C2Room_ChangeSceneFinish; 
-		}
-
-		[MemoryPackOrder(0)]
-		public long PlayerId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.PlayerId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(LockStepOuter.LockStepUnitInfo)]
-	[MemoryPackable]
-	public partial class LockStepUnitInfo: MessageObject
-	{
-		public static LockStepUnitInfo Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(LockStepUnitInfo), isFromPool) as LockStepUnitInfo; 
-		}
-
-		[MemoryPackOrder(0)]
-		public long PlayerId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public TrueSync.TSVector Position { get; set; }
-
-		[MemoryPackOrder(2)]
-		public TrueSync.TSQuaternion Rotation { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.PlayerId = default;
-			this.Position = default;
-			this.Rotation = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-// 房间通知客户端进入战斗
-	[Message(LockStepOuter.Room2C_Start)]
-	[MemoryPackable]
-	public partial class Room2C_Start: MessageObject, IMessage
-	{
-		public static Room2C_Start Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(Room2C_Start), isFromPool) as Room2C_Start; 
-		}
-
-		[MemoryPackOrder(0)]
-		public long StartTime { get; set; }
-
-		[MemoryPackOrder(1)]
-		public List<LockStepUnitInfo> UnitInfo { get; set; } = new();
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.StartTime = default;
-			this.UnitInfo.Clear();
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(LockStepOuter.FrameMessage)]
-	[MemoryPackable]
-	public partial class FrameMessage: MessageObject, IMessage
-	{
-		public static FrameMessage Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(FrameMessage), isFromPool) as FrameMessage; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int Frame { get; set; }
-
-		[MemoryPackOrder(1)]
-		public long PlayerId { get; set; }
-
-		[MemoryPackOrder(2)]
-		public LSInput Input { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.Frame = default;
-			this.PlayerId = default;
-			this.Input = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(LockStepOuter.OneFrameInputs)]
-	[MemoryPackable]
-	public partial class OneFrameInputs: MessageObject, IMessage
-	{
-		public static OneFrameInputs Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(OneFrameInputs), isFromPool) as OneFrameInputs; 
-		}
-
-		[MongoDB.Bson.Serialization.Attributes.BsonDictionaryOptions(MongoDB.Bson.Serialization.Options.DictionaryRepresentation.ArrayOfArrays)]
-		[MemoryPackOrder(1)]
-		public Dictionary<long, LSInput> Inputs { get; set; } = new();
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.Inputs.Clear();
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(LockStepOuter.Room2C_AdjustUpdateTime)]
-	[MemoryPackable]
-	public partial class Room2C_AdjustUpdateTime: MessageObject, IMessage
-	{
-		public static Room2C_AdjustUpdateTime Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(Room2C_AdjustUpdateTime), isFromPool) as Room2C_AdjustUpdateTime; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int DiffTime { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.DiffTime = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(LockStepOuter.C2Room_CheckHash)]
-	[MemoryPackable]
-	public partial class C2Room_CheckHash: MessageObject, IRoomMessage
-	{
-		public static C2Room_CheckHash Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2Room_CheckHash), isFromPool) as C2Room_CheckHash; 
-		}
-
-		[MemoryPackOrder(0)]
-		public long PlayerId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Frame { get; set; }
-
-		[MemoryPackOrder(2)]
-		public long Hash { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.PlayerId = default;
-			this.Frame = default;
-			this.Hash = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(LockStepOuter.Room2C_CheckHashFail)]
-	[MemoryPackable]
-	public partial class Room2C_CheckHashFail: MessageObject, IMessage
-	{
-		public static Room2C_CheckHashFail Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(Room2C_CheckHashFail), isFromPool) as Room2C_CheckHashFail; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int Frame { get; set; }
-
-		[MemoryPackOrder(1)]
-		public byte[] LSWorldBytes { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.Frame = default;
-			this.LSWorldBytes = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(LockStepOuter.G2C_Reconnect)]
-	[MemoryPackable]
-	public partial class G2C_Reconnect: MessageObject, IMessage
-	{
-		public static G2C_Reconnect Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(G2C_Reconnect), isFromPool) as G2C_Reconnect; 
-		}
-
-		[MemoryPackOrder(0)]
-		public long StartTime { get; set; }
-
-		[MemoryPackOrder(1)]
-		public List<LockStepUnitInfo> UnitInfos { get; set; } = new();
-
-		[MemoryPackOrder(2)]
-		public int Frame { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.StartTime = default;
-			this.UnitInfos.Clear();
-			this.Frame = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	public static class LockStepOuter
-	{
-		 public const ushort C2G_Match = 11002;
-		 public const ushort G2C_Match = 11003;
-		 public const ushort Match2G_NotifyMatchSuccess = 11004;
-		 public const ushort C2Room_ChangeSceneFinish = 11005;
-		 public const ushort LockStepUnitInfo = 11006;
-		 public const ushort Room2C_Start = 11007;
-		 public const ushort FrameMessage = 11008;
-		 public const ushort OneFrameInputs = 11009;
-		 public const ushort Room2C_AdjustUpdateTime = 11010;
-		 public const ushort C2Room_CheckHash = 11011;
-		 public const ushort Room2C_CheckHashFail = 11012;
-		 public const ushort G2C_Reconnect = 11013;
-	}
-}
+    [MemoryPackable]
+    [Message(LockStepOuter.C2G_Match)]
+    [ResponseType(nameof(G2C_Match))]
+    public partial class C2G_Match : MessageObject, ISessionRequest
+    {
+        public static C2G_Match Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2G_Match), isFromPool) as C2G_Match;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(LockStepOuter.G2C_Match)]
+    public partial class G2C_Match : MessageObject, ISessionResponse
+    {
+        public static G2C_Match Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(G2C_Match), isFromPool) as G2C_Match;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    /// <summary>
+    /// 匹配成功,通知客户端切换场景
+    /// </summary>
+    [MemoryPackable]
+    [Message(LockStepOuter.Match2G_NotifyMatchSuccess)]
+    public partial class Match2G_NotifyMatchSuccess : MessageObject, IMessage
+    {
+        public static Match2G_NotifyMatchSuccess Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(Match2G_NotifyMatchSuccess), isFromPool) as Match2G_NotifyMatchSuccess;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        /// <summary>
+        /// 房间的ActorId
+        /// </summary>
+        [MemoryPackOrder(1)]
+        public ActorId ActorId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.ActorId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    /// <summary>
+    /// 客户端通知房间切换场景完成
+    /// </summary>
+    [MemoryPackable]
+    [Message(LockStepOuter.C2Room_ChangeSceneFinish)]
+    public partial class C2Room_ChangeSceneFinish : MessageObject, IRoomMessage
+    {
+        public static C2Room_ChangeSceneFinish Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2Room_ChangeSceneFinish), isFromPool) as C2Room_ChangeSceneFinish;
+        }
+
+        [MemoryPackOrder(0)]
+        public long PlayerId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.PlayerId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(LockStepOuter.LockStepUnitInfo)]
+    public partial class LockStepUnitInfo : MessageObject
+    {
+        public static LockStepUnitInfo Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(LockStepUnitInfo), isFromPool) as LockStepUnitInfo;
+        }
+
+        [MemoryPackOrder(0)]
+        public long PlayerId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public TrueSync.TSVector Position { get; set; }
+
+        [MemoryPackOrder(2)]
+        public TrueSync.TSQuaternion Rotation { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.PlayerId = default;
+            this.Position = default;
+            this.Rotation = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    /// <summary>
+    /// 房间通知客户端进入战斗
+    /// </summary>
+    [MemoryPackable]
+    [Message(LockStepOuter.Room2C_Start)]
+    public partial class Room2C_Start : MessageObject, IMessage
+    {
+        public static Room2C_Start Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(Room2C_Start), isFromPool) as Room2C_Start;
+        }
+
+        [MemoryPackOrder(0)]
+        public long StartTime { get; set; }
+
+        [MemoryPackOrder(1)]
+        public List<LockStepUnitInfo> UnitInfo { get; set; } = new();
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.StartTime = default;
+            this.UnitInfo.Clear();
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(LockStepOuter.FrameMessage)]
+    public partial class FrameMessage : MessageObject, IMessage
+    {
+        public static FrameMessage Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(FrameMessage), isFromPool) as FrameMessage;
+        }
+
+        [MemoryPackOrder(0)]
+        public int Frame { get; set; }
+
+        [MemoryPackOrder(1)]
+        public long PlayerId { get; set; }
+
+        [MemoryPackOrder(2)]
+        public LSInput Input { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.Frame = default;
+            this.PlayerId = default;
+            this.Input = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(LockStepOuter.OneFrameInputs)]
+    public partial class OneFrameInputs : MessageObject, IMessage
+    {
+        public static OneFrameInputs Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(OneFrameInputs), isFromPool) as OneFrameInputs;
+        }
+
+        [MongoDB.Bson.Serialization.Attributes.BsonDictionaryOptions(MongoDB.Bson.Serialization.Options.DictionaryRepresentation.ArrayOfArrays)]
+        [MemoryPackOrder(1)]
+        public Dictionary<long, LSInput> Inputs { get; set; } = new();
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.Inputs.Clear();
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(LockStepOuter.Room2C_AdjustUpdateTime)]
+    public partial class Room2C_AdjustUpdateTime : MessageObject, IMessage
+    {
+        public static Room2C_AdjustUpdateTime Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(Room2C_AdjustUpdateTime), isFromPool) as Room2C_AdjustUpdateTime;
+        }
+
+        [MemoryPackOrder(0)]
+        public int DiffTime { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.DiffTime = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(LockStepOuter.C2Room_CheckHash)]
+    public partial class C2Room_CheckHash : MessageObject, IRoomMessage
+    {
+        public static C2Room_CheckHash Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2Room_CheckHash), isFromPool) as C2Room_CheckHash;
+        }
+
+        [MemoryPackOrder(0)]
+        public long PlayerId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Frame { get; set; }
+
+        [MemoryPackOrder(2)]
+        public long Hash { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.PlayerId = default;
+            this.Frame = default;
+            this.Hash = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(LockStepOuter.Room2C_CheckHashFail)]
+    public partial class Room2C_CheckHashFail : MessageObject, IMessage
+    {
+        public static Room2C_CheckHashFail Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(Room2C_CheckHashFail), isFromPool) as Room2C_CheckHashFail;
+        }
+
+        [MemoryPackOrder(0)]
+        public int Frame { get; set; }
+
+        [MemoryPackOrder(1)]
+        public byte[] LSWorldBytes { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.Frame = default;
+            this.LSWorldBytes = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(LockStepOuter.G2C_Reconnect)]
+    public partial class G2C_Reconnect : MessageObject, IMessage
+    {
+        public static G2C_Reconnect Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(G2C_Reconnect), isFromPool) as G2C_Reconnect;
+        }
+
+        [MemoryPackOrder(0)]
+        public long StartTime { get; set; }
+
+        [MemoryPackOrder(1)]
+        public List<LockStepUnitInfo> UnitInfos { get; set; } = new();
+
+        [MemoryPackOrder(2)]
+        public int Frame { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.StartTime = default;
+            this.UnitInfos.Clear();
+            this.Frame = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    public static class LockStepOuter
+    {
+        public const ushort C2G_Match = 11002;
+        public const ushort G2C_Match = 11003;
+        public const ushort Match2G_NotifyMatchSuccess = 11004;
+        public const ushort C2Room_ChangeSceneFinish = 11005;
+        public const ushort LockStepUnitInfo = 11006;
+        public const ushort Room2C_Start = 11007;
+        public const ushort FrameMessage = 11008;
+        public const ushort OneFrameInputs = 11009;
+        public const ushort Room2C_AdjustUpdateTime = 11010;
+        public const ushort C2Room_CheckHash = 11011;
+        public const ushort Room2C_CheckHashFail = 11012;
+        public const ushort G2C_Reconnect = 11013;
+    }
+}

+ 1118 - 1005
Unity/Assets/Scripts/Model/Generate/ClientServer/Message/OuterMessage_C_10001.cs

@@ -1,1009 +1,1122 @@
-using ET;
 using MemoryPack;
 using System.Collections.Generic;
+
 namespace ET
 {
-	[Message(OuterMessage.HttpGetRouterResponse)]
-	[MemoryPackable]
-	public partial class HttpGetRouterResponse: MessageObject
-	{
-		public static HttpGetRouterResponse Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(HttpGetRouterResponse), isFromPool) as HttpGetRouterResponse; 
-		}
-
-		[MemoryPackOrder(0)]
-		public List<string> Realms { get; set; } = new();
-
-		[MemoryPackOrder(1)]
-		public List<string> Routers { get; set; } = new();
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.Realms.Clear();
-			this.Routers.Clear();
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.RouterSync)]
-	[MemoryPackable]
-	public partial class RouterSync: MessageObject
-	{
-		public static RouterSync Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(RouterSync), isFromPool) as RouterSync; 
-		}
-
-		[MemoryPackOrder(0)]
-		public uint ConnectId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public string Address { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.ConnectId = default;
-			this.Address = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(M2C_TestResponse))]
-	[Message(OuterMessage.C2M_TestRequest)]
-	[MemoryPackable]
-	public partial class C2M_TestRequest: MessageObject, ILocationRequest
-	{
-		public static C2M_TestRequest Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2M_TestRequest), isFromPool) as C2M_TestRequest; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public string request { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.request = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.M2C_TestResponse)]
-	[MemoryPackable]
-	public partial class M2C_TestResponse: MessageObject, IResponse
-	{
-		public static M2C_TestResponse Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(M2C_TestResponse), isFromPool) as M2C_TestResponse; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		[MemoryPackOrder(3)]
-		public string response { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			this.response = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(G2C_EnterMap))]
-	[Message(OuterMessage.C2G_EnterMap)]
-	[MemoryPackable]
-	public partial class C2G_EnterMap: MessageObject, ISessionRequest
-	{
-		public static C2G_EnterMap Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2G_EnterMap), isFromPool) as C2G_EnterMap; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.G2C_EnterMap)]
-	[MemoryPackable]
-	public partial class G2C_EnterMap: MessageObject, ISessionResponse
-	{
-		public static G2C_EnterMap Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(G2C_EnterMap), isFromPool) as G2C_EnterMap; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-// 自己unitId
-		[MemoryPackOrder(3)]
-		public long MyId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			this.MyId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.MoveInfo)]
-	[MemoryPackable]
-	public partial class MoveInfo: MessageObject
-	{
-		public static MoveInfo Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(MoveInfo), isFromPool) as MoveInfo; 
-		}
-
-		[MemoryPackOrder(0)]
-		public List<Unity.Mathematics.float3> Points { get; set; } = new();
-
-		[MemoryPackOrder(1)]
-		public Unity.Mathematics.quaternion Rotation { get; set; }
-
-		[MemoryPackOrder(2)]
-		public int TurnSpeed { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.Points.Clear();
-			this.Rotation = default;
-			this.TurnSpeed = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.UnitInfo)]
-	[MemoryPackable]
-	public partial class UnitInfo: MessageObject
-	{
-		public static UnitInfo Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(UnitInfo), isFromPool) as UnitInfo; 
-		}
-
-		[MemoryPackOrder(0)]
-		public long UnitId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int ConfigId { get; set; }
-
-		[MemoryPackOrder(2)]
-		public int Type { get; set; }
-
-		[MemoryPackOrder(3)]
-		public Unity.Mathematics.float3 Position { get; set; }
-
-		[MemoryPackOrder(4)]
-		public Unity.Mathematics.float3 Forward { get; set; }
-
-		[MongoDB.Bson.Serialization.Attributes.BsonDictionaryOptions(MongoDB.Bson.Serialization.Options.DictionaryRepresentation.ArrayOfArrays)]
-		[MemoryPackOrder(5)]
-		public Dictionary<int, long> KV { get; set; } = new();
-		[MemoryPackOrder(6)]
-		public MoveInfo MoveInfo { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.UnitId = default;
-			this.ConfigId = default;
-			this.Type = default;
-			this.Position = default;
-			this.Forward = default;
-			this.KV.Clear();
-			this.MoveInfo = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.M2C_CreateUnits)]
-	[MemoryPackable]
-	public partial class M2C_CreateUnits: MessageObject, IMessage
-	{
-		public static M2C_CreateUnits Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(M2C_CreateUnits), isFromPool) as M2C_CreateUnits; 
-		}
-
-		[MemoryPackOrder(0)]
-		public List<UnitInfo> Units { get; set; } = new();
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.Units.Clear();
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.M2C_CreateMyUnit)]
-	[MemoryPackable]
-	public partial class M2C_CreateMyUnit: MessageObject, IMessage
-	{
-		public static M2C_CreateMyUnit Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(M2C_CreateMyUnit), isFromPool) as M2C_CreateMyUnit; 
-		}
-
-		[MemoryPackOrder(0)]
-		public UnitInfo Unit { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.Unit = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.M2C_StartSceneChange)]
-	[MemoryPackable]
-	public partial class M2C_StartSceneChange: MessageObject, IMessage
-	{
-		public static M2C_StartSceneChange Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(M2C_StartSceneChange), isFromPool) as M2C_StartSceneChange; 
-		}
-
-		[MemoryPackOrder(0)]
-		public long SceneInstanceId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public string SceneName { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.SceneInstanceId = default;
-			this.SceneName = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.M2C_RemoveUnits)]
-	[MemoryPackable]
-	public partial class M2C_RemoveUnits: MessageObject, IMessage
-	{
-		public static M2C_RemoveUnits Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(M2C_RemoveUnits), isFromPool) as M2C_RemoveUnits; 
-		}
-
-		[MemoryPackOrder(0)]
-		public List<long> Units { get; set; } = new();
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.Units.Clear();
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.C2M_PathfindingResult)]
-	[MemoryPackable]
-	public partial class C2M_PathfindingResult: MessageObject, ILocationMessage
-	{
-		public static C2M_PathfindingResult Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2M_PathfindingResult), isFromPool) as C2M_PathfindingResult; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public Unity.Mathematics.float3 Position { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Position = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.C2M_Stop)]
-	[MemoryPackable]
-	public partial class C2M_Stop: MessageObject, ILocationMessage
-	{
-		public static C2M_Stop Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2M_Stop), isFromPool) as C2M_Stop; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.M2C_PathfindingResult)]
-	[MemoryPackable]
-	public partial class M2C_PathfindingResult: MessageObject, IMessage
-	{
-		public static M2C_PathfindingResult Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(M2C_PathfindingResult), isFromPool) as M2C_PathfindingResult; 
-		}
-
-		[MemoryPackOrder(0)]
-		public long Id { get; set; }
-
-		[MemoryPackOrder(1)]
-		public Unity.Mathematics.float3 Position { get; set; }
-
-		[MemoryPackOrder(2)]
-		public List<Unity.Mathematics.float3> Points { get; set; } = new();
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.Id = default;
-			this.Position = default;
-			this.Points.Clear();
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.M2C_Stop)]
-	[MemoryPackable]
-	public partial class M2C_Stop: MessageObject, IMessage
-	{
-		public static M2C_Stop Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(M2C_Stop), isFromPool) as M2C_Stop; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(1)]
-		public long Id { get; set; }
-
-		[MemoryPackOrder(2)]
-		public Unity.Mathematics.float3 Position { get; set; }
-
-		[MemoryPackOrder(3)]
-		public Unity.Mathematics.quaternion Rotation { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.Error = default;
-			this.Id = default;
-			this.Position = default;
-			this.Rotation = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(G2C_Ping))]
-	[Message(OuterMessage.C2G_Ping)]
-	[MemoryPackable]
-	public partial class C2G_Ping: MessageObject, ISessionRequest
-	{
-		public static C2G_Ping Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2G_Ping), isFromPool) as C2G_Ping; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.G2C_Ping)]
-	[MemoryPackable]
-	public partial class G2C_Ping: MessageObject, ISessionResponse
-	{
-		public static G2C_Ping Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(G2C_Ping), isFromPool) as G2C_Ping; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		[MemoryPackOrder(3)]
-		public long Time { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			this.Time = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.G2C_Test)]
-	[MemoryPackable]
-	public partial class G2C_Test: MessageObject, ISessionMessage
-	{
-		public static G2C_Test Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(G2C_Test), isFromPool) as G2C_Test; 
-		}
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(M2C_Reload))]
-	[Message(OuterMessage.C2M_Reload)]
-	[MemoryPackable]
-	public partial class C2M_Reload: MessageObject, ISessionRequest
-	{
-		public static C2M_Reload Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2M_Reload), isFromPool) as C2M_Reload; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public string Account { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Password { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Account = default;
-			this.Password = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.M2C_Reload)]
-	[MemoryPackable]
-	public partial class M2C_Reload: MessageObject, ISessionResponse
-	{
-		public static M2C_Reload Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(M2C_Reload), isFromPool) as M2C_Reload; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(R2C_Login))]
-	[Message(OuterMessage.C2R_Login)]
-	[MemoryPackable]
-	public partial class C2R_Login: MessageObject, ISessionRequest
-	{
-		public static C2R_Login Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2R_Login), isFromPool) as C2R_Login; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public string Account { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Password { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Account = default;
-			this.Password = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.R2C_Login)]
-	[MemoryPackable]
-	public partial class R2C_Login: MessageObject, ISessionResponse
-	{
-		public static R2C_Login Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(R2C_Login), isFromPool) as R2C_Login; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		[MemoryPackOrder(3)]
-		public string Address { get; set; }
-
-		[MemoryPackOrder(4)]
-		public long Key { get; set; }
-
-		[MemoryPackOrder(5)]
-		public long GateId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			this.Address = default;
-			this.Key = default;
-			this.GateId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(G2C_LoginGate))]
-	[Message(OuterMessage.C2G_LoginGate)]
-	[MemoryPackable]
-	public partial class C2G_LoginGate: MessageObject, ISessionRequest
-	{
-		public static C2G_LoginGate Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2G_LoginGate), isFromPool) as C2G_LoginGate; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public long Key { get; set; }
-
-		[MemoryPackOrder(2)]
-		public long GateId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Key = default;
-			this.GateId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.G2C_LoginGate)]
-	[MemoryPackable]
-	public partial class G2C_LoginGate: MessageObject, ISessionResponse
-	{
-		public static G2C_LoginGate Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(G2C_LoginGate), isFromPool) as G2C_LoginGate; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		[MemoryPackOrder(3)]
-		public long PlayerId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			this.PlayerId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.G2C_TestHotfixMessage)]
-	[MemoryPackable]
-	public partial class G2C_TestHotfixMessage: MessageObject, ISessionMessage
-	{
-		public static G2C_TestHotfixMessage Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(G2C_TestHotfixMessage), isFromPool) as G2C_TestHotfixMessage; 
-		}
-
-		[MemoryPackOrder(0)]
-		public string Info { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.Info = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(M2C_TestRobotCase))]
-	[Message(OuterMessage.C2M_TestRobotCase)]
-	[MemoryPackable]
-	public partial class C2M_TestRobotCase: MessageObject, ILocationRequest
-	{
-		public static C2M_TestRobotCase Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2M_TestRobotCase), isFromPool) as C2M_TestRobotCase; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int N { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.N = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.M2C_TestRobotCase)]
-	[MemoryPackable]
-	public partial class M2C_TestRobotCase: MessageObject, ILocationResponse
-	{
-		public static M2C_TestRobotCase Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(M2C_TestRobotCase), isFromPool) as M2C_TestRobotCase; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		[MemoryPackOrder(3)]
-		public int N { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			this.N = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.C2M_TestRobotCase2)]
-	[MemoryPackable]
-	public partial class C2M_TestRobotCase2: MessageObject, ILocationMessage
-	{
-		public static C2M_TestRobotCase2 Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2M_TestRobotCase2), isFromPool) as C2M_TestRobotCase2; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int N { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.N = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.M2C_TestRobotCase2)]
-	[MemoryPackable]
-	public partial class M2C_TestRobotCase2: MessageObject, ILocationMessage
-	{
-		public static M2C_TestRobotCase2 Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(M2C_TestRobotCase2), isFromPool) as M2C_TestRobotCase2; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int N { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.N = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(M2C_TransferMap))]
-	[Message(OuterMessage.C2M_TransferMap)]
-	[MemoryPackable]
-	public partial class C2M_TransferMap: MessageObject, ILocationRequest
-	{
-		public static C2M_TransferMap Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2M_TransferMap), isFromPool) as C2M_TransferMap; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.M2C_TransferMap)]
-	[MemoryPackable]
-	public partial class M2C_TransferMap: MessageObject, ILocationResponse
-	{
-		public static M2C_TransferMap Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(M2C_TransferMap), isFromPool) as M2C_TransferMap; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(G2C_Benchmark))]
-	[Message(OuterMessage.C2G_Benchmark)]
-	[MemoryPackable]
-	public partial class C2G_Benchmark: MessageObject, ISessionRequest
-	{
-		public static C2G_Benchmark Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2G_Benchmark), isFromPool) as C2G_Benchmark; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.G2C_Benchmark)]
-	[MemoryPackable]
-	public partial class G2C_Benchmark: MessageObject, ISessionResponse
-	{
-		public static G2C_Benchmark Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(G2C_Benchmark), isFromPool) as G2C_Benchmark; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	public static class OuterMessage
-	{
-		 public const ushort HttpGetRouterResponse = 10002;
-		 public const ushort RouterSync = 10003;
-		 public const ushort C2M_TestRequest = 10004;
-		 public const ushort M2C_TestResponse = 10005;
-		 public const ushort C2G_EnterMap = 10006;
-		 public const ushort G2C_EnterMap = 10007;
-		 public const ushort MoveInfo = 10008;
-		 public const ushort UnitInfo = 10009;
-		 public const ushort M2C_CreateUnits = 10010;
-		 public const ushort M2C_CreateMyUnit = 10011;
-		 public const ushort M2C_StartSceneChange = 10012;
-		 public const ushort M2C_RemoveUnits = 10013;
-		 public const ushort C2M_PathfindingResult = 10014;
-		 public const ushort C2M_Stop = 10015;
-		 public const ushort M2C_PathfindingResult = 10016;
-		 public const ushort M2C_Stop = 10017;
-		 public const ushort C2G_Ping = 10018;
-		 public const ushort G2C_Ping = 10019;
-		 public const ushort G2C_Test = 10020;
-		 public const ushort C2M_Reload = 10021;
-		 public const ushort M2C_Reload = 10022;
-		 public const ushort C2R_Login = 10023;
-		 public const ushort R2C_Login = 10024;
-		 public const ushort C2G_LoginGate = 10025;
-		 public const ushort G2C_LoginGate = 10026;
-		 public const ushort G2C_TestHotfixMessage = 10027;
-		 public const ushort C2M_TestRobotCase = 10028;
-		 public const ushort M2C_TestRobotCase = 10029;
-		 public const ushort C2M_TestRobotCase2 = 10030;
-		 public const ushort M2C_TestRobotCase2 = 10031;
-		 public const ushort C2M_TransferMap = 10032;
-		 public const ushort M2C_TransferMap = 10033;
-		 public const ushort C2G_Benchmark = 10034;
-		 public const ushort G2C_Benchmark = 10035;
-	}
-}
+    [MemoryPackable]
+    [Message(OuterMessage.HttpGetRouterResponse)]
+    public partial class HttpGetRouterResponse : MessageObject
+    {
+        public static HttpGetRouterResponse Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(HttpGetRouterResponse), isFromPool) as HttpGetRouterResponse;
+        }
+
+        [MemoryPackOrder(0)]
+        public List<string> Realms { get; set; } = new();
+
+        [MemoryPackOrder(1)]
+        public List<string> Routers { get; set; } = new();
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.Realms.Clear();
+            this.Routers.Clear();
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.RouterSync)]
+    public partial class RouterSync : MessageObject
+    {
+        public static RouterSync Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(RouterSync), isFromPool) as RouterSync;
+        }
+
+        [MemoryPackOrder(0)]
+        public uint ConnectId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public string Address { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.ConnectId = default;
+            this.Address = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.C2M_TestRequest)]
+    [ResponseType(nameof(M2C_TestResponse))]
+    public partial class C2M_TestRequest : MessageObject, ILocationRequest
+    {
+        public static C2M_TestRequest Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2M_TestRequest), isFromPool) as C2M_TestRequest;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public string request { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.request = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.M2C_TestResponse)]
+    public partial class M2C_TestResponse : MessageObject, IResponse
+    {
+        public static M2C_TestResponse Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(M2C_TestResponse), isFromPool) as M2C_TestResponse;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        [MemoryPackOrder(3)]
+        public string response { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+            this.response = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.C2G_EnterMap)]
+    [ResponseType(nameof(G2C_EnterMap))]
+    public partial class C2G_EnterMap : MessageObject, ISessionRequest
+    {
+        public static C2G_EnterMap Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2G_EnterMap), isFromPool) as C2G_EnterMap;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.G2C_EnterMap)]
+    public partial class G2C_EnterMap : MessageObject, ISessionResponse
+    {
+        public static G2C_EnterMap Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(G2C_EnterMap), isFromPool) as G2C_EnterMap;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        /// <summary>
+        /// 自己的UnitId
+        /// </summary>
+        [MemoryPackOrder(3)]
+        public long MyId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+            this.MyId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.MoveInfo)]
+    public partial class MoveInfo : MessageObject
+    {
+        public static MoveInfo Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(MoveInfo), isFromPool) as MoveInfo;
+        }
+
+        [MemoryPackOrder(0)]
+        public List<Unity.Mathematics.float3> Points { get; set; } = new();
+
+        [MemoryPackOrder(1)]
+        public Unity.Mathematics.quaternion Rotation { get; set; }
+
+        [MemoryPackOrder(2)]
+        public int TurnSpeed { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.Points.Clear();
+            this.Rotation = default;
+            this.TurnSpeed = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.UnitInfo)]
+    public partial class UnitInfo : MessageObject
+    {
+        public static UnitInfo Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(UnitInfo), isFromPool) as UnitInfo;
+        }
+
+        [MemoryPackOrder(0)]
+        public long UnitId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int ConfigId { get; set; }
+
+        [MemoryPackOrder(2)]
+        public int Type { get; set; }
+
+        [MemoryPackOrder(3)]
+        public Unity.Mathematics.float3 Position { get; set; }
+
+        [MemoryPackOrder(4)]
+        public Unity.Mathematics.float3 Forward { get; set; }
+
+        [MongoDB.Bson.Serialization.Attributes.BsonDictionaryOptions(MongoDB.Bson.Serialization.Options.DictionaryRepresentation.ArrayOfArrays)]
+        [MemoryPackOrder(5)]
+        public Dictionary<int, long> KV { get; set; } = new();
+        [MemoryPackOrder(6)]
+        public MoveInfo MoveInfo { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.UnitId = default;
+            this.ConfigId = default;
+            this.Type = default;
+            this.Position = default;
+            this.Forward = default;
+            this.KV.Clear();
+            this.MoveInfo = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.M2C_CreateUnits)]
+    public partial class M2C_CreateUnits : MessageObject, IMessage
+    {
+        public static M2C_CreateUnits Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(M2C_CreateUnits), isFromPool) as M2C_CreateUnits;
+        }
+
+        [MemoryPackOrder(0)]
+        public List<UnitInfo> Units { get; set; } = new();
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.Units.Clear();
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.M2C_CreateMyUnit)]
+    public partial class M2C_CreateMyUnit : MessageObject, IMessage
+    {
+        public static M2C_CreateMyUnit Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(M2C_CreateMyUnit), isFromPool) as M2C_CreateMyUnit;
+        }
+
+        [MemoryPackOrder(0)]
+        public UnitInfo Unit { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.Unit = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.M2C_StartSceneChange)]
+    public partial class M2C_StartSceneChange : MessageObject, IMessage
+    {
+        public static M2C_StartSceneChange Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(M2C_StartSceneChange), isFromPool) as M2C_StartSceneChange;
+        }
+
+        [MemoryPackOrder(0)]
+        public long SceneInstanceId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public string SceneName { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.SceneInstanceId = default;
+            this.SceneName = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.M2C_RemoveUnits)]
+    public partial class M2C_RemoveUnits : MessageObject, IMessage
+    {
+        public static M2C_RemoveUnits Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(M2C_RemoveUnits), isFromPool) as M2C_RemoveUnits;
+        }
+
+        [MemoryPackOrder(0)]
+        public List<long> Units { get; set; } = new();
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.Units.Clear();
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.C2M_PathfindingResult)]
+    public partial class C2M_PathfindingResult : MessageObject, ILocationMessage
+    {
+        public static C2M_PathfindingResult Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2M_PathfindingResult), isFromPool) as C2M_PathfindingResult;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public Unity.Mathematics.float3 Position { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Position = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.C2M_Stop)]
+    public partial class C2M_Stop : MessageObject, ILocationMessage
+    {
+        public static C2M_Stop Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2M_Stop), isFromPool) as C2M_Stop;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.M2C_PathfindingResult)]
+    public partial class M2C_PathfindingResult : MessageObject, IMessage
+    {
+        public static M2C_PathfindingResult Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(M2C_PathfindingResult), isFromPool) as M2C_PathfindingResult;
+        }
+
+        [MemoryPackOrder(0)]
+        public long Id { get; set; }
+
+        [MemoryPackOrder(1)]
+        public Unity.Mathematics.float3 Position { get; set; }
+
+        [MemoryPackOrder(2)]
+        public List<Unity.Mathematics.float3> Points { get; set; } = new();
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.Id = default;
+            this.Position = default;
+            this.Points.Clear();
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.M2C_Stop)]
+    public partial class M2C_Stop : MessageObject, IMessage
+    {
+        public static M2C_Stop Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(M2C_Stop), isFromPool) as M2C_Stop;
+        }
+
+        [MemoryPackOrder(0)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(1)]
+        public long Id { get; set; }
+
+        [MemoryPackOrder(2)]
+        public Unity.Mathematics.float3 Position { get; set; }
+
+        [MemoryPackOrder(3)]
+        public Unity.Mathematics.quaternion Rotation { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.Error = default;
+            this.Id = default;
+            this.Position = default;
+            this.Rotation = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.C2G_Ping)]
+    [ResponseType(nameof(G2C_Ping))]
+    public partial class C2G_Ping : MessageObject, ISessionRequest
+    {
+        public static C2G_Ping Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2G_Ping), isFromPool) as C2G_Ping;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.G2C_Ping)]
+    public partial class G2C_Ping : MessageObject, ISessionResponse
+    {
+        public static G2C_Ping Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(G2C_Ping), isFromPool) as G2C_Ping;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        [MemoryPackOrder(3)]
+        public long Time { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+            this.Time = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.G2C_Test)]
+    public partial class G2C_Test : MessageObject, ISessionMessage
+    {
+        public static G2C_Test Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(G2C_Test), isFromPool) as G2C_Test;
+        }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.C2M_Reload)]
+    [ResponseType(nameof(M2C_Reload))]
+    public partial class C2M_Reload : MessageObject, ISessionRequest
+    {
+        public static C2M_Reload Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2M_Reload), isFromPool) as C2M_Reload;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public string Account { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Password { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Account = default;
+            this.Password = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.M2C_Reload)]
+    public partial class M2C_Reload : MessageObject, ISessionResponse
+    {
+        public static M2C_Reload Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(M2C_Reload), isFromPool) as M2C_Reload;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.C2R_Login)]
+    [ResponseType(nameof(R2C_Login))]
+    public partial class C2R_Login : MessageObject, ISessionRequest
+    {
+        public static C2R_Login Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2R_Login), isFromPool) as C2R_Login;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        /// <summary>
+        /// 帐号
+        /// </summary>
+        [MemoryPackOrder(1)]
+        public string Account { get; set; }
+
+        /// <summary>
+        /// 密码
+        /// </summary>
+        [MemoryPackOrder(2)]
+        public string Password { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Account = default;
+            this.Password = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.R2C_Login)]
+    public partial class R2C_Login : MessageObject, ISessionResponse
+    {
+        public static R2C_Login Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(R2C_Login), isFromPool) as R2C_Login;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        [MemoryPackOrder(3)]
+        public string Address { get; set; }
+
+        [MemoryPackOrder(4)]
+        public long Key { get; set; }
+
+        [MemoryPackOrder(5)]
+        public long GateId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+            this.Address = default;
+            this.Key = default;
+            this.GateId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.C2G_LoginGate)]
+    [ResponseType(nameof(G2C_LoginGate))]
+    public partial class C2G_LoginGate : MessageObject, ISessionRequest
+    {
+        public static C2G_LoginGate Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2G_LoginGate), isFromPool) as C2G_LoginGate;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        /// <summary>
+        /// 帐号
+        /// </summary>
+        [MemoryPackOrder(1)]
+        public long Key { get; set; }
+
+        [MemoryPackOrder(2)]
+        public long GateId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Key = default;
+            this.GateId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.G2C_LoginGate)]
+    public partial class G2C_LoginGate : MessageObject, ISessionResponse
+    {
+        public static G2C_LoginGate Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(G2C_LoginGate), isFromPool) as G2C_LoginGate;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        [MemoryPackOrder(3)]
+        public long PlayerId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+            this.PlayerId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.G2C_TestHotfixMessage)]
+    public partial class G2C_TestHotfixMessage : MessageObject, ISessionMessage
+    {
+        public static G2C_TestHotfixMessage Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(G2C_TestHotfixMessage), isFromPool) as G2C_TestHotfixMessage;
+        }
+
+        [MemoryPackOrder(0)]
+        public string Info { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.Info = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.C2M_TestRobotCase)]
+    [ResponseType(nameof(M2C_TestRobotCase))]
+    public partial class C2M_TestRobotCase : MessageObject, ILocationRequest
+    {
+        public static C2M_TestRobotCase Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2M_TestRobotCase), isFromPool) as C2M_TestRobotCase;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int N { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.N = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.M2C_TestRobotCase)]
+    public partial class M2C_TestRobotCase : MessageObject, ILocationResponse
+    {
+        public static M2C_TestRobotCase Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(M2C_TestRobotCase), isFromPool) as M2C_TestRobotCase;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        [MemoryPackOrder(3)]
+        public int N { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+            this.N = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.C2M_TestRobotCase2)]
+    public partial class C2M_TestRobotCase2 : MessageObject, ILocationMessage
+    {
+        public static C2M_TestRobotCase2 Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2M_TestRobotCase2), isFromPool) as C2M_TestRobotCase2;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int N { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.N = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.M2C_TestRobotCase2)]
+    public partial class M2C_TestRobotCase2 : MessageObject, ILocationMessage
+    {
+        public static M2C_TestRobotCase2 Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(M2C_TestRobotCase2), isFromPool) as M2C_TestRobotCase2;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int N { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.N = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.C2M_TransferMap)]
+    [ResponseType(nameof(M2C_TransferMap))]
+    public partial class C2M_TransferMap : MessageObject, ILocationRequest
+    {
+        public static C2M_TransferMap Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2M_TransferMap), isFromPool) as C2M_TransferMap;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.M2C_TransferMap)]
+    public partial class M2C_TransferMap : MessageObject, ILocationResponse
+    {
+        public static M2C_TransferMap Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(M2C_TransferMap), isFromPool) as M2C_TransferMap;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.C2G_Benchmark)]
+    [ResponseType(nameof(G2C_Benchmark))]
+    public partial class C2G_Benchmark : MessageObject, ISessionRequest
+    {
+        public static C2G_Benchmark Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2G_Benchmark), isFromPool) as C2G_Benchmark;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.G2C_Benchmark)]
+    public partial class G2C_Benchmark : MessageObject, ISessionResponse
+    {
+        public static G2C_Benchmark Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(G2C_Benchmark), isFromPool) as G2C_Benchmark;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    public static class OuterMessage
+    {
+        public const ushort HttpGetRouterResponse = 10002;
+        public const ushort RouterSync = 10003;
+        public const ushort C2M_TestRequest = 10004;
+        public const ushort M2C_TestResponse = 10005;
+        public const ushort C2G_EnterMap = 10006;
+        public const ushort G2C_EnterMap = 10007;
+        public const ushort MoveInfo = 10008;
+        public const ushort UnitInfo = 10009;
+        public const ushort M2C_CreateUnits = 10010;
+        public const ushort M2C_CreateMyUnit = 10011;
+        public const ushort M2C_StartSceneChange = 10012;
+        public const ushort M2C_RemoveUnits = 10013;
+        public const ushort C2M_PathfindingResult = 10014;
+        public const ushort C2M_Stop = 10015;
+        public const ushort M2C_PathfindingResult = 10016;
+        public const ushort M2C_Stop = 10017;
+        public const ushort C2G_Ping = 10018;
+        public const ushort G2C_Ping = 10019;
+        public const ushort G2C_Test = 10020;
+        public const ushort C2M_Reload = 10021;
+        public const ushort M2C_Reload = 10022;
+        public const ushort C2R_Login = 10023;
+        public const ushort R2C_Login = 10024;
+        public const ushort C2G_LoginGate = 10025;
+        public const ushort G2C_LoginGate = 10026;
+        public const ushort G2C_TestHotfixMessage = 10027;
+        public const ushort C2M_TestRobotCase = 10028;
+        public const ushort M2C_TestRobotCase = 10029;
+        public const ushort C2M_TestRobotCase2 = 10030;
+        public const ushort M2C_TestRobotCase2 = 10031;
+        public const ushort C2M_TransferMap = 10032;
+        public const ushort M2C_TransferMap = 10033;
+        public const ushort C2G_Benchmark = 10034;
+        public const ushort G2C_Benchmark = 10035;
+    }
+}

+ 88 - 77
Unity/Assets/Scripts/Model/Generate/Server/Message/ClientMessage_C_1000.cs

@@ -1,81 +1,92 @@
-using ET;
 using MemoryPack;
 using System.Collections.Generic;
+
 namespace ET
 {
-// using
-	[ResponseType(nameof(NetClient2Main_Login))]
-	[Message(ClientMessage.Main2NetClient_Login)]
-	[MemoryPackable]
-	public partial class Main2NetClient_Login: MessageObject, IRequest
-	{
-		public static Main2NetClient_Login Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(Main2NetClient_Login), isFromPool) as Main2NetClient_Login; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int OwnerFiberId { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Account { get; set; }
-
-		[MemoryPackOrder(3)]
-		public string Password { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.OwnerFiberId = default;
-			this.Account = default;
-			this.Password = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(ClientMessage.NetClient2Main_Login)]
-	[MemoryPackable]
-	public partial class NetClient2Main_Login: MessageObject, IResponse
-	{
-		public static NetClient2Main_Login Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(NetClient2Main_Login), isFromPool) as NetClient2Main_Login; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		[MemoryPackOrder(3)]
-		public long PlayerId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			this.PlayerId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	public static class ClientMessage
-	{
-		 public const ushort Main2NetClient_Login = 1001;
-		 public const ushort NetClient2Main_Login = 1002;
-	}
-}
+    [MemoryPackable]
+    [Message(ClientMessage.Main2NetClient_Login)]
+    [ResponseType(nameof(NetClient2Main_Login))]
+    public partial class Main2NetClient_Login : MessageObject, IRequest
+    {
+        public static Main2NetClient_Login Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(Main2NetClient_Login), isFromPool) as Main2NetClient_Login;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int OwnerFiberId { get; set; }
+
+        /// <summary>
+        /// 账号
+        /// </summary>
+        [MemoryPackOrder(2)]
+        public string Account { get; set; }
+
+        /// <summary>
+        /// 密码
+        /// </summary>
+        [MemoryPackOrder(3)]
+        public string Password { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.OwnerFiberId = default;
+            this.Account = default;
+            this.Password = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(ClientMessage.NetClient2Main_Login)]
+    public partial class NetClient2Main_Login : MessageObject, IResponse
+    {
+        public static NetClient2Main_Login Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(NetClient2Main_Login), isFromPool) as NetClient2Main_Login;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        [MemoryPackOrder(3)]
+        public long PlayerId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+            this.PlayerId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    public static class ClientMessage
+    {
+        public const ushort Main2NetClient_Login = 1001;
+        public const ushort NetClient2Main_Login = 1002;
+    }
+}

+ 822 - 754
Unity/Assets/Scripts/Model/Generate/Server/Message/InnerMessage_S_20001.cs

@@ -1,758 +1,826 @@
-using ET;
 using MemoryPack;
 using System.Collections.Generic;
+
 namespace ET
 {
-// using
-	[ResponseType(nameof(ObjectQueryResponse))]
-	[Message(InnerMessage.ObjectQueryRequest)]
-	[MemoryPackable]
-	public partial class ObjectQueryRequest: MessageObject, IRequest
-	{
-		public static ObjectQueryRequest Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(ObjectQueryRequest), isFromPool) as ObjectQueryRequest; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public long Key { get; set; }
-
-		[MemoryPackOrder(2)]
-		public long InstanceId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Key = default;
-			this.InstanceId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(A2M_Reload))]
-	[Message(InnerMessage.M2A_Reload)]
-	[MemoryPackable]
-	public partial class M2A_Reload: MessageObject, IRequest
-	{
-		public static M2A_Reload Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(M2A_Reload), isFromPool) as M2A_Reload; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(InnerMessage.A2M_Reload)]
-	[MemoryPackable]
-	public partial class A2M_Reload: MessageObject, IResponse
-	{
-		public static A2M_Reload Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(A2M_Reload), isFromPool) as A2M_Reload; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(G2G_LockResponse))]
-	[Message(InnerMessage.G2G_LockRequest)]
-	[MemoryPackable]
-	public partial class G2G_LockRequest: MessageObject, IRequest
-	{
-		public static G2G_LockRequest Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(G2G_LockRequest), isFromPool) as G2G_LockRequest; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public long Id { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Address { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Id = default;
-			this.Address = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(InnerMessage.G2G_LockResponse)]
-	[MemoryPackable]
-	public partial class G2G_LockResponse: MessageObject, IResponse
-	{
-		public static G2G_LockResponse Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(G2G_LockResponse), isFromPool) as G2G_LockResponse; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(G2G_LockReleaseResponse))]
-	[Message(InnerMessage.G2G_LockReleaseRequest)]
-	[MemoryPackable]
-	public partial class G2G_LockReleaseRequest: MessageObject, IRequest
-	{
-		public static G2G_LockReleaseRequest Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(G2G_LockReleaseRequest), isFromPool) as G2G_LockReleaseRequest; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public long Id { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Address { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Id = default;
-			this.Address = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(InnerMessage.G2G_LockReleaseResponse)]
-	[MemoryPackable]
-	public partial class G2G_LockReleaseResponse: MessageObject, IResponse
-	{
-		public static G2G_LockReleaseResponse Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(G2G_LockReleaseResponse), isFromPool) as G2G_LockReleaseResponse; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(ObjectAddResponse))]
-	[Message(InnerMessage.ObjectAddRequest)]
-	[MemoryPackable]
-	public partial class ObjectAddRequest: MessageObject, IRequest
-	{
-		public static ObjectAddRequest Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(ObjectAddRequest), isFromPool) as ObjectAddRequest; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Type { get; set; }
-
-		[MemoryPackOrder(2)]
-		public long Key { get; set; }
-
-		[MemoryPackOrder(3)]
-		public ActorId ActorId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Type = default;
-			this.Key = default;
-			this.ActorId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(InnerMessage.ObjectAddResponse)]
-	[MemoryPackable]
-	public partial class ObjectAddResponse: MessageObject, IResponse
-	{
-		public static ObjectAddResponse Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(ObjectAddResponse), isFromPool) as ObjectAddResponse; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(ObjectLockResponse))]
-	[Message(InnerMessage.ObjectLockRequest)]
-	[MemoryPackable]
-	public partial class ObjectLockRequest: MessageObject, IRequest
-	{
-		public static ObjectLockRequest Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(ObjectLockRequest), isFromPool) as ObjectLockRequest; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Type { get; set; }
-
-		[MemoryPackOrder(2)]
-		public long Key { get; set; }
-
-		[MemoryPackOrder(3)]
-		public ActorId ActorId { get; set; }
-
-		[MemoryPackOrder(4)]
-		public int Time { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Type = default;
-			this.Key = default;
-			this.ActorId = default;
-			this.Time = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(InnerMessage.ObjectLockResponse)]
-	[MemoryPackable]
-	public partial class ObjectLockResponse: MessageObject, IResponse
-	{
-		public static ObjectLockResponse Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(ObjectLockResponse), isFromPool) as ObjectLockResponse; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(ObjectUnLockResponse))]
-	[Message(InnerMessage.ObjectUnLockRequest)]
-	[MemoryPackable]
-	public partial class ObjectUnLockRequest: MessageObject, IRequest
-	{
-		public static ObjectUnLockRequest Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(ObjectUnLockRequest), isFromPool) as ObjectUnLockRequest; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Type { get; set; }
-
-		[MemoryPackOrder(2)]
-		public long Key { get; set; }
-
-		[MemoryPackOrder(3)]
-		public ActorId OldActorId { get; set; }
-
-		[MemoryPackOrder(4)]
-		public ActorId NewActorId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Type = default;
-			this.Key = default;
-			this.OldActorId = default;
-			this.NewActorId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(InnerMessage.ObjectUnLockResponse)]
-	[MemoryPackable]
-	public partial class ObjectUnLockResponse: MessageObject, IResponse
-	{
-		public static ObjectUnLockResponse Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(ObjectUnLockResponse), isFromPool) as ObjectUnLockResponse; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(ObjectRemoveResponse))]
-	[Message(InnerMessage.ObjectRemoveRequest)]
-	[MemoryPackable]
-	public partial class ObjectRemoveRequest: MessageObject, IRequest
-	{
-		public static ObjectRemoveRequest Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(ObjectRemoveRequest), isFromPool) as ObjectRemoveRequest; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Type { get; set; }
-
-		[MemoryPackOrder(2)]
-		public long Key { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Type = default;
-			this.Key = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(InnerMessage.ObjectRemoveResponse)]
-	[MemoryPackable]
-	public partial class ObjectRemoveResponse: MessageObject, IResponse
-	{
-		public static ObjectRemoveResponse Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(ObjectRemoveResponse), isFromPool) as ObjectRemoveResponse; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(ObjectGetResponse))]
-	[Message(InnerMessage.ObjectGetRequest)]
-	[MemoryPackable]
-	public partial class ObjectGetRequest: MessageObject, IRequest
-	{
-		public static ObjectGetRequest Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(ObjectGetRequest), isFromPool) as ObjectGetRequest; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Type { get; set; }
-
-		[MemoryPackOrder(2)]
-		public long Key { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Type = default;
-			this.Key = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(InnerMessage.ObjectGetResponse)]
-	[MemoryPackable]
-	public partial class ObjectGetResponse: MessageObject, IResponse
-	{
-		public static ObjectGetResponse Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(ObjectGetResponse), isFromPool) as ObjectGetResponse; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		[MemoryPackOrder(3)]
-		public int Type { get; set; }
-
-		[MemoryPackOrder(4)]
-		public ActorId ActorId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			this.Type = default;
-			this.ActorId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(G2R_GetLoginKey))]
-	[Message(InnerMessage.R2G_GetLoginKey)]
-	[MemoryPackable]
-	public partial class R2G_GetLoginKey: MessageObject, IRequest
-	{
-		public static R2G_GetLoginKey Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(R2G_GetLoginKey), isFromPool) as R2G_GetLoginKey; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public string Account { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Account = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(InnerMessage.G2R_GetLoginKey)]
-	[MemoryPackable]
-	public partial class G2R_GetLoginKey: MessageObject, IResponse
-	{
-		public static G2R_GetLoginKey Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(G2R_GetLoginKey), isFromPool) as G2R_GetLoginKey; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		[MemoryPackOrder(3)]
-		public long Key { get; set; }
-
-		[MemoryPackOrder(4)]
-		public long GateId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			this.Key = default;
-			this.GateId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(InnerMessage.G2M_SessionDisconnect)]
-	[MemoryPackable]
-	public partial class G2M_SessionDisconnect: MessageObject, ILocationMessage
-	{
-		public static G2M_SessionDisconnect Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(G2M_SessionDisconnect), isFromPool) as G2M_SessionDisconnect; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(InnerMessage.ObjectQueryResponse)]
-	[MemoryPackable]
-	public partial class ObjectQueryResponse: MessageObject, IResponse
-	{
-		public static ObjectQueryResponse Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(ObjectQueryResponse), isFromPool) as ObjectQueryResponse; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		[MemoryPackOrder(3)]
-		public byte[] Entity { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			this.Entity = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(M2M_UnitTransferResponse))]
-	[Message(InnerMessage.M2M_UnitTransferRequest)]
-	[MemoryPackable]
-	public partial class M2M_UnitTransferRequest: MessageObject, IRequest
-	{
-		public static M2M_UnitTransferRequest Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(M2M_UnitTransferRequest), isFromPool) as M2M_UnitTransferRequest; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public ActorId OldActorId { get; set; }
-
-		[MemoryPackOrder(2)]
-		public byte[] Unit { get; set; }
-
-		[MemoryPackOrder(3)]
-		public List<byte[]> Entitys { get; set; } = new();
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.OldActorId = default;
-			this.Unit = default;
-			this.Entitys.Clear();
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(InnerMessage.M2M_UnitTransferResponse)]
-	[MemoryPackable]
-	public partial class M2M_UnitTransferResponse: MessageObject, IResponse
-	{
-		public static M2M_UnitTransferResponse Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(M2M_UnitTransferResponse), isFromPool) as M2M_UnitTransferResponse; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	public static class InnerMessage
-	{
-		 public const ushort ObjectQueryRequest = 20002;
-		 public const ushort M2A_Reload = 20003;
-		 public const ushort A2M_Reload = 20004;
-		 public const ushort G2G_LockRequest = 20005;
-		 public const ushort G2G_LockResponse = 20006;
-		 public const ushort G2G_LockReleaseRequest = 20007;
-		 public const ushort G2G_LockReleaseResponse = 20008;
-		 public const ushort ObjectAddRequest = 20009;
-		 public const ushort ObjectAddResponse = 20010;
-		 public const ushort ObjectLockRequest = 20011;
-		 public const ushort ObjectLockResponse = 20012;
-		 public const ushort ObjectUnLockRequest = 20013;
-		 public const ushort ObjectUnLockResponse = 20014;
-		 public const ushort ObjectRemoveRequest = 20015;
-		 public const ushort ObjectRemoveResponse = 20016;
-		 public const ushort ObjectGetRequest = 20017;
-		 public const ushort ObjectGetResponse = 20018;
-		 public const ushort R2G_GetLoginKey = 20019;
-		 public const ushort G2R_GetLoginKey = 20020;
-		 public const ushort G2M_SessionDisconnect = 20021;
-		 public const ushort ObjectQueryResponse = 20022;
-		 public const ushort M2M_UnitTransferRequest = 20023;
-		 public const ushort M2M_UnitTransferResponse = 20024;
-	}
-}
+    [MemoryPackable]
+    [Message(InnerMessage.ObjectQueryRequest)]
+    [ResponseType(nameof(ObjectQueryResponse))]
+    public partial class ObjectQueryRequest : MessageObject, IRequest
+    {
+        public static ObjectQueryRequest Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(ObjectQueryRequest), isFromPool) as ObjectQueryRequest;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public long Key { get; set; }
+
+        [MemoryPackOrder(2)]
+        public long InstanceId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Key = default;
+            this.InstanceId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.M2A_Reload)]
+    [ResponseType(nameof(A2M_Reload))]
+    public partial class M2A_Reload : MessageObject, IRequest
+    {
+        public static M2A_Reload Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(M2A_Reload), isFromPool) as M2A_Reload;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.A2M_Reload)]
+    public partial class A2M_Reload : MessageObject, IResponse
+    {
+        public static A2M_Reload Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(A2M_Reload), isFromPool) as A2M_Reload;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.G2G_LockRequest)]
+    [ResponseType(nameof(G2G_LockResponse))]
+    public partial class G2G_LockRequest : MessageObject, IRequest
+    {
+        public static G2G_LockRequest Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(G2G_LockRequest), isFromPool) as G2G_LockRequest;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public long Id { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Address { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Id = default;
+            this.Address = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.G2G_LockResponse)]
+    public partial class G2G_LockResponse : MessageObject, IResponse
+    {
+        public static G2G_LockResponse Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(G2G_LockResponse), isFromPool) as G2G_LockResponse;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.G2G_LockReleaseRequest)]
+    [ResponseType(nameof(G2G_LockReleaseResponse))]
+    public partial class G2G_LockReleaseRequest : MessageObject, IRequest
+    {
+        public static G2G_LockReleaseRequest Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(G2G_LockReleaseRequest), isFromPool) as G2G_LockReleaseRequest;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public long Id { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Address { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Id = default;
+            this.Address = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.G2G_LockReleaseResponse)]
+    public partial class G2G_LockReleaseResponse : MessageObject, IResponse
+    {
+        public static G2G_LockReleaseResponse Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(G2G_LockReleaseResponse), isFromPool) as G2G_LockReleaseResponse;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.ObjectAddRequest)]
+    [ResponseType(nameof(ObjectAddResponse))]
+    public partial class ObjectAddRequest : MessageObject, IRequest
+    {
+        public static ObjectAddRequest Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(ObjectAddRequest), isFromPool) as ObjectAddRequest;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Type { get; set; }
+
+        [MemoryPackOrder(2)]
+        public long Key { get; set; }
+
+        [MemoryPackOrder(3)]
+        public ActorId ActorId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Type = default;
+            this.Key = default;
+            this.ActorId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.ObjectAddResponse)]
+    public partial class ObjectAddResponse : MessageObject, IResponse
+    {
+        public static ObjectAddResponse Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(ObjectAddResponse), isFromPool) as ObjectAddResponse;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.ObjectLockRequest)]
+    [ResponseType(nameof(ObjectLockResponse))]
+    public partial class ObjectLockRequest : MessageObject, IRequest
+    {
+        public static ObjectLockRequest Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(ObjectLockRequest), isFromPool) as ObjectLockRequest;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Type { get; set; }
+
+        [MemoryPackOrder(2)]
+        public long Key { get; set; }
+
+        [MemoryPackOrder(3)]
+        public ActorId ActorId { get; set; }
+
+        [MemoryPackOrder(4)]
+        public int Time { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Type = default;
+            this.Key = default;
+            this.ActorId = default;
+            this.Time = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.ObjectLockResponse)]
+    public partial class ObjectLockResponse : MessageObject, IResponse
+    {
+        public static ObjectLockResponse Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(ObjectLockResponse), isFromPool) as ObjectLockResponse;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.ObjectUnLockRequest)]
+    [ResponseType(nameof(ObjectUnLockResponse))]
+    public partial class ObjectUnLockRequest : MessageObject, IRequest
+    {
+        public static ObjectUnLockRequest Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(ObjectUnLockRequest), isFromPool) as ObjectUnLockRequest;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Type { get; set; }
+
+        [MemoryPackOrder(2)]
+        public long Key { get; set; }
+
+        [MemoryPackOrder(3)]
+        public ActorId OldActorId { get; set; }
+
+        [MemoryPackOrder(4)]
+        public ActorId NewActorId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Type = default;
+            this.Key = default;
+            this.OldActorId = default;
+            this.NewActorId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.ObjectUnLockResponse)]
+    public partial class ObjectUnLockResponse : MessageObject, IResponse
+    {
+        public static ObjectUnLockResponse Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(ObjectUnLockResponse), isFromPool) as ObjectUnLockResponse;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.ObjectRemoveRequest)]
+    [ResponseType(nameof(ObjectRemoveResponse))]
+    public partial class ObjectRemoveRequest : MessageObject, IRequest
+    {
+        public static ObjectRemoveRequest Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(ObjectRemoveRequest), isFromPool) as ObjectRemoveRequest;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Type { get; set; }
+
+        [MemoryPackOrder(2)]
+        public long Key { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Type = default;
+            this.Key = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.ObjectRemoveResponse)]
+    public partial class ObjectRemoveResponse : MessageObject, IResponse
+    {
+        public static ObjectRemoveResponse Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(ObjectRemoveResponse), isFromPool) as ObjectRemoveResponse;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.ObjectGetRequest)]
+    [ResponseType(nameof(ObjectGetResponse))]
+    public partial class ObjectGetRequest : MessageObject, IRequest
+    {
+        public static ObjectGetRequest Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(ObjectGetRequest), isFromPool) as ObjectGetRequest;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Type { get; set; }
+
+        [MemoryPackOrder(2)]
+        public long Key { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Type = default;
+            this.Key = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.ObjectGetResponse)]
+    public partial class ObjectGetResponse : MessageObject, IResponse
+    {
+        public static ObjectGetResponse Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(ObjectGetResponse), isFromPool) as ObjectGetResponse;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        [MemoryPackOrder(3)]
+        public int Type { get; set; }
+
+        [MemoryPackOrder(4)]
+        public ActorId ActorId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+            this.Type = default;
+            this.ActorId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.R2G_GetLoginKey)]
+    [ResponseType(nameof(G2R_GetLoginKey))]
+    public partial class R2G_GetLoginKey : MessageObject, IRequest
+    {
+        public static R2G_GetLoginKey Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(R2G_GetLoginKey), isFromPool) as R2G_GetLoginKey;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public string Account { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Account = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.G2R_GetLoginKey)]
+    public partial class G2R_GetLoginKey : MessageObject, IResponse
+    {
+        public static G2R_GetLoginKey Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(G2R_GetLoginKey), isFromPool) as G2R_GetLoginKey;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        [MemoryPackOrder(3)]
+        public long Key { get; set; }
+
+        [MemoryPackOrder(4)]
+        public long GateId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+            this.Key = default;
+            this.GateId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.G2M_SessionDisconnect)]
+    public partial class G2M_SessionDisconnect : MessageObject, ILocationMessage
+    {
+        public static G2M_SessionDisconnect Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(G2M_SessionDisconnect), isFromPool) as G2M_SessionDisconnect;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.ObjectQueryResponse)]
+    public partial class ObjectQueryResponse : MessageObject, IResponse
+    {
+        public static ObjectQueryResponse Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(ObjectQueryResponse), isFromPool) as ObjectQueryResponse;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        [MemoryPackOrder(3)]
+        public byte[] Entity { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+            this.Entity = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.M2M_UnitTransferRequest)]
+    [ResponseType(nameof(M2M_UnitTransferResponse))]
+    public partial class M2M_UnitTransferRequest : MessageObject, IRequest
+    {
+        public static M2M_UnitTransferRequest Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(M2M_UnitTransferRequest), isFromPool) as M2M_UnitTransferRequest;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public ActorId OldActorId { get; set; }
+
+        [MemoryPackOrder(2)]
+        public byte[] Unit { get; set; }
+
+        [MemoryPackOrder(3)]
+        public List<byte[]> Entitys { get; set; } = new();
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.OldActorId = default;
+            this.Unit = default;
+            this.Entitys.Clear();
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(InnerMessage.M2M_UnitTransferResponse)]
+    public partial class M2M_UnitTransferResponse : MessageObject, IResponse
+    {
+        public static M2M_UnitTransferResponse Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(M2M_UnitTransferResponse), isFromPool) as M2M_UnitTransferResponse;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    public static class InnerMessage
+    {
+        public const ushort ObjectQueryRequest = 20002;
+        public const ushort M2A_Reload = 20003;
+        public const ushort A2M_Reload = 20004;
+        public const ushort G2G_LockRequest = 20005;
+        public const ushort G2G_LockResponse = 20006;
+        public const ushort G2G_LockReleaseRequest = 20007;
+        public const ushort G2G_LockReleaseResponse = 20008;
+        public const ushort ObjectAddRequest = 20009;
+        public const ushort ObjectAddResponse = 20010;
+        public const ushort ObjectLockRequest = 20011;
+        public const ushort ObjectLockResponse = 20012;
+        public const ushort ObjectUnLockRequest = 20013;
+        public const ushort ObjectUnLockResponse = 20014;
+        public const ushort ObjectRemoveRequest = 20015;
+        public const ushort ObjectRemoveResponse = 20016;
+        public const ushort ObjectGetRequest = 20017;
+        public const ushort ObjectGetResponse = 20018;
+        public const ushort R2G_GetLoginKey = 20019;
+        public const ushort G2R_GetLoginKey = 20020;
+        public const ushort G2M_SessionDisconnect = 20021;
+        public const ushort ObjectQueryResponse = 20022;
+        public const ushort M2M_UnitTransferRequest = 20023;
+        public const ushort M2M_UnitTransferResponse = 20024;
+    }
+}

+ 287 - 259
Unity/Assets/Scripts/Model/Generate/Server/Message/LockStepInner_S_21001.cs

@@ -1,263 +1,291 @@
-using ET;
 using MemoryPack;
 using System.Collections.Generic;
+
 namespace ET
 {
-// 请求匹配
-	[ResponseType(nameof(Match2G_Match))]
-	[Message(LockStepInner.G2Match_Match)]
-	[MemoryPackable]
-	public partial class G2Match_Match: MessageObject, IRequest
-	{
-		public static G2Match_Match Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(G2Match_Match), isFromPool) as G2Match_Match; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public long Id { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Id = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(LockStepInner.Match2G_Match)]
-	[MemoryPackable]
-	public partial class Match2G_Match: MessageObject, IResponse
-	{
-		public static Match2G_Match Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(Match2G_Match), isFromPool) as Match2G_Match; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(Map2Match_GetRoom))]
-	[Message(LockStepInner.Match2Map_GetRoom)]
-	[MemoryPackable]
-	public partial class Match2Map_GetRoom: MessageObject, IRequest
-	{
-		public static Match2Map_GetRoom Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(Match2Map_GetRoom), isFromPool) as Match2Map_GetRoom; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public List<long> PlayerIds { get; set; } = new();
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.PlayerIds.Clear();
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(LockStepInner.Map2Match_GetRoom)]
-	[MemoryPackable]
-	public partial class Map2Match_GetRoom: MessageObject, IResponse
-	{
-		public static Map2Match_GetRoom Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(Map2Match_GetRoom), isFromPool) as Map2Match_GetRoom; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-// 房间的ActorId
-		[MemoryPackOrder(3)]
-		public ActorId ActorId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			this.ActorId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(Room2G_Reconnect))]
-	[Message(LockStepInner.G2Room_Reconnect)]
-	[MemoryPackable]
-	public partial class G2Room_Reconnect: MessageObject, IRequest
-	{
-		public static G2Room_Reconnect Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(G2Room_Reconnect), isFromPool) as G2Room_Reconnect; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public long PlayerId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.PlayerId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(LockStepInner.Room2G_Reconnect)]
-	[MemoryPackable]
-	public partial class Room2G_Reconnect: MessageObject, IResponse
-	{
-		public static Room2G_Reconnect Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(Room2G_Reconnect), isFromPool) as Room2G_Reconnect; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		[MemoryPackOrder(3)]
-		public long StartTime { get; set; }
-
-		[MemoryPackOrder(4)]
-		public List<LockStepUnitInfo> UnitInfos { get; set; } = new();
-
-		[MemoryPackOrder(5)]
-		public int Frame { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			this.StartTime = default;
-			this.UnitInfos.Clear();
-			this.Frame = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(Room2RoomManager_Init))]
-	[Message(LockStepInner.RoomManager2Room_Init)]
-	[MemoryPackable]
-	public partial class RoomManager2Room_Init: MessageObject, IRequest
-	{
-		public static RoomManager2Room_Init Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(RoomManager2Room_Init), isFromPool) as RoomManager2Room_Init; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public List<long> PlayerIds { get; set; } = new();
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.PlayerIds.Clear();
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(LockStepInner.Room2RoomManager_Init)]
-	[MemoryPackable]
-	public partial class Room2RoomManager_Init: MessageObject, IResponse
-	{
-		public static Room2RoomManager_Init Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(Room2RoomManager_Init), isFromPool) as Room2RoomManager_Init; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	public static class LockStepInner
-	{
-		 public const ushort G2Match_Match = 21002;
-		 public const ushort Match2G_Match = 21003;
-		 public const ushort Match2Map_GetRoom = 21004;
-		 public const ushort Map2Match_GetRoom = 21005;
-		 public const ushort G2Room_Reconnect = 21006;
-		 public const ushort Room2G_Reconnect = 21007;
-		 public const ushort RoomManager2Room_Init = 21008;
-		 public const ushort Room2RoomManager_Init = 21009;
-	}
-}
+    /// <summary>
+    /// 请求匹配
+    /// </summary>
+    [MemoryPackable]
+    [Message(LockStepInner.G2Match_Match)]
+    [ResponseType(nameof(Match2G_Match))]
+    public partial class G2Match_Match : MessageObject, IRequest
+    {
+        public static G2Match_Match Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(G2Match_Match), isFromPool) as G2Match_Match;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public long Id { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Id = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(LockStepInner.Match2G_Match)]
+    public partial class Match2G_Match : MessageObject, IResponse
+    {
+        public static Match2G_Match Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(Match2G_Match), isFromPool) as Match2G_Match;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(LockStepInner.Match2Map_GetRoom)]
+    [ResponseType(nameof(Map2Match_GetRoom))]
+    public partial class Match2Map_GetRoom : MessageObject, IRequest
+    {
+        public static Match2Map_GetRoom Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(Match2Map_GetRoom), isFromPool) as Match2Map_GetRoom;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public List<long> PlayerIds { get; set; } = new();
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.PlayerIds.Clear();
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(LockStepInner.Map2Match_GetRoom)]
+    public partial class Map2Match_GetRoom : MessageObject, IResponse
+    {
+        public static Map2Match_GetRoom Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(Map2Match_GetRoom), isFromPool) as Map2Match_GetRoom;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        /// <summary>
+        /// 房间的ActorId
+        /// </summary>
+        [MemoryPackOrder(3)]
+        public ActorId ActorId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+            this.ActorId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(LockStepInner.G2Room_Reconnect)]
+    [ResponseType(nameof(Room2G_Reconnect))]
+    public partial class G2Room_Reconnect : MessageObject, IRequest
+    {
+        public static G2Room_Reconnect Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(G2Room_Reconnect), isFromPool) as G2Room_Reconnect;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public long PlayerId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.PlayerId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(LockStepInner.Room2G_Reconnect)]
+    public partial class Room2G_Reconnect : MessageObject, IResponse
+    {
+        public static Room2G_Reconnect Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(Room2G_Reconnect), isFromPool) as Room2G_Reconnect;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        [MemoryPackOrder(3)]
+        public long StartTime { get; set; }
+
+        [MemoryPackOrder(4)]
+        public List<LockStepUnitInfo> UnitInfos { get; set; } = new();
+
+        [MemoryPackOrder(5)]
+        public int Frame { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+            this.StartTime = default;
+            this.UnitInfos.Clear();
+            this.Frame = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(LockStepInner.RoomManager2Room_Init)]
+    [ResponseType(nameof(Room2RoomManager_Init))]
+    public partial class RoomManager2Room_Init : MessageObject, IRequest
+    {
+        public static RoomManager2Room_Init Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(RoomManager2Room_Init), isFromPool) as RoomManager2Room_Init;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public List<long> PlayerIds { get; set; } = new();
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.PlayerIds.Clear();
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(LockStepInner.Room2RoomManager_Init)]
+    public partial class Room2RoomManager_Init : MessageObject, IResponse
+    {
+        public static Room2RoomManager_Init Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(Room2RoomManager_Init), isFromPool) as Room2RoomManager_Init;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    public static class LockStepInner
+    {
+        public const ushort G2Match_Match = 21002;
+        public const ushort Match2G_Match = 21003;
+        public const ushort Match2Map_GetRoom = 21004;
+        public const ushort Map2Match_GetRoom = 21005;
+        public const ushort G2Room_Reconnect = 21006;
+        public const ushort Room2G_Reconnect = 21007;
+        public const ushort RoomManager2Room_Init = 21008;
+        public const ushort Room2RoomManager_Init = 21009;
+    }
+}

+ 382 - 338
Unity/Assets/Scripts/Model/Generate/Server/Message/LockStepOuter_C_11001.cs

@@ -1,342 +1,386 @@
-using ET;
 using MemoryPack;
 using System.Collections.Generic;
+
 namespace ET
 {
-	[ResponseType(nameof(G2C_Match))]
-	[Message(LockStepOuter.C2G_Match)]
-	[MemoryPackable]
-	public partial class C2G_Match: MessageObject, ISessionRequest
-	{
-		public static C2G_Match Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2G_Match), isFromPool) as C2G_Match; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(LockStepOuter.G2C_Match)]
-	[MemoryPackable]
-	public partial class G2C_Match: MessageObject, ISessionResponse
-	{
-		public static G2C_Match Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(G2C_Match), isFromPool) as G2C_Match; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-// 匹配成功,通知客户端切换场景
-	[Message(LockStepOuter.Match2G_NotifyMatchSuccess)]
-	[MemoryPackable]
-	public partial class Match2G_NotifyMatchSuccess: MessageObject, IMessage
-	{
-		public static Match2G_NotifyMatchSuccess Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(Match2G_NotifyMatchSuccess), isFromPool) as Match2G_NotifyMatchSuccess; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-// 房间的ActorId
-		[MemoryPackOrder(1)]
-		public ActorId ActorId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.ActorId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-// 客户端通知房间切换场景完成
-	[Message(LockStepOuter.C2Room_ChangeSceneFinish)]
-	[MemoryPackable]
-	public partial class C2Room_ChangeSceneFinish: MessageObject, IRoomMessage
-	{
-		public static C2Room_ChangeSceneFinish Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2Room_ChangeSceneFinish), isFromPool) as C2Room_ChangeSceneFinish; 
-		}
-
-		[MemoryPackOrder(0)]
-		public long PlayerId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.PlayerId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(LockStepOuter.LockStepUnitInfo)]
-	[MemoryPackable]
-	public partial class LockStepUnitInfo: MessageObject
-	{
-		public static LockStepUnitInfo Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(LockStepUnitInfo), isFromPool) as LockStepUnitInfo; 
-		}
-
-		[MemoryPackOrder(0)]
-		public long PlayerId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public TrueSync.TSVector Position { get; set; }
-
-		[MemoryPackOrder(2)]
-		public TrueSync.TSQuaternion Rotation { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.PlayerId = default;
-			this.Position = default;
-			this.Rotation = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-// 房间通知客户端进入战斗
-	[Message(LockStepOuter.Room2C_Start)]
-	[MemoryPackable]
-	public partial class Room2C_Start: MessageObject, IMessage
-	{
-		public static Room2C_Start Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(Room2C_Start), isFromPool) as Room2C_Start; 
-		}
-
-		[MemoryPackOrder(0)]
-		public long StartTime { get; set; }
-
-		[MemoryPackOrder(1)]
-		public List<LockStepUnitInfo> UnitInfo { get; set; } = new();
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.StartTime = default;
-			this.UnitInfo.Clear();
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(LockStepOuter.FrameMessage)]
-	[MemoryPackable]
-	public partial class FrameMessage: MessageObject, IMessage
-	{
-		public static FrameMessage Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(FrameMessage), isFromPool) as FrameMessage; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int Frame { get; set; }
-
-		[MemoryPackOrder(1)]
-		public long PlayerId { get; set; }
-
-		[MemoryPackOrder(2)]
-		public LSInput Input { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.Frame = default;
-			this.PlayerId = default;
-			this.Input = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(LockStepOuter.OneFrameInputs)]
-	[MemoryPackable]
-	public partial class OneFrameInputs: MessageObject, IMessage
-	{
-		public static OneFrameInputs Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(OneFrameInputs), isFromPool) as OneFrameInputs; 
-		}
-
-		[MongoDB.Bson.Serialization.Attributes.BsonDictionaryOptions(MongoDB.Bson.Serialization.Options.DictionaryRepresentation.ArrayOfArrays)]
-		[MemoryPackOrder(1)]
-		public Dictionary<long, LSInput> Inputs { get; set; } = new();
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.Inputs.Clear();
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(LockStepOuter.Room2C_AdjustUpdateTime)]
-	[MemoryPackable]
-	public partial class Room2C_AdjustUpdateTime: MessageObject, IMessage
-	{
-		public static Room2C_AdjustUpdateTime Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(Room2C_AdjustUpdateTime), isFromPool) as Room2C_AdjustUpdateTime; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int DiffTime { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.DiffTime = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(LockStepOuter.C2Room_CheckHash)]
-	[MemoryPackable]
-	public partial class C2Room_CheckHash: MessageObject, IRoomMessage
-	{
-		public static C2Room_CheckHash Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2Room_CheckHash), isFromPool) as C2Room_CheckHash; 
-		}
-
-		[MemoryPackOrder(0)]
-		public long PlayerId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Frame { get; set; }
-
-		[MemoryPackOrder(2)]
-		public long Hash { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.PlayerId = default;
-			this.Frame = default;
-			this.Hash = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(LockStepOuter.Room2C_CheckHashFail)]
-	[MemoryPackable]
-	public partial class Room2C_CheckHashFail: MessageObject, IMessage
-	{
-		public static Room2C_CheckHashFail Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(Room2C_CheckHashFail), isFromPool) as Room2C_CheckHashFail; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int Frame { get; set; }
-
-		[MemoryPackOrder(1)]
-		public byte[] LSWorldBytes { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.Frame = default;
-			this.LSWorldBytes = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(LockStepOuter.G2C_Reconnect)]
-	[MemoryPackable]
-	public partial class G2C_Reconnect: MessageObject, IMessage
-	{
-		public static G2C_Reconnect Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(G2C_Reconnect), isFromPool) as G2C_Reconnect; 
-		}
-
-		[MemoryPackOrder(0)]
-		public long StartTime { get; set; }
-
-		[MemoryPackOrder(1)]
-		public List<LockStepUnitInfo> UnitInfos { get; set; } = new();
-
-		[MemoryPackOrder(2)]
-		public int Frame { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.StartTime = default;
-			this.UnitInfos.Clear();
-			this.Frame = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	public static class LockStepOuter
-	{
-		 public const ushort C2G_Match = 11002;
-		 public const ushort G2C_Match = 11003;
-		 public const ushort Match2G_NotifyMatchSuccess = 11004;
-		 public const ushort C2Room_ChangeSceneFinish = 11005;
-		 public const ushort LockStepUnitInfo = 11006;
-		 public const ushort Room2C_Start = 11007;
-		 public const ushort FrameMessage = 11008;
-		 public const ushort OneFrameInputs = 11009;
-		 public const ushort Room2C_AdjustUpdateTime = 11010;
-		 public const ushort C2Room_CheckHash = 11011;
-		 public const ushort Room2C_CheckHashFail = 11012;
-		 public const ushort G2C_Reconnect = 11013;
-	}
-}
+    [MemoryPackable]
+    [Message(LockStepOuter.C2G_Match)]
+    [ResponseType(nameof(G2C_Match))]
+    public partial class C2G_Match : MessageObject, ISessionRequest
+    {
+        public static C2G_Match Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2G_Match), isFromPool) as C2G_Match;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(LockStepOuter.G2C_Match)]
+    public partial class G2C_Match : MessageObject, ISessionResponse
+    {
+        public static G2C_Match Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(G2C_Match), isFromPool) as G2C_Match;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    /// <summary>
+    /// 匹配成功,通知客户端切换场景
+    /// </summary>
+    [MemoryPackable]
+    [Message(LockStepOuter.Match2G_NotifyMatchSuccess)]
+    public partial class Match2G_NotifyMatchSuccess : MessageObject, IMessage
+    {
+        public static Match2G_NotifyMatchSuccess Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(Match2G_NotifyMatchSuccess), isFromPool) as Match2G_NotifyMatchSuccess;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        /// <summary>
+        /// 房间的ActorId
+        /// </summary>
+        [MemoryPackOrder(1)]
+        public ActorId ActorId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.ActorId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    /// <summary>
+    /// 客户端通知房间切换场景完成
+    /// </summary>
+    [MemoryPackable]
+    [Message(LockStepOuter.C2Room_ChangeSceneFinish)]
+    public partial class C2Room_ChangeSceneFinish : MessageObject, IRoomMessage
+    {
+        public static C2Room_ChangeSceneFinish Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2Room_ChangeSceneFinish), isFromPool) as C2Room_ChangeSceneFinish;
+        }
+
+        [MemoryPackOrder(0)]
+        public long PlayerId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.PlayerId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(LockStepOuter.LockStepUnitInfo)]
+    public partial class LockStepUnitInfo : MessageObject
+    {
+        public static LockStepUnitInfo Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(LockStepUnitInfo), isFromPool) as LockStepUnitInfo;
+        }
+
+        [MemoryPackOrder(0)]
+        public long PlayerId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public TrueSync.TSVector Position { get; set; }
+
+        [MemoryPackOrder(2)]
+        public TrueSync.TSQuaternion Rotation { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.PlayerId = default;
+            this.Position = default;
+            this.Rotation = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    /// <summary>
+    /// 房间通知客户端进入战斗
+    /// </summary>
+    [MemoryPackable]
+    [Message(LockStepOuter.Room2C_Start)]
+    public partial class Room2C_Start : MessageObject, IMessage
+    {
+        public static Room2C_Start Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(Room2C_Start), isFromPool) as Room2C_Start;
+        }
+
+        [MemoryPackOrder(0)]
+        public long StartTime { get; set; }
+
+        [MemoryPackOrder(1)]
+        public List<LockStepUnitInfo> UnitInfo { get; set; } = new();
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.StartTime = default;
+            this.UnitInfo.Clear();
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(LockStepOuter.FrameMessage)]
+    public partial class FrameMessage : MessageObject, IMessage
+    {
+        public static FrameMessage Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(FrameMessage), isFromPool) as FrameMessage;
+        }
+
+        [MemoryPackOrder(0)]
+        public int Frame { get; set; }
+
+        [MemoryPackOrder(1)]
+        public long PlayerId { get; set; }
+
+        [MemoryPackOrder(2)]
+        public LSInput Input { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.Frame = default;
+            this.PlayerId = default;
+            this.Input = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(LockStepOuter.OneFrameInputs)]
+    public partial class OneFrameInputs : MessageObject, IMessage
+    {
+        public static OneFrameInputs Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(OneFrameInputs), isFromPool) as OneFrameInputs;
+        }
+
+        [MongoDB.Bson.Serialization.Attributes.BsonDictionaryOptions(MongoDB.Bson.Serialization.Options.DictionaryRepresentation.ArrayOfArrays)]
+        [MemoryPackOrder(1)]
+        public Dictionary<long, LSInput> Inputs { get; set; } = new();
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.Inputs.Clear();
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(LockStepOuter.Room2C_AdjustUpdateTime)]
+    public partial class Room2C_AdjustUpdateTime : MessageObject, IMessage
+    {
+        public static Room2C_AdjustUpdateTime Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(Room2C_AdjustUpdateTime), isFromPool) as Room2C_AdjustUpdateTime;
+        }
+
+        [MemoryPackOrder(0)]
+        public int DiffTime { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.DiffTime = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(LockStepOuter.C2Room_CheckHash)]
+    public partial class C2Room_CheckHash : MessageObject, IRoomMessage
+    {
+        public static C2Room_CheckHash Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2Room_CheckHash), isFromPool) as C2Room_CheckHash;
+        }
+
+        [MemoryPackOrder(0)]
+        public long PlayerId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Frame { get; set; }
+
+        [MemoryPackOrder(2)]
+        public long Hash { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.PlayerId = default;
+            this.Frame = default;
+            this.Hash = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(LockStepOuter.Room2C_CheckHashFail)]
+    public partial class Room2C_CheckHashFail : MessageObject, IMessage
+    {
+        public static Room2C_CheckHashFail Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(Room2C_CheckHashFail), isFromPool) as Room2C_CheckHashFail;
+        }
+
+        [MemoryPackOrder(0)]
+        public int Frame { get; set; }
+
+        [MemoryPackOrder(1)]
+        public byte[] LSWorldBytes { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.Frame = default;
+            this.LSWorldBytes = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(LockStepOuter.G2C_Reconnect)]
+    public partial class G2C_Reconnect : MessageObject, IMessage
+    {
+        public static G2C_Reconnect Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(G2C_Reconnect), isFromPool) as G2C_Reconnect;
+        }
+
+        [MemoryPackOrder(0)]
+        public long StartTime { get; set; }
+
+        [MemoryPackOrder(1)]
+        public List<LockStepUnitInfo> UnitInfos { get; set; } = new();
+
+        [MemoryPackOrder(2)]
+        public int Frame { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.StartTime = default;
+            this.UnitInfos.Clear();
+            this.Frame = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    public static class LockStepOuter
+    {
+        public const ushort C2G_Match = 11002;
+        public const ushort G2C_Match = 11003;
+        public const ushort Match2G_NotifyMatchSuccess = 11004;
+        public const ushort C2Room_ChangeSceneFinish = 11005;
+        public const ushort LockStepUnitInfo = 11006;
+        public const ushort Room2C_Start = 11007;
+        public const ushort FrameMessage = 11008;
+        public const ushort OneFrameInputs = 11009;
+        public const ushort Room2C_AdjustUpdateTime = 11010;
+        public const ushort C2Room_CheckHash = 11011;
+        public const ushort Room2C_CheckHashFail = 11012;
+        public const ushort G2C_Reconnect = 11013;
+    }
+}

+ 1118 - 1005
Unity/Assets/Scripts/Model/Generate/Server/Message/OuterMessage_C_10001.cs

@@ -1,1009 +1,1122 @@
-using ET;
 using MemoryPack;
 using System.Collections.Generic;
+
 namespace ET
 {
-	[Message(OuterMessage.HttpGetRouterResponse)]
-	[MemoryPackable]
-	public partial class HttpGetRouterResponse: MessageObject
-	{
-		public static HttpGetRouterResponse Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(HttpGetRouterResponse), isFromPool) as HttpGetRouterResponse; 
-		}
-
-		[MemoryPackOrder(0)]
-		public List<string> Realms { get; set; } = new();
-
-		[MemoryPackOrder(1)]
-		public List<string> Routers { get; set; } = new();
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.Realms.Clear();
-			this.Routers.Clear();
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.RouterSync)]
-	[MemoryPackable]
-	public partial class RouterSync: MessageObject
-	{
-		public static RouterSync Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(RouterSync), isFromPool) as RouterSync; 
-		}
-
-		[MemoryPackOrder(0)]
-		public uint ConnectId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public string Address { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.ConnectId = default;
-			this.Address = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(M2C_TestResponse))]
-	[Message(OuterMessage.C2M_TestRequest)]
-	[MemoryPackable]
-	public partial class C2M_TestRequest: MessageObject, ILocationRequest
-	{
-		public static C2M_TestRequest Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2M_TestRequest), isFromPool) as C2M_TestRequest; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public string request { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.request = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.M2C_TestResponse)]
-	[MemoryPackable]
-	public partial class M2C_TestResponse: MessageObject, IResponse
-	{
-		public static M2C_TestResponse Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(M2C_TestResponse), isFromPool) as M2C_TestResponse; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		[MemoryPackOrder(3)]
-		public string response { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			this.response = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(G2C_EnterMap))]
-	[Message(OuterMessage.C2G_EnterMap)]
-	[MemoryPackable]
-	public partial class C2G_EnterMap: MessageObject, ISessionRequest
-	{
-		public static C2G_EnterMap Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2G_EnterMap), isFromPool) as C2G_EnterMap; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.G2C_EnterMap)]
-	[MemoryPackable]
-	public partial class G2C_EnterMap: MessageObject, ISessionResponse
-	{
-		public static G2C_EnterMap Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(G2C_EnterMap), isFromPool) as G2C_EnterMap; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-// 自己unitId
-		[MemoryPackOrder(3)]
-		public long MyId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			this.MyId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.MoveInfo)]
-	[MemoryPackable]
-	public partial class MoveInfo: MessageObject
-	{
-		public static MoveInfo Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(MoveInfo), isFromPool) as MoveInfo; 
-		}
-
-		[MemoryPackOrder(0)]
-		public List<Unity.Mathematics.float3> Points { get; set; } = new();
-
-		[MemoryPackOrder(1)]
-		public Unity.Mathematics.quaternion Rotation { get; set; }
-
-		[MemoryPackOrder(2)]
-		public int TurnSpeed { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.Points.Clear();
-			this.Rotation = default;
-			this.TurnSpeed = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.UnitInfo)]
-	[MemoryPackable]
-	public partial class UnitInfo: MessageObject
-	{
-		public static UnitInfo Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(UnitInfo), isFromPool) as UnitInfo; 
-		}
-
-		[MemoryPackOrder(0)]
-		public long UnitId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int ConfigId { get; set; }
-
-		[MemoryPackOrder(2)]
-		public int Type { get; set; }
-
-		[MemoryPackOrder(3)]
-		public Unity.Mathematics.float3 Position { get; set; }
-
-		[MemoryPackOrder(4)]
-		public Unity.Mathematics.float3 Forward { get; set; }
-
-		[MongoDB.Bson.Serialization.Attributes.BsonDictionaryOptions(MongoDB.Bson.Serialization.Options.DictionaryRepresentation.ArrayOfArrays)]
-		[MemoryPackOrder(5)]
-		public Dictionary<int, long> KV { get; set; } = new();
-		[MemoryPackOrder(6)]
-		public MoveInfo MoveInfo { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.UnitId = default;
-			this.ConfigId = default;
-			this.Type = default;
-			this.Position = default;
-			this.Forward = default;
-			this.KV.Clear();
-			this.MoveInfo = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.M2C_CreateUnits)]
-	[MemoryPackable]
-	public partial class M2C_CreateUnits: MessageObject, IMessage
-	{
-		public static M2C_CreateUnits Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(M2C_CreateUnits), isFromPool) as M2C_CreateUnits; 
-		}
-
-		[MemoryPackOrder(0)]
-		public List<UnitInfo> Units { get; set; } = new();
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.Units.Clear();
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.M2C_CreateMyUnit)]
-	[MemoryPackable]
-	public partial class M2C_CreateMyUnit: MessageObject, IMessage
-	{
-		public static M2C_CreateMyUnit Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(M2C_CreateMyUnit), isFromPool) as M2C_CreateMyUnit; 
-		}
-
-		[MemoryPackOrder(0)]
-		public UnitInfo Unit { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.Unit = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.M2C_StartSceneChange)]
-	[MemoryPackable]
-	public partial class M2C_StartSceneChange: MessageObject, IMessage
-	{
-		public static M2C_StartSceneChange Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(M2C_StartSceneChange), isFromPool) as M2C_StartSceneChange; 
-		}
-
-		[MemoryPackOrder(0)]
-		public long SceneInstanceId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public string SceneName { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.SceneInstanceId = default;
-			this.SceneName = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.M2C_RemoveUnits)]
-	[MemoryPackable]
-	public partial class M2C_RemoveUnits: MessageObject, IMessage
-	{
-		public static M2C_RemoveUnits Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(M2C_RemoveUnits), isFromPool) as M2C_RemoveUnits; 
-		}
-
-		[MemoryPackOrder(0)]
-		public List<long> Units { get; set; } = new();
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.Units.Clear();
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.C2M_PathfindingResult)]
-	[MemoryPackable]
-	public partial class C2M_PathfindingResult: MessageObject, ILocationMessage
-	{
-		public static C2M_PathfindingResult Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2M_PathfindingResult), isFromPool) as C2M_PathfindingResult; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public Unity.Mathematics.float3 Position { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Position = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.C2M_Stop)]
-	[MemoryPackable]
-	public partial class C2M_Stop: MessageObject, ILocationMessage
-	{
-		public static C2M_Stop Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2M_Stop), isFromPool) as C2M_Stop; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.M2C_PathfindingResult)]
-	[MemoryPackable]
-	public partial class M2C_PathfindingResult: MessageObject, IMessage
-	{
-		public static M2C_PathfindingResult Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(M2C_PathfindingResult), isFromPool) as M2C_PathfindingResult; 
-		}
-
-		[MemoryPackOrder(0)]
-		public long Id { get; set; }
-
-		[MemoryPackOrder(1)]
-		public Unity.Mathematics.float3 Position { get; set; }
-
-		[MemoryPackOrder(2)]
-		public List<Unity.Mathematics.float3> Points { get; set; } = new();
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.Id = default;
-			this.Position = default;
-			this.Points.Clear();
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.M2C_Stop)]
-	[MemoryPackable]
-	public partial class M2C_Stop: MessageObject, IMessage
-	{
-		public static M2C_Stop Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(M2C_Stop), isFromPool) as M2C_Stop; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(1)]
-		public long Id { get; set; }
-
-		[MemoryPackOrder(2)]
-		public Unity.Mathematics.float3 Position { get; set; }
-
-		[MemoryPackOrder(3)]
-		public Unity.Mathematics.quaternion Rotation { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.Error = default;
-			this.Id = default;
-			this.Position = default;
-			this.Rotation = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(G2C_Ping))]
-	[Message(OuterMessage.C2G_Ping)]
-	[MemoryPackable]
-	public partial class C2G_Ping: MessageObject, ISessionRequest
-	{
-		public static C2G_Ping Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2G_Ping), isFromPool) as C2G_Ping; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.G2C_Ping)]
-	[MemoryPackable]
-	public partial class G2C_Ping: MessageObject, ISessionResponse
-	{
-		public static G2C_Ping Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(G2C_Ping), isFromPool) as G2C_Ping; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		[MemoryPackOrder(3)]
-		public long Time { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			this.Time = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.G2C_Test)]
-	[MemoryPackable]
-	public partial class G2C_Test: MessageObject, ISessionMessage
-	{
-		public static G2C_Test Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(G2C_Test), isFromPool) as G2C_Test; 
-		}
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(M2C_Reload))]
-	[Message(OuterMessage.C2M_Reload)]
-	[MemoryPackable]
-	public partial class C2M_Reload: MessageObject, ISessionRequest
-	{
-		public static C2M_Reload Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2M_Reload), isFromPool) as C2M_Reload; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public string Account { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Password { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Account = default;
-			this.Password = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.M2C_Reload)]
-	[MemoryPackable]
-	public partial class M2C_Reload: MessageObject, ISessionResponse
-	{
-		public static M2C_Reload Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(M2C_Reload), isFromPool) as M2C_Reload; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(R2C_Login))]
-	[Message(OuterMessage.C2R_Login)]
-	[MemoryPackable]
-	public partial class C2R_Login: MessageObject, ISessionRequest
-	{
-		public static C2R_Login Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2R_Login), isFromPool) as C2R_Login; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public string Account { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Password { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Account = default;
-			this.Password = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.R2C_Login)]
-	[MemoryPackable]
-	public partial class R2C_Login: MessageObject, ISessionResponse
-	{
-		public static R2C_Login Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(R2C_Login), isFromPool) as R2C_Login; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		[MemoryPackOrder(3)]
-		public string Address { get; set; }
-
-		[MemoryPackOrder(4)]
-		public long Key { get; set; }
-
-		[MemoryPackOrder(5)]
-		public long GateId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			this.Address = default;
-			this.Key = default;
-			this.GateId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(G2C_LoginGate))]
-	[Message(OuterMessage.C2G_LoginGate)]
-	[MemoryPackable]
-	public partial class C2G_LoginGate: MessageObject, ISessionRequest
-	{
-		public static C2G_LoginGate Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2G_LoginGate), isFromPool) as C2G_LoginGate; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public long Key { get; set; }
-
-		[MemoryPackOrder(2)]
-		public long GateId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Key = default;
-			this.GateId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.G2C_LoginGate)]
-	[MemoryPackable]
-	public partial class G2C_LoginGate: MessageObject, ISessionResponse
-	{
-		public static G2C_LoginGate Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(G2C_LoginGate), isFromPool) as G2C_LoginGate; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		[MemoryPackOrder(3)]
-		public long PlayerId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			this.PlayerId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.G2C_TestHotfixMessage)]
-	[MemoryPackable]
-	public partial class G2C_TestHotfixMessage: MessageObject, ISessionMessage
-	{
-		public static G2C_TestHotfixMessage Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(G2C_TestHotfixMessage), isFromPool) as G2C_TestHotfixMessage; 
-		}
-
-		[MemoryPackOrder(0)]
-		public string Info { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.Info = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(M2C_TestRobotCase))]
-	[Message(OuterMessage.C2M_TestRobotCase)]
-	[MemoryPackable]
-	public partial class C2M_TestRobotCase: MessageObject, ILocationRequest
-	{
-		public static C2M_TestRobotCase Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2M_TestRobotCase), isFromPool) as C2M_TestRobotCase; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int N { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.N = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.M2C_TestRobotCase)]
-	[MemoryPackable]
-	public partial class M2C_TestRobotCase: MessageObject, ILocationResponse
-	{
-		public static M2C_TestRobotCase Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(M2C_TestRobotCase), isFromPool) as M2C_TestRobotCase; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		[MemoryPackOrder(3)]
-		public int N { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			this.N = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.C2M_TestRobotCase2)]
-	[MemoryPackable]
-	public partial class C2M_TestRobotCase2: MessageObject, ILocationMessage
-	{
-		public static C2M_TestRobotCase2 Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2M_TestRobotCase2), isFromPool) as C2M_TestRobotCase2; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int N { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.N = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.M2C_TestRobotCase2)]
-	[MemoryPackable]
-	public partial class M2C_TestRobotCase2: MessageObject, ILocationMessage
-	{
-		public static M2C_TestRobotCase2 Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(M2C_TestRobotCase2), isFromPool) as M2C_TestRobotCase2; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int N { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.N = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(M2C_TransferMap))]
-	[Message(OuterMessage.C2M_TransferMap)]
-	[MemoryPackable]
-	public partial class C2M_TransferMap: MessageObject, ILocationRequest
-	{
-		public static C2M_TransferMap Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2M_TransferMap), isFromPool) as C2M_TransferMap; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.M2C_TransferMap)]
-	[MemoryPackable]
-	public partial class M2C_TransferMap: MessageObject, ILocationResponse
-	{
-		public static M2C_TransferMap Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(M2C_TransferMap), isFromPool) as M2C_TransferMap; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[ResponseType(nameof(G2C_Benchmark))]
-	[Message(OuterMessage.C2G_Benchmark)]
-	[MemoryPackable]
-	public partial class C2G_Benchmark: MessageObject, ISessionRequest
-	{
-		public static C2G_Benchmark Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(C2G_Benchmark), isFromPool) as C2G_Benchmark; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	[Message(OuterMessage.G2C_Benchmark)]
-	[MemoryPackable]
-	public partial class G2C_Benchmark: MessageObject, ISessionResponse
-	{
-		public static G2C_Benchmark Create(bool isFromPool = false) 
-		{ 
-			return ObjectPool.Instance.Fetch(typeof(G2C_Benchmark), isFromPool) as G2C_Benchmark; 
-		}
-
-		[MemoryPackOrder(0)]
-		public int RpcId { get; set; }
-
-		[MemoryPackOrder(1)]
-		public int Error { get; set; }
-
-		[MemoryPackOrder(2)]
-		public string Message { get; set; }
-
-		public override void Dispose() 
-		{
-			if (!this.IsFromPool) { return; }
-			this.RpcId = default;
-			this.Error = default;
-			this.Message = default;
-			
-			ObjectPool.Instance.Recycle(this); 
-		}
-
-	}
-
-	public static class OuterMessage
-	{
-		 public const ushort HttpGetRouterResponse = 10002;
-		 public const ushort RouterSync = 10003;
-		 public const ushort C2M_TestRequest = 10004;
-		 public const ushort M2C_TestResponse = 10005;
-		 public const ushort C2G_EnterMap = 10006;
-		 public const ushort G2C_EnterMap = 10007;
-		 public const ushort MoveInfo = 10008;
-		 public const ushort UnitInfo = 10009;
-		 public const ushort M2C_CreateUnits = 10010;
-		 public const ushort M2C_CreateMyUnit = 10011;
-		 public const ushort M2C_StartSceneChange = 10012;
-		 public const ushort M2C_RemoveUnits = 10013;
-		 public const ushort C2M_PathfindingResult = 10014;
-		 public const ushort C2M_Stop = 10015;
-		 public const ushort M2C_PathfindingResult = 10016;
-		 public const ushort M2C_Stop = 10017;
-		 public const ushort C2G_Ping = 10018;
-		 public const ushort G2C_Ping = 10019;
-		 public const ushort G2C_Test = 10020;
-		 public const ushort C2M_Reload = 10021;
-		 public const ushort M2C_Reload = 10022;
-		 public const ushort C2R_Login = 10023;
-		 public const ushort R2C_Login = 10024;
-		 public const ushort C2G_LoginGate = 10025;
-		 public const ushort G2C_LoginGate = 10026;
-		 public const ushort G2C_TestHotfixMessage = 10027;
-		 public const ushort C2M_TestRobotCase = 10028;
-		 public const ushort M2C_TestRobotCase = 10029;
-		 public const ushort C2M_TestRobotCase2 = 10030;
-		 public const ushort M2C_TestRobotCase2 = 10031;
-		 public const ushort C2M_TransferMap = 10032;
-		 public const ushort M2C_TransferMap = 10033;
-		 public const ushort C2G_Benchmark = 10034;
-		 public const ushort G2C_Benchmark = 10035;
-	}
-}
+    [MemoryPackable]
+    [Message(OuterMessage.HttpGetRouterResponse)]
+    public partial class HttpGetRouterResponse : MessageObject
+    {
+        public static HttpGetRouterResponse Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(HttpGetRouterResponse), isFromPool) as HttpGetRouterResponse;
+        }
+
+        [MemoryPackOrder(0)]
+        public List<string> Realms { get; set; } = new();
+
+        [MemoryPackOrder(1)]
+        public List<string> Routers { get; set; } = new();
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.Realms.Clear();
+            this.Routers.Clear();
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.RouterSync)]
+    public partial class RouterSync : MessageObject
+    {
+        public static RouterSync Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(RouterSync), isFromPool) as RouterSync;
+        }
+
+        [MemoryPackOrder(0)]
+        public uint ConnectId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public string Address { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.ConnectId = default;
+            this.Address = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.C2M_TestRequest)]
+    [ResponseType(nameof(M2C_TestResponse))]
+    public partial class C2M_TestRequest : MessageObject, ILocationRequest
+    {
+        public static C2M_TestRequest Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2M_TestRequest), isFromPool) as C2M_TestRequest;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public string request { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.request = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.M2C_TestResponse)]
+    public partial class M2C_TestResponse : MessageObject, IResponse
+    {
+        public static M2C_TestResponse Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(M2C_TestResponse), isFromPool) as M2C_TestResponse;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        [MemoryPackOrder(3)]
+        public string response { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+            this.response = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.C2G_EnterMap)]
+    [ResponseType(nameof(G2C_EnterMap))]
+    public partial class C2G_EnterMap : MessageObject, ISessionRequest
+    {
+        public static C2G_EnterMap Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2G_EnterMap), isFromPool) as C2G_EnterMap;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.G2C_EnterMap)]
+    public partial class G2C_EnterMap : MessageObject, ISessionResponse
+    {
+        public static G2C_EnterMap Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(G2C_EnterMap), isFromPool) as G2C_EnterMap;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        /// <summary>
+        /// 自己的UnitId
+        /// </summary>
+        [MemoryPackOrder(3)]
+        public long MyId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+            this.MyId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.MoveInfo)]
+    public partial class MoveInfo : MessageObject
+    {
+        public static MoveInfo Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(MoveInfo), isFromPool) as MoveInfo;
+        }
+
+        [MemoryPackOrder(0)]
+        public List<Unity.Mathematics.float3> Points { get; set; } = new();
+
+        [MemoryPackOrder(1)]
+        public Unity.Mathematics.quaternion Rotation { get; set; }
+
+        [MemoryPackOrder(2)]
+        public int TurnSpeed { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.Points.Clear();
+            this.Rotation = default;
+            this.TurnSpeed = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.UnitInfo)]
+    public partial class UnitInfo : MessageObject
+    {
+        public static UnitInfo Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(UnitInfo), isFromPool) as UnitInfo;
+        }
+
+        [MemoryPackOrder(0)]
+        public long UnitId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int ConfigId { get; set; }
+
+        [MemoryPackOrder(2)]
+        public int Type { get; set; }
+
+        [MemoryPackOrder(3)]
+        public Unity.Mathematics.float3 Position { get; set; }
+
+        [MemoryPackOrder(4)]
+        public Unity.Mathematics.float3 Forward { get; set; }
+
+        [MongoDB.Bson.Serialization.Attributes.BsonDictionaryOptions(MongoDB.Bson.Serialization.Options.DictionaryRepresentation.ArrayOfArrays)]
+        [MemoryPackOrder(5)]
+        public Dictionary<int, long> KV { get; set; } = new();
+        [MemoryPackOrder(6)]
+        public MoveInfo MoveInfo { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.UnitId = default;
+            this.ConfigId = default;
+            this.Type = default;
+            this.Position = default;
+            this.Forward = default;
+            this.KV.Clear();
+            this.MoveInfo = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.M2C_CreateUnits)]
+    public partial class M2C_CreateUnits : MessageObject, IMessage
+    {
+        public static M2C_CreateUnits Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(M2C_CreateUnits), isFromPool) as M2C_CreateUnits;
+        }
+
+        [MemoryPackOrder(0)]
+        public List<UnitInfo> Units { get; set; } = new();
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.Units.Clear();
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.M2C_CreateMyUnit)]
+    public partial class M2C_CreateMyUnit : MessageObject, IMessage
+    {
+        public static M2C_CreateMyUnit Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(M2C_CreateMyUnit), isFromPool) as M2C_CreateMyUnit;
+        }
+
+        [MemoryPackOrder(0)]
+        public UnitInfo Unit { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.Unit = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.M2C_StartSceneChange)]
+    public partial class M2C_StartSceneChange : MessageObject, IMessage
+    {
+        public static M2C_StartSceneChange Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(M2C_StartSceneChange), isFromPool) as M2C_StartSceneChange;
+        }
+
+        [MemoryPackOrder(0)]
+        public long SceneInstanceId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public string SceneName { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.SceneInstanceId = default;
+            this.SceneName = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.M2C_RemoveUnits)]
+    public partial class M2C_RemoveUnits : MessageObject, IMessage
+    {
+        public static M2C_RemoveUnits Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(M2C_RemoveUnits), isFromPool) as M2C_RemoveUnits;
+        }
+
+        [MemoryPackOrder(0)]
+        public List<long> Units { get; set; } = new();
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.Units.Clear();
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.C2M_PathfindingResult)]
+    public partial class C2M_PathfindingResult : MessageObject, ILocationMessage
+    {
+        public static C2M_PathfindingResult Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2M_PathfindingResult), isFromPool) as C2M_PathfindingResult;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public Unity.Mathematics.float3 Position { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Position = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.C2M_Stop)]
+    public partial class C2M_Stop : MessageObject, ILocationMessage
+    {
+        public static C2M_Stop Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2M_Stop), isFromPool) as C2M_Stop;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.M2C_PathfindingResult)]
+    public partial class M2C_PathfindingResult : MessageObject, IMessage
+    {
+        public static M2C_PathfindingResult Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(M2C_PathfindingResult), isFromPool) as M2C_PathfindingResult;
+        }
+
+        [MemoryPackOrder(0)]
+        public long Id { get; set; }
+
+        [MemoryPackOrder(1)]
+        public Unity.Mathematics.float3 Position { get; set; }
+
+        [MemoryPackOrder(2)]
+        public List<Unity.Mathematics.float3> Points { get; set; } = new();
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.Id = default;
+            this.Position = default;
+            this.Points.Clear();
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.M2C_Stop)]
+    public partial class M2C_Stop : MessageObject, IMessage
+    {
+        public static M2C_Stop Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(M2C_Stop), isFromPool) as M2C_Stop;
+        }
+
+        [MemoryPackOrder(0)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(1)]
+        public long Id { get; set; }
+
+        [MemoryPackOrder(2)]
+        public Unity.Mathematics.float3 Position { get; set; }
+
+        [MemoryPackOrder(3)]
+        public Unity.Mathematics.quaternion Rotation { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.Error = default;
+            this.Id = default;
+            this.Position = default;
+            this.Rotation = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.C2G_Ping)]
+    [ResponseType(nameof(G2C_Ping))]
+    public partial class C2G_Ping : MessageObject, ISessionRequest
+    {
+        public static C2G_Ping Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2G_Ping), isFromPool) as C2G_Ping;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.G2C_Ping)]
+    public partial class G2C_Ping : MessageObject, ISessionResponse
+    {
+        public static G2C_Ping Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(G2C_Ping), isFromPool) as G2C_Ping;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        [MemoryPackOrder(3)]
+        public long Time { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+            this.Time = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.G2C_Test)]
+    public partial class G2C_Test : MessageObject, ISessionMessage
+    {
+        public static G2C_Test Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(G2C_Test), isFromPool) as G2C_Test;
+        }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.C2M_Reload)]
+    [ResponseType(nameof(M2C_Reload))]
+    public partial class C2M_Reload : MessageObject, ISessionRequest
+    {
+        public static C2M_Reload Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2M_Reload), isFromPool) as C2M_Reload;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public string Account { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Password { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Account = default;
+            this.Password = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.M2C_Reload)]
+    public partial class M2C_Reload : MessageObject, ISessionResponse
+    {
+        public static M2C_Reload Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(M2C_Reload), isFromPool) as M2C_Reload;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.C2R_Login)]
+    [ResponseType(nameof(R2C_Login))]
+    public partial class C2R_Login : MessageObject, ISessionRequest
+    {
+        public static C2R_Login Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2R_Login), isFromPool) as C2R_Login;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        /// <summary>
+        /// 帐号
+        /// </summary>
+        [MemoryPackOrder(1)]
+        public string Account { get; set; }
+
+        /// <summary>
+        /// 密码
+        /// </summary>
+        [MemoryPackOrder(2)]
+        public string Password { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Account = default;
+            this.Password = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.R2C_Login)]
+    public partial class R2C_Login : MessageObject, ISessionResponse
+    {
+        public static R2C_Login Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(R2C_Login), isFromPool) as R2C_Login;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        [MemoryPackOrder(3)]
+        public string Address { get; set; }
+
+        [MemoryPackOrder(4)]
+        public long Key { get; set; }
+
+        [MemoryPackOrder(5)]
+        public long GateId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+            this.Address = default;
+            this.Key = default;
+            this.GateId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.C2G_LoginGate)]
+    [ResponseType(nameof(G2C_LoginGate))]
+    public partial class C2G_LoginGate : MessageObject, ISessionRequest
+    {
+        public static C2G_LoginGate Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2G_LoginGate), isFromPool) as C2G_LoginGate;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        /// <summary>
+        /// 帐号
+        /// </summary>
+        [MemoryPackOrder(1)]
+        public long Key { get; set; }
+
+        [MemoryPackOrder(2)]
+        public long GateId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Key = default;
+            this.GateId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.G2C_LoginGate)]
+    public partial class G2C_LoginGate : MessageObject, ISessionResponse
+    {
+        public static G2C_LoginGate Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(G2C_LoginGate), isFromPool) as G2C_LoginGate;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        [MemoryPackOrder(3)]
+        public long PlayerId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+            this.PlayerId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.G2C_TestHotfixMessage)]
+    public partial class G2C_TestHotfixMessage : MessageObject, ISessionMessage
+    {
+        public static G2C_TestHotfixMessage Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(G2C_TestHotfixMessage), isFromPool) as G2C_TestHotfixMessage;
+        }
+
+        [MemoryPackOrder(0)]
+        public string Info { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.Info = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.C2M_TestRobotCase)]
+    [ResponseType(nameof(M2C_TestRobotCase))]
+    public partial class C2M_TestRobotCase : MessageObject, ILocationRequest
+    {
+        public static C2M_TestRobotCase Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2M_TestRobotCase), isFromPool) as C2M_TestRobotCase;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int N { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.N = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.M2C_TestRobotCase)]
+    public partial class M2C_TestRobotCase : MessageObject, ILocationResponse
+    {
+        public static M2C_TestRobotCase Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(M2C_TestRobotCase), isFromPool) as M2C_TestRobotCase;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        [MemoryPackOrder(3)]
+        public int N { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+            this.N = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.C2M_TestRobotCase2)]
+    public partial class C2M_TestRobotCase2 : MessageObject, ILocationMessage
+    {
+        public static C2M_TestRobotCase2 Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2M_TestRobotCase2), isFromPool) as C2M_TestRobotCase2;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int N { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.N = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.M2C_TestRobotCase2)]
+    public partial class M2C_TestRobotCase2 : MessageObject, ILocationMessage
+    {
+        public static M2C_TestRobotCase2 Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(M2C_TestRobotCase2), isFromPool) as M2C_TestRobotCase2;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int N { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.N = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.C2M_TransferMap)]
+    [ResponseType(nameof(M2C_TransferMap))]
+    public partial class C2M_TransferMap : MessageObject, ILocationRequest
+    {
+        public static C2M_TransferMap Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2M_TransferMap), isFromPool) as C2M_TransferMap;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.M2C_TransferMap)]
+    public partial class M2C_TransferMap : MessageObject, ILocationResponse
+    {
+        public static M2C_TransferMap Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(M2C_TransferMap), isFromPool) as M2C_TransferMap;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.C2G_Benchmark)]
+    [ResponseType(nameof(G2C_Benchmark))]
+    public partial class C2G_Benchmark : MessageObject, ISessionRequest
+    {
+        public static C2G_Benchmark Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(C2G_Benchmark), isFromPool) as C2G_Benchmark;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    [MemoryPackable]
+    [Message(OuterMessage.G2C_Benchmark)]
+    public partial class G2C_Benchmark : MessageObject, ISessionResponse
+    {
+        public static G2C_Benchmark Create(bool isFromPool = false)
+        {
+            return ObjectPool.Instance.Fetch(typeof(G2C_Benchmark), isFromPool) as G2C_Benchmark;
+        }
+
+        [MemoryPackOrder(0)]
+        public int RpcId { get; set; }
+
+        [MemoryPackOrder(1)]
+        public int Error { get; set; }
+
+        [MemoryPackOrder(2)]
+        public string Message { get; set; }
+
+        public override void Dispose()
+        {
+            if (!this.IsFromPool)
+            {
+                return;
+            }
+
+            this.RpcId = default;
+            this.Error = default;
+            this.Message = default;
+
+            ObjectPool.Instance.Recycle(this);
+        }
+    }
+
+    public static class OuterMessage
+    {
+        public const ushort HttpGetRouterResponse = 10002;
+        public const ushort RouterSync = 10003;
+        public const ushort C2M_TestRequest = 10004;
+        public const ushort M2C_TestResponse = 10005;
+        public const ushort C2G_EnterMap = 10006;
+        public const ushort G2C_EnterMap = 10007;
+        public const ushort MoveInfo = 10008;
+        public const ushort UnitInfo = 10009;
+        public const ushort M2C_CreateUnits = 10010;
+        public const ushort M2C_CreateMyUnit = 10011;
+        public const ushort M2C_StartSceneChange = 10012;
+        public const ushort M2C_RemoveUnits = 10013;
+        public const ushort C2M_PathfindingResult = 10014;
+        public const ushort C2M_Stop = 10015;
+        public const ushort M2C_PathfindingResult = 10016;
+        public const ushort M2C_Stop = 10017;
+        public const ushort C2G_Ping = 10018;
+        public const ushort G2C_Ping = 10019;
+        public const ushort G2C_Test = 10020;
+        public const ushort C2M_Reload = 10021;
+        public const ushort M2C_Reload = 10022;
+        public const ushort C2R_Login = 10023;
+        public const ushort R2C_Login = 10024;
+        public const ushort C2G_LoginGate = 10025;
+        public const ushort G2C_LoginGate = 10026;
+        public const ushort G2C_TestHotfixMessage = 10027;
+        public const ushort C2M_TestRobotCase = 10028;
+        public const ushort M2C_TestRobotCase = 10029;
+        public const ushort C2M_TestRobotCase2 = 10030;
+        public const ushort M2C_TestRobotCase2 = 10031;
+        public const ushort C2M_TransferMap = 10032;
+        public const ushort M2C_TransferMap = 10033;
+        public const ushort C2G_Benchmark = 10034;
+        public const ushort G2C_Benchmark = 10035;
+    }
+}

+ 20 - 8
Unity/Unity.sln.DotSettings

@@ -70,8 +70,9 @@
 	<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/INDENT_METHOD_DECL_PARS/@EntryValue">NONE</s:String>
 	<s:Int64 x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/KEEP_BLANK_LINES_IN_CODE/@EntryValue">1</s:Int64>
 	<s:Int64 x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/KEEP_BLANK_LINES_IN_DECLARATIONS/@EntryValue">1</s:Int64>
+	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/KEEP_EXISTING_DECLARATION_BLOCK_ARRANGEMENT/@EntryValue">True</s:Boolean>
 	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/KEEP_EXISTING_EXPR_MEMBER_ARRANGEMENT/@EntryValue">False</s:Boolean>
-	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/KEEP_EXISTING_INITIALIZER_ARRANGEMENT/@EntryValue">False</s:Boolean>
+	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/KEEP_EXISTING_INITIALIZER_ARRANGEMENT/@EntryValue">True</s:Boolean>
 	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/KEEP_EXISTING_INVOCATION_PARENS_ARRANGEMENT/@EntryValue">False</s:Boolean>
 	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/KEEP_USER_LINEBREAKS/@EntryValue">True</s:Boolean>
 	<s:Int64 x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/MAX_ENUM_MEMBERS_ON_LINE/@EntryValue">1</s:Int64>
@@ -88,14 +89,15 @@
 	<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/REDUNDANT_THIS_QUALIFIER_STYLE/@EntryValue">ALWAYS_USE</s:String>
 	<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SIMPLE_CASE_STATEMENT_STYLE/@EntryValue">LINE_BREAK</s:String>
 	<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SIMPLE_EMBEDDED_STATEMENT_STYLE/@EntryValue">LINE_BREAK</s:String>
+	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_AROUND_ARROW_OP/@EntryValue">True</s:Boolean>
 	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_AROUND_MULTIPLICATIVE_OP/@EntryValue">True</s:Boolean>
-	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_BEFORE_CHECKED_PARENTHESES/@EntryValue">True</s:Boolean>
-	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_BEFORE_DEFAULT_PARENTHESES/@EntryValue">True</s:Boolean>
-	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_BEFORE_EXTENDS_COLON/@EntryValue">False</s:Boolean>
-	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_BEFORE_NAMEOF_PARENTHESES/@EntryValue">True</s:Boolean>
-	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_BEFORE_SIZEOF_PARENTHESES/@EntryValue">True</s:Boolean>
-	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_BEFORE_TERNARY_QUEST/@EntryValue">False</s:Boolean>
-	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_BEFORE_TYPEOF_PARENTHESES/@EntryValue">True</s:Boolean>
+	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_BEFORE_CHECKED_PARENTHESES/@EntryValue">False</s:Boolean>
+	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_BEFORE_DEFAULT_PARENTHESES/@EntryValue">False</s:Boolean>
+	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_BEFORE_EXTENDS_COLON/@EntryValue">True</s:Boolean>
+	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_BEFORE_NAMEOF_PARENTHESES/@EntryValue">False</s:Boolean>
+	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_BEFORE_SIZEOF_PARENTHESES/@EntryValue">False</s:Boolean>
+	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_BEFORE_TERNARY_QUEST/@EntryValue">True</s:Boolean>
+	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_BEFORE_TYPEOF_PARENTHESES/@EntryValue">False</s:Boolean>
 	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_WITHIN_SINGLE_LINE_ARRAY_INITIALIZER_BRACES/@EntryValue">True</s:Boolean>
 	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/STICK_COMMENT/@EntryValue">False</s:Boolean>
 	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/USE_CONTINUOUS_INDENT_INSIDE_INITIALIZER_BRACES/@EntryValue">False</s:Boolean>
@@ -377,6 +379,11 @@ II.2.12 &lt;HandlesEvent /&gt;&#xD;
 	<s:Int64 x:Key="/Default/Environment/Hierarchy/GeneratedFilesCacheKey/Timestamp/@EntryValue">79</s:Int64>
 	<s:Boolean x:Key="/Default/Environment/Hierarchy/NuGetOptions/GlobalEnabled/@EntryValue">True</s:Boolean>
 	<s:Boolean x:Key="/Default/Environment/Hierarchy/NuGetOptions/IncludePrerelease/@EntryValue">False</s:Boolean>
+	<s:String x:Key="/Default/Environment/InlayHints/CppParameterNameHintsOptions2/ShowParameterNameHints/@EntryValue">Never</s:String>
+	<s:String x:Key="/Default/Environment/InlayHints/CSharpParameterNameHintsOptions/ShowParameterNameHints/@EntryValue">Never</s:String>
+	<s:Boolean x:Key="/Default/Environment/InlayHints/GeneralInlayHintsOptions/EnableInlayHints/@EntryValue">False</s:Boolean>
+	<s:String x:Key="/Default/Environment/InlayHints/VBParameterNameHintsOptions/ShowParameterNameHints/@EntryValue">Never</s:String>
+	<s:Boolean x:Key="/Default/Environment/InlayHintsOptions/ShowInlayHints/@EntryValue">False</s:Boolean>
 	
 	
 	
@@ -394,12 +401,17 @@ II.2.12 &lt;HandlesEvent /&gt;&#xD;
 	
 	
 	<s:Boolean x:Key="/Default/Environment/OpenDocument/OpenDocumentAfterModification/@EntryValue">True</s:Boolean>
+	<s:Boolean x:Key="/Default/Environment/ParameterNameHintsOptions/ShowParameterNameHints/@EntryValue">False</s:Boolean>
 	<s:String x:Key="/Default/Environment/ReSharperHost/CurrentTheme/@EntryValue">Dark</s:String>
 	<s:Boolean x:Key="/Default/Environment/SearchAndNavigation/AutoExpandResults/@EntryValue">True</s:Boolean>
 	<s:Boolean x:Key="/Default/Environment/SearchAndNavigation/MergeOccurences/@EntryValue">True</s:Boolean>
 	<s:Boolean x:Key="/Default/Environment/SearchAndNavigation/OpenPreviewTabForSelectedItemInFindResults/@EntryValue">True</s:Boolean>
 	<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EApplication_002EExceptionReport_002EUserLoginInformationMigrateSettings/@EntryIndexedValue">True</s:Boolean>
 	<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EdotCover_002EInteractive_002ECore_002EFilterManagement_002EMigration_002EGlobalFilterSettingsManagerMigrateSettings/@EntryIndexedValue">True</s:Boolean>
+	<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EFeature_002EServices_002ECpp_002EDaemon_002EInlayHints_002EParameterHints_002ECppParameterNameHintsOptionsOptionsMigration/@EntryIndexedValue">True</s:Boolean>
+	<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EFeature_002EServices_002ECSharp_002EParameterNameHints_002ECSharpParameterNameHintsOptionsMigration/@EntryIndexedValue">True</s:Boolean>
+	<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EFeature_002EServices_002EInlayHints_002EInlayHintsOptionsMigration/@EntryIndexedValue">True</s:Boolean>
+	<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EFeature_002EServices_002EVB_002EParameterNameHints_002EVBParameterNameHintsOptionsMigration/@EntryIndexedValue">True</s:Boolean>
 	<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpAttributeForSingleLineMethodUpgrade/@EntryIndexedValue">True</s:Boolean>
 	<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpFileLayoutPatternsUpgrade/@EntryIndexedValue">True</s:Boolean>
 	<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpKeepExistingMigration/@EntryIndexedValue">True</s:Boolean>