Преглед изворни кода

网络消息使用MemoryPack,跑通!

tanghai пре 2 година
родитељ
комит
31579d59ee
39 измењених фајлова са 811 додато и 62 уклоњено
  1. 1 1
      DotNet/App/DotNet.App.csproj
  2. 6 0
      DotNet/Directory.Build.props
  3. 1 1
      DotNet/Hotfix/DotNet.Hotfix.csproj
  4. 1 0
      DotNet/Loader/CodeLoader.cs
  5. 1 1
      DotNet/Loader/DotNet.Loader.csproj
  6. 1 1
      DotNet/Model/DotNet.Model.csproj
  7. 2 2
      DotNet/ThirdParty/DotNet.ThirdParty.csproj
  8. 6 1
      Share/Tool/Proto2CS/Proto2CS.cs
  9. 4 5
      Unity/Assets/Scripts/Codes/Hotfix/Unity.Hotfix.Codes.asmdef
  10. 3 4
      Unity/Assets/Scripts/Codes/HotfixView/Unity.HotfixView.Codes.asmdef
  11. 128 0
      Unity/Assets/Scripts/Codes/Model/Generate/Client/Message/OuterMessage_C_10001.cs
  12. 99 0
      Unity/Assets/Scripts/Codes/Model/Generate/ClientServer/Message/InnerMessage_S_20001.cs
  13. 128 0
      Unity/Assets/Scripts/Codes/Model/Generate/ClientServer/Message/OuterMessage_C_10001.cs
  14. 99 0
      Unity/Assets/Scripts/Codes/Model/Generate/Server/Message/InnerMessage_S_20001.cs
  15. 128 0
      Unity/Assets/Scripts/Codes/Model/Generate/Server/Message/OuterMessage_C_10001.cs
  16. 18 2
      Unity/Assets/Scripts/Codes/Model/Share/Entry.cs
  17. 4 5
      Unity/Assets/Scripts/Codes/Model/Unity.Model.Codes.asmdef
  18. 1 3
      Unity/Assets/Scripts/Codes/ModelView/Unity.ModelView.Codes.asmdef
  19. 2 2
      Unity/Assets/Scripts/Core/Module/Config/ConfigComponent.cs
  20. 1 0
      Unity/Assets/Scripts/Core/Module/Entity/Scene.cs
  21. 5 5
      Unity/Assets/Scripts/Core/Module/Network/KChannel.cs
  22. 6 6
      Unity/Assets/Scripts/Core/Module/Network/MessageSerializeHelper.cs
  23. 2 2
      Unity/Assets/Scripts/Core/Module/Network/PacketParser.cs
  24. 1 1
      Unity/Assets/Scripts/Core/Module/Network/TChannel.cs
  25. 4 4
      Unity/Assets/Scripts/Core/Module/Network/WChannel.cs
  26. 68 0
      Unity/Assets/Scripts/Core/Serialize/MemoryBuffer.cs
  27. 3 0
      Unity/Assets/Scripts/Core/Serialize/MemoryBuffer.cs.meta
  28. 61 0
      Unity/Assets/Scripts/Core/Serialize/MemoryPackHelper.cs
  29. 3 0
      Unity/Assets/Scripts/Core/Serialize/MemoryPackHelper.cs.meta
  30. 1 0
      Unity/Assets/Scripts/Core/Serialize/MongoHelper.cs
  31. 7 6
      Unity/Assets/Scripts/Core/Serialize/SerializeHelper.cs
  32. 2 1
      Unity/Assets/Scripts/Core/Unity.Core.asmdef
  33. 2 1
      Unity/Assets/Scripts/Empty/Hotfix/Unity.Hotfix.asmdef
  34. 2 1
      Unity/Assets/Scripts/Empty/HotfixView/Unity.HotfixView.asmdef
  35. 2 1
      Unity/Assets/Scripts/Empty/Model/Unity.Model.asmdef
  36. 2 1
      Unity/Assets/Scripts/Empty/ModelView/Unity.ModelView.asmdef
  37. 2 1
      Unity/Assets/Scripts/Loader/Unity.Loader.asmdef
  38. 2 2
      Unity/Directory.Build.props
  39. 2 2
      Unity/ProjectSettings/ProjectSettings.asset

+ 1 - 1
DotNet/App/DotNet.App.csproj

@@ -4,7 +4,7 @@
     <OutputType>Exe</OutputType>
     <TargetFramework>net7.0</TargetFramework>
     <RootNamespace>ET</RootNamespace>
-    <LangVersion>10</LangVersion>
+    <LangVersion>11</LangVersion>
     <AssemblyName>App</AssemblyName>
   </PropertyGroup>
 

+ 6 - 0
DotNet/Directory.Build.props

@@ -0,0 +1,6 @@
+<Project>
+  <PropertyGroup>
+    <LangVersion>11.0</LangVersion>
+    <NoWarn>0169,0649,3021,8981</NoWarn>
+  </PropertyGroup>
+</Project>

+ 1 - 1
DotNet/Hotfix/DotNet.Hotfix.csproj

@@ -2,7 +2,7 @@
     <PropertyGroup>
         <TargetFramework>net7.0</TargetFramework> 
         <RootNamespace>ET</RootNamespace>
-        <LangVersion>10</LangVersion>
+        <LangVersion>11</LangVersion>
         <AssemblyName>Hotfix</AssemblyName>
     </PropertyGroup>
     <PropertyGroup>

+ 1 - 0
DotNet/Loader/CodeLoader.cs

@@ -6,6 +6,7 @@ using System.Runtime.Loader;
 
 namespace ET
 {
+   
     public class CodeLoader: Singleton<CodeLoader>
     {
         private AssemblyLoadContext assemblyLoadContext;

+ 1 - 1
DotNet/Loader/DotNet.Loader.csproj

@@ -2,7 +2,7 @@
     <PropertyGroup>
         <TargetFramework>net7.0</TargetFramework>
         <RootNamespace>ET</RootNamespace>
-        <LangVersion>10</LangVersion>
+        <LangVersion>11</LangVersion>
         <AssemblyName>Loader</AssemblyName>
     </PropertyGroup>
     <PropertyGroup>

+ 1 - 1
DotNet/Model/DotNet.Model.csproj

@@ -2,7 +2,7 @@
     <PropertyGroup>
         <TargetFramework>net7.0</TargetFramework>
         <RootNamespace>ET</RootNamespace>
-        <LangVersion>10</LangVersion>
+        <LangVersion>11</LangVersion>
         <AssemblyName>Model</AssemblyName>
     </PropertyGroup>
     <PropertyGroup>

+ 2 - 2
DotNet/ThirdParty/DotNet.ThirdParty.csproj

@@ -1,9 +1,9 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
     <PropertyGroup>
-        <TargetFramework>netstandard2.0</TargetFramework>
+        <TargetFramework>net7.0</TargetFramework>
         <Nullable>disable</Nullable>
-        <LangVersion>9</LangVersion>
+        <LangVersion>11</LangVersion>
         <RootNamespace>ET</RootNamespace>
         <AssemblyName>ThirdParty</AssemblyName>
     </PropertyGroup>

+ 6 - 1
Share/Tool/Proto2CS/Proto2CS.cs

@@ -76,6 +76,7 @@ namespace ET
             StringBuilder sb = new StringBuilder();
             sb.Append("using ET;\n");
             sb.Append("using ProtoBuf;\n");
+            sb.Append("using MemoryPack;\n");
             sb.Append("using System.Collections.Generic;\n");
             sb.Append($"namespace {ns}\n");
             sb.Append("{\n");
@@ -119,6 +120,7 @@ namespace ET
 
                     sb.Append($"\t[Message({protoName}.{msgName})]\n");
                     sb.Append($"\t[ProtoContract]\n");
+                    sb.Append($"\t[MemoryPackable]\n");
                     sb.Append($"\tpublic partial class {msgName}: ProtoObject");
                     if (parentClass == "IActorMessage" || parentClass == "IActorRequest" || parentClass == "IActorResponse")
                     {
@@ -225,10 +227,11 @@ namespace ET
             string tail = newline.Substring(end + 1);
             ss = tail.Trim().Replace(";", "").Split(" ");
             string v = ss[0];
-            string n = ss[2];
+            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[ProtoMember({n})]\n");
+            sb.Append($"\t\t[MemoryPackOrder({n - 1})]\n");
             sb.Append($"\t\tpublic Dictionary<{keyType}, {valueType}> {v} {{ get; set; }}\n");
         }
         
@@ -245,6 +248,7 @@ namespace ET
                 int n = int.Parse(ss[4]);
 
                 sb.Append($"\t\t[ProtoMember({n})]\n");
+                sb.Append($"\t\t[MemoryPackOrder({n - 1})]\n");
                 sb.Append($"\t\tpublic List<{type}> {name} {{ get; set; }}\n\n");
             }
             catch (Exception e)
@@ -303,6 +307,7 @@ namespace ET
                 string typeCs = ConvertType(type);
 
                 sb.Append($"\t\t[ProtoMember({n})]\n");
+                sb.Append($"\t\t[MemoryPackOrder({n - 1})]\n");
                 sb.Append($"\t\tpublic {typeCs} {name} {{ get; set; }}\n\n");
             }
             catch (Exception e)

+ 4 - 5
Unity/Assets/Scripts/Codes/Hotfix/Unity.Hotfix.Codes.asmdef

@@ -6,11 +6,10 @@
         "Unity.Core",
         "Unity.Model.Codes",
         "Unity.Mathematics",
-        "Unity.Loader"
-    ],
-    "includePlatforms": [
-        "Editor"
+        "Unity.Loader",
+        "MemoryPack"
     ],
+    "includePlatforms": [],
     "excludePlatforms": [],
     "allowUnsafeCode": true,
     "overrideReferences": false,
@@ -20,5 +19,5 @@
         "ENABLE_CODES"
     ],
     "versionDefines": [],
-    "noEngineReferences": true
+    "noEngineReferences": false
 }

+ 3 - 4
Unity/Assets/Scripts/Codes/HotfixView/Unity.HotfixView.Codes.asmdef

@@ -8,11 +8,10 @@
         "Unity.Hotfix.Codes",
         "Unity.ModelView.Codes",
         "Unity.Mathematics",
-        "Unity.Loader"
-    ],
-    "includePlatforms": [
-        "Editor"
+        "Unity.Loader",
+        "MemoryPack"
     ],
+    "includePlatforms": [],
     "excludePlatforms": [],
     "allowUnsafeCode": true,
     "overrideReferences": false,

+ 128 - 0
Unity/Assets/Scripts/Codes/Model/Generate/Client/Message/OuterMessage_C_10001.cs

@@ -1,28 +1,35 @@
 using ET;
 using ProtoBuf;
+using MemoryPack;
 using System.Collections.Generic;
 namespace ET
 {
 	[Message(OuterMessage.HttpGetRouterResponse)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class HttpGetRouterResponse: ProtoObject
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public List<string> Realms { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public List<string> Routers { get; set; }
 
 	}
 
 	[Message(OuterMessage.RouterSync)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class RouterSync: ProtoObject
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public uint ConnectId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public string Address { get; set; }
 
 	}
@@ -30,30 +37,38 @@ namespace ET
 	[ResponseType(nameof(M2C_TestResponse))]
 	[Message(OuterMessage.C2M_TestRequest)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class C2M_TestRequest: ProtoObject, IActorLocationRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public string request { get; set; }
 
 	}
 
 	[Message(OuterMessage.M2C_TestResponse)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class M2C_TestResponse: ProtoObject, IActorResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 		[ProtoMember(4)]
+		[MemoryPackOrder(3)]
 		public string response { get; set; }
 
 	}
@@ -61,27 +76,34 @@ namespace ET
 	[ResponseType(nameof(Actor_TransferResponse))]
 	[Message(OuterMessage.Actor_TransferRequest)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class Actor_TransferRequest: ProtoObject, IActorLocationRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int MapIndex { get; set; }
 
 	}
 
 	[Message(OuterMessage.Actor_TransferResponse)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class Actor_TransferResponse: ProtoObject, IActorLocationResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 	}
@@ -89,163 +111,205 @@ namespace ET
 	[ResponseType(nameof(G2C_EnterMap))]
 	[Message(OuterMessage.C2G_EnterMap)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class C2G_EnterMap: ProtoObject, IRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 	}
 
 	[Message(OuterMessage.G2C_EnterMap)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class G2C_EnterMap: ProtoObject, IResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 // 自己unitId
 		[ProtoMember(4)]
+		[MemoryPackOrder(3)]
 		public long MyId { get; set; }
 
 	}
 
 	[Message(OuterMessage.MoveInfo)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class MoveInfo: ProtoObject
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public List<Unity.Mathematics.float3> Points { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public Unity.Mathematics.quaternion Rotation { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public int TurnSpeed { get; set; }
 
 	}
 
 	[Message(OuterMessage.UnitInfo)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class UnitInfo: ProtoObject
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public long UnitId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int ConfigId { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public int Type { get; set; }
 
 		[ProtoMember(4)]
+		[MemoryPackOrder(3)]
 		public Unity.Mathematics.float3 Position { get; set; }
 
 		[ProtoMember(5)]
+		[MemoryPackOrder(4)]
 		public Unity.Mathematics.float3 Forward { get; set; }
 
 		[MongoDB.Bson.Serialization.Attributes.BsonDictionaryOptions(MongoDB.Bson.Serialization.Options.DictionaryRepresentation.ArrayOfArrays)]
 		[ProtoMember(6)]
+		[MemoryPackOrder(5)]
 		public Dictionary<int, long> KV { get; set; }
 		[ProtoMember(7)]
+		[MemoryPackOrder(6)]
 		public MoveInfo MoveInfo { get; set; }
 
 	}
 
 	[Message(OuterMessage.M2C_CreateUnits)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class M2C_CreateUnits: ProtoObject, IActorMessage
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public List<UnitInfo> Units { get; set; }
 
 	}
 
 	[Message(OuterMessage.M2C_CreateMyUnit)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class M2C_CreateMyUnit: ProtoObject, IActorMessage
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public UnitInfo Unit { get; set; }
 
 	}
 
 	[Message(OuterMessage.M2C_StartSceneChange)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class M2C_StartSceneChange: ProtoObject, IActorMessage
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public long SceneInstanceId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public string SceneName { get; set; }
 
 	}
 
 	[Message(OuterMessage.M2C_RemoveUnits)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class M2C_RemoveUnits: ProtoObject, IActorMessage
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public List<long> Units { get; set; }
 
 	}
 
 	[Message(OuterMessage.C2M_PathfindingResult)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class C2M_PathfindingResult: ProtoObject, IActorLocationMessage
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public Unity.Mathematics.float3 Position { get; set; }
 
 	}
 
 	[Message(OuterMessage.C2M_Stop)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class C2M_Stop: ProtoObject, IActorLocationMessage
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 	}
 
 	[Message(OuterMessage.M2C_PathfindingResult)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class M2C_PathfindingResult: ProtoObject, IActorMessage
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public long Id { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public Unity.Mathematics.float3 Position { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public List<Unity.Mathematics.float3> Points { get; set; }
 
 	}
 
 	[Message(OuterMessage.M2C_Stop)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class M2C_Stop: ProtoObject, IActorMessage
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int Error { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public long Id { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public Unity.Mathematics.float3 Position { get; set; }
 
 		[ProtoMember(4)]
+		[MemoryPackOrder(3)]
 		public Unity.Mathematics.quaternion Rotation { get; set; }
 
 	}
@@ -253,33 +317,41 @@ namespace ET
 	[ResponseType(nameof(G2C_Ping))]
 	[Message(OuterMessage.C2G_Ping)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class C2G_Ping: ProtoObject, IRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 	}
 
 	[Message(OuterMessage.G2C_Ping)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class G2C_Ping: ProtoObject, IResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 		[ProtoMember(4)]
+		[MemoryPackOrder(3)]
 		public long Time { get; set; }
 
 	}
 
 	[Message(OuterMessage.G2C_Test)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class G2C_Test: ProtoObject, IMessage
 	{
 	}
@@ -287,30 +359,38 @@ namespace ET
 	[ResponseType(nameof(M2C_Reload))]
 	[Message(OuterMessage.C2M_Reload)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class C2M_Reload: ProtoObject, IRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public string Account { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Password { get; set; }
 
 	}
 
 	[Message(OuterMessage.M2C_Reload)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class M2C_Reload: ProtoObject, IResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 	}
@@ -318,39 +398,50 @@ namespace ET
 	[ResponseType(nameof(R2C_Login))]
 	[Message(OuterMessage.C2R_Login)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class C2R_Login: ProtoObject, IRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public string Account { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Password { get; set; }
 
 	}
 
 	[Message(OuterMessage.R2C_Login)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class R2C_Login: ProtoObject, IResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 		[ProtoMember(4)]
+		[MemoryPackOrder(3)]
 		public string Address { get; set; }
 
 		[ProtoMember(5)]
+		[MemoryPackOrder(4)]
 		public long Key { get; set; }
 
 		[ProtoMember(6)]
+		[MemoryPackOrder(5)]
 		public long GateId { get; set; }
 
 	}
@@ -358,42 +449,53 @@ namespace ET
 	[ResponseType(nameof(G2C_LoginGate))]
 	[Message(OuterMessage.C2G_LoginGate)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class C2G_LoginGate: ProtoObject, IRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public long Key { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public long GateId { get; set; }
 
 	}
 
 	[Message(OuterMessage.G2C_LoginGate)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class G2C_LoginGate: ProtoObject, IResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 		[ProtoMember(4)]
+		[MemoryPackOrder(3)]
 		public long PlayerId { get; set; }
 
 	}
 
 	[Message(OuterMessage.G2C_TestHotfixMessage)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class G2C_TestHotfixMessage: ProtoObject, IMessage
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public string Info { get; set; }
 
 	}
@@ -401,54 +503,68 @@ namespace ET
 	[ResponseType(nameof(M2C_TestRobotCase))]
 	[Message(OuterMessage.C2M_TestRobotCase)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class C2M_TestRobotCase: ProtoObject, IActorLocationRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int N { get; set; }
 
 	}
 
 	[Message(OuterMessage.M2C_TestRobotCase)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class M2C_TestRobotCase: ProtoObject, IActorLocationResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 		[ProtoMember(4)]
+		[MemoryPackOrder(3)]
 		public int N { get; set; }
 
 	}
 
 	[Message(OuterMessage.C2M_TestRobotCase2)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class C2M_TestRobotCase2: ProtoObject, IActorLocationMessage
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int N { get; set; }
 
 	}
 
 	[Message(OuterMessage.M2C_TestRobotCase2)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class M2C_TestRobotCase2: ProtoObject, IActorLocationMessage
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int N { get; set; }
 
 	}
@@ -456,24 +572,30 @@ namespace ET
 	[ResponseType(nameof(M2C_TransferMap))]
 	[Message(OuterMessage.C2M_TransferMap)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class C2M_TransferMap: ProtoObject, IActorLocationRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 	}
 
 	[Message(OuterMessage.M2C_TransferMap)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class M2C_TransferMap: ProtoObject, IActorLocationResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 	}
@@ -481,24 +603,30 @@ namespace ET
 	[ResponseType(nameof(G2C_Benchmark))]
 	[Message(OuterMessage.C2G_Benchmark)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class C2G_Benchmark: ProtoObject, IRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 	}
 
 	[Message(OuterMessage.G2C_Benchmark)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class G2C_Benchmark: ProtoObject, IResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 	}

+ 99 - 0
Unity/Assets/Scripts/Codes/Model/Generate/ClientServer/Message/InnerMessage_S_20001.cs

@@ -1,5 +1,6 @@
 using ET;
 using ProtoBuf;
+using MemoryPack;
 using System.Collections.Generic;
 namespace ET
 {
@@ -7,15 +8,19 @@ namespace ET
 	[ResponseType(nameof(ObjectQueryResponse))]
 	[Message(InnerMessage.ObjectQueryRequest)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class ObjectQueryRequest: ProtoObject, IActorRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public long Key { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public long InstanceId { get; set; }
 
 	}
@@ -23,24 +28,30 @@ namespace ET
 	[ResponseType(nameof(A2M_Reload))]
 	[Message(InnerMessage.M2A_Reload)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class M2A_Reload: ProtoObject, IActorRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 	}
 
 	[Message(InnerMessage.A2M_Reload)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class A2M_Reload: ProtoObject, IActorResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 	}
@@ -48,30 +59,38 @@ namespace ET
 	[ResponseType(nameof(G2G_LockResponse))]
 	[Message(InnerMessage.G2G_LockRequest)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class G2G_LockRequest: ProtoObject, IActorRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public long Id { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Address { get; set; }
 
 	}
 
 	[Message(InnerMessage.G2G_LockResponse)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class G2G_LockResponse: ProtoObject, IActorResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 	}
@@ -79,30 +98,38 @@ namespace ET
 	[ResponseType(nameof(G2G_LockReleaseResponse))]
 	[Message(InnerMessage.G2G_LockReleaseRequest)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class G2G_LockReleaseRequest: ProtoObject, IActorRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public long Id { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Address { get; set; }
 
 	}
 
 	[Message(InnerMessage.G2G_LockReleaseResponse)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class G2G_LockReleaseResponse: ProtoObject, IActorResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 	}
@@ -110,33 +137,42 @@ namespace ET
 	[ResponseType(nameof(ObjectAddResponse))]
 	[Message(InnerMessage.ObjectAddRequest)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class ObjectAddRequest: ProtoObject, IActorRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Type { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public long Key { get; set; }
 
 		[ProtoMember(4)]
+		[MemoryPackOrder(3)]
 		public long InstanceId { get; set; }
 
 	}
 
 	[Message(InnerMessage.ObjectAddResponse)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class ObjectAddResponse: ProtoObject, IActorResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 	}
@@ -144,36 +180,46 @@ namespace ET
 	[ResponseType(nameof(ObjectLockResponse))]
 	[Message(InnerMessage.ObjectLockRequest)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class ObjectLockRequest: ProtoObject, IActorRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Type { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public long Key { get; set; }
 
 		[ProtoMember(4)]
+		[MemoryPackOrder(3)]
 		public long InstanceId { get; set; }
 
 		[ProtoMember(5)]
+		[MemoryPackOrder(4)]
 		public int Time { get; set; }
 
 	}
 
 	[Message(InnerMessage.ObjectLockResponse)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class ObjectLockResponse: ProtoObject, IActorResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 	}
@@ -181,36 +227,46 @@ namespace ET
 	[ResponseType(nameof(ObjectUnLockResponse))]
 	[Message(InnerMessage.ObjectUnLockRequest)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class ObjectUnLockRequest: ProtoObject, IActorRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Type { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public long Key { get; set; }
 
 		[ProtoMember(4)]
+		[MemoryPackOrder(3)]
 		public long OldInstanceId { get; set; }
 
 		[ProtoMember(5)]
+		[MemoryPackOrder(4)]
 		public long InstanceId { get; set; }
 
 	}
 
 	[Message(InnerMessage.ObjectUnLockResponse)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class ObjectUnLockResponse: ProtoObject, IActorResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 	}
@@ -218,30 +274,38 @@ namespace ET
 	[ResponseType(nameof(ObjectRemoveResponse))]
 	[Message(InnerMessage.ObjectRemoveRequest)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class ObjectRemoveRequest: ProtoObject, IActorRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Type { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public long Key { get; set; }
 
 	}
 
 	[Message(InnerMessage.ObjectRemoveResponse)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class ObjectRemoveResponse: ProtoObject, IActorResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 	}
@@ -249,36 +313,46 @@ namespace ET
 	[ResponseType(nameof(ObjectGetResponse))]
 	[Message(InnerMessage.ObjectGetRequest)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class ObjectGetRequest: ProtoObject, IActorRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Type { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public long Key { get; set; }
 
 	}
 
 	[Message(InnerMessage.ObjectGetResponse)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class ObjectGetResponse: ProtoObject, IActorResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 		[ProtoMember(4)]
+		[MemoryPackOrder(3)]
 		public int Type { get; set; }
 
 		[ProtoMember(5)]
+		[MemoryPackOrder(4)]
 		public long InstanceId { get; set; }
 
 	}
@@ -286,60 +360,76 @@ namespace ET
 	[ResponseType(nameof(G2R_GetLoginKey))]
 	[Message(InnerMessage.R2G_GetLoginKey)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class R2G_GetLoginKey: ProtoObject, IActorRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public string Account { get; set; }
 
 	}
 
 	[Message(InnerMessage.G2R_GetLoginKey)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class G2R_GetLoginKey: ProtoObject, IActorResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 		[ProtoMember(4)]
+		[MemoryPackOrder(3)]
 		public long Key { get; set; }
 
 		[ProtoMember(5)]
+		[MemoryPackOrder(4)]
 		public long GateId { get; set; }
 
 	}
 
 	[Message(InnerMessage.G2M_SessionDisconnect)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class G2M_SessionDisconnect: ProtoObject, IActorLocationMessage
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 	}
 
 	[Message(InnerMessage.ObjectQueryResponse)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class ObjectQueryResponse: ProtoObject, IActorResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 		[ProtoMember(4)]
+		[MemoryPackOrder(3)]
 		public byte[] Entity { get; set; }
 
 	}
@@ -347,33 +437,42 @@ namespace ET
 	[ResponseType(nameof(M2M_UnitTransferResponse))]
 	[Message(InnerMessage.M2M_UnitTransferRequest)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class M2M_UnitTransferRequest: ProtoObject, IActorRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public long OldInstanceId { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public byte[] Unit { get; set; }
 
 		[ProtoMember(4)]
+		[MemoryPackOrder(3)]
 		public List<byte[]> Entitys { get; set; }
 
 	}
 
 	[Message(InnerMessage.M2M_UnitTransferResponse)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class M2M_UnitTransferResponse: ProtoObject, IActorResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 	}

+ 128 - 0
Unity/Assets/Scripts/Codes/Model/Generate/ClientServer/Message/OuterMessage_C_10001.cs

@@ -1,28 +1,35 @@
 using ET;
 using ProtoBuf;
+using MemoryPack;
 using System.Collections.Generic;
 namespace ET
 {
 	[Message(OuterMessage.HttpGetRouterResponse)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class HttpGetRouterResponse: ProtoObject
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public List<string> Realms { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public List<string> Routers { get; set; }
 
 	}
 
 	[Message(OuterMessage.RouterSync)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class RouterSync: ProtoObject
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public uint ConnectId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public string Address { get; set; }
 
 	}
@@ -30,30 +37,38 @@ namespace ET
 	[ResponseType(nameof(M2C_TestResponse))]
 	[Message(OuterMessage.C2M_TestRequest)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class C2M_TestRequest: ProtoObject, IActorLocationRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public string request { get; set; }
 
 	}
 
 	[Message(OuterMessage.M2C_TestResponse)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class M2C_TestResponse: ProtoObject, IActorResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 		[ProtoMember(4)]
+		[MemoryPackOrder(3)]
 		public string response { get; set; }
 
 	}
@@ -61,27 +76,34 @@ namespace ET
 	[ResponseType(nameof(Actor_TransferResponse))]
 	[Message(OuterMessage.Actor_TransferRequest)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class Actor_TransferRequest: ProtoObject, IActorLocationRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int MapIndex { get; set; }
 
 	}
 
 	[Message(OuterMessage.Actor_TransferResponse)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class Actor_TransferResponse: ProtoObject, IActorLocationResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 	}
@@ -89,163 +111,205 @@ namespace ET
 	[ResponseType(nameof(G2C_EnterMap))]
 	[Message(OuterMessage.C2G_EnterMap)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class C2G_EnterMap: ProtoObject, IRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 	}
 
 	[Message(OuterMessage.G2C_EnterMap)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class G2C_EnterMap: ProtoObject, IResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 // 自己unitId
 		[ProtoMember(4)]
+		[MemoryPackOrder(3)]
 		public long MyId { get; set; }
 
 	}
 
 	[Message(OuterMessage.MoveInfo)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class MoveInfo: ProtoObject
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public List<Unity.Mathematics.float3> Points { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public Unity.Mathematics.quaternion Rotation { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public int TurnSpeed { get; set; }
 
 	}
 
 	[Message(OuterMessage.UnitInfo)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class UnitInfo: ProtoObject
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public long UnitId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int ConfigId { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public int Type { get; set; }
 
 		[ProtoMember(4)]
+		[MemoryPackOrder(3)]
 		public Unity.Mathematics.float3 Position { get; set; }
 
 		[ProtoMember(5)]
+		[MemoryPackOrder(4)]
 		public Unity.Mathematics.float3 Forward { get; set; }
 
 		[MongoDB.Bson.Serialization.Attributes.BsonDictionaryOptions(MongoDB.Bson.Serialization.Options.DictionaryRepresentation.ArrayOfArrays)]
 		[ProtoMember(6)]
+		[MemoryPackOrder(5)]
 		public Dictionary<int, long> KV { get; set; }
 		[ProtoMember(7)]
+		[MemoryPackOrder(6)]
 		public MoveInfo MoveInfo { get; set; }
 
 	}
 
 	[Message(OuterMessage.M2C_CreateUnits)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class M2C_CreateUnits: ProtoObject, IActorMessage
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public List<UnitInfo> Units { get; set; }
 
 	}
 
 	[Message(OuterMessage.M2C_CreateMyUnit)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class M2C_CreateMyUnit: ProtoObject, IActorMessage
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public UnitInfo Unit { get; set; }
 
 	}
 
 	[Message(OuterMessage.M2C_StartSceneChange)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class M2C_StartSceneChange: ProtoObject, IActorMessage
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public long SceneInstanceId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public string SceneName { get; set; }
 
 	}
 
 	[Message(OuterMessage.M2C_RemoveUnits)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class M2C_RemoveUnits: ProtoObject, IActorMessage
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public List<long> Units { get; set; }
 
 	}
 
 	[Message(OuterMessage.C2M_PathfindingResult)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class C2M_PathfindingResult: ProtoObject, IActorLocationMessage
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public Unity.Mathematics.float3 Position { get; set; }
 
 	}
 
 	[Message(OuterMessage.C2M_Stop)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class C2M_Stop: ProtoObject, IActorLocationMessage
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 	}
 
 	[Message(OuterMessage.M2C_PathfindingResult)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class M2C_PathfindingResult: ProtoObject, IActorMessage
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public long Id { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public Unity.Mathematics.float3 Position { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public List<Unity.Mathematics.float3> Points { get; set; }
 
 	}
 
 	[Message(OuterMessage.M2C_Stop)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class M2C_Stop: ProtoObject, IActorMessage
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int Error { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public long Id { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public Unity.Mathematics.float3 Position { get; set; }
 
 		[ProtoMember(4)]
+		[MemoryPackOrder(3)]
 		public Unity.Mathematics.quaternion Rotation { get; set; }
 
 	}
@@ -253,33 +317,41 @@ namespace ET
 	[ResponseType(nameof(G2C_Ping))]
 	[Message(OuterMessage.C2G_Ping)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class C2G_Ping: ProtoObject, IRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 	}
 
 	[Message(OuterMessage.G2C_Ping)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class G2C_Ping: ProtoObject, IResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 		[ProtoMember(4)]
+		[MemoryPackOrder(3)]
 		public long Time { get; set; }
 
 	}
 
 	[Message(OuterMessage.G2C_Test)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class G2C_Test: ProtoObject, IMessage
 	{
 	}
@@ -287,30 +359,38 @@ namespace ET
 	[ResponseType(nameof(M2C_Reload))]
 	[Message(OuterMessage.C2M_Reload)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class C2M_Reload: ProtoObject, IRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public string Account { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Password { get; set; }
 
 	}
 
 	[Message(OuterMessage.M2C_Reload)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class M2C_Reload: ProtoObject, IResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 	}
@@ -318,39 +398,50 @@ namespace ET
 	[ResponseType(nameof(R2C_Login))]
 	[Message(OuterMessage.C2R_Login)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class C2R_Login: ProtoObject, IRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public string Account { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Password { get; set; }
 
 	}
 
 	[Message(OuterMessage.R2C_Login)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class R2C_Login: ProtoObject, IResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 		[ProtoMember(4)]
+		[MemoryPackOrder(3)]
 		public string Address { get; set; }
 
 		[ProtoMember(5)]
+		[MemoryPackOrder(4)]
 		public long Key { get; set; }
 
 		[ProtoMember(6)]
+		[MemoryPackOrder(5)]
 		public long GateId { get; set; }
 
 	}
@@ -358,42 +449,53 @@ namespace ET
 	[ResponseType(nameof(G2C_LoginGate))]
 	[Message(OuterMessage.C2G_LoginGate)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class C2G_LoginGate: ProtoObject, IRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public long Key { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public long GateId { get; set; }
 
 	}
 
 	[Message(OuterMessage.G2C_LoginGate)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class G2C_LoginGate: ProtoObject, IResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 		[ProtoMember(4)]
+		[MemoryPackOrder(3)]
 		public long PlayerId { get; set; }
 
 	}
 
 	[Message(OuterMessage.G2C_TestHotfixMessage)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class G2C_TestHotfixMessage: ProtoObject, IMessage
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public string Info { get; set; }
 
 	}
@@ -401,54 +503,68 @@ namespace ET
 	[ResponseType(nameof(M2C_TestRobotCase))]
 	[Message(OuterMessage.C2M_TestRobotCase)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class C2M_TestRobotCase: ProtoObject, IActorLocationRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int N { get; set; }
 
 	}
 
 	[Message(OuterMessage.M2C_TestRobotCase)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class M2C_TestRobotCase: ProtoObject, IActorLocationResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 		[ProtoMember(4)]
+		[MemoryPackOrder(3)]
 		public int N { get; set; }
 
 	}
 
 	[Message(OuterMessage.C2M_TestRobotCase2)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class C2M_TestRobotCase2: ProtoObject, IActorLocationMessage
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int N { get; set; }
 
 	}
 
 	[Message(OuterMessage.M2C_TestRobotCase2)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class M2C_TestRobotCase2: ProtoObject, IActorLocationMessage
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int N { get; set; }
 
 	}
@@ -456,24 +572,30 @@ namespace ET
 	[ResponseType(nameof(M2C_TransferMap))]
 	[Message(OuterMessage.C2M_TransferMap)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class C2M_TransferMap: ProtoObject, IActorLocationRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 	}
 
 	[Message(OuterMessage.M2C_TransferMap)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class M2C_TransferMap: ProtoObject, IActorLocationResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 	}
@@ -481,24 +603,30 @@ namespace ET
 	[ResponseType(nameof(G2C_Benchmark))]
 	[Message(OuterMessage.C2G_Benchmark)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class C2G_Benchmark: ProtoObject, IRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 	}
 
 	[Message(OuterMessage.G2C_Benchmark)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class G2C_Benchmark: ProtoObject, IResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 	}

+ 99 - 0
Unity/Assets/Scripts/Codes/Model/Generate/Server/Message/InnerMessage_S_20001.cs

@@ -1,5 +1,6 @@
 using ET;
 using ProtoBuf;
+using MemoryPack;
 using System.Collections.Generic;
 namespace ET
 {
@@ -7,15 +8,19 @@ namespace ET
 	[ResponseType(nameof(ObjectQueryResponse))]
 	[Message(InnerMessage.ObjectQueryRequest)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class ObjectQueryRequest: ProtoObject, IActorRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public long Key { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public long InstanceId { get; set; }
 
 	}
@@ -23,24 +28,30 @@ namespace ET
 	[ResponseType(nameof(A2M_Reload))]
 	[Message(InnerMessage.M2A_Reload)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class M2A_Reload: ProtoObject, IActorRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 	}
 
 	[Message(InnerMessage.A2M_Reload)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class A2M_Reload: ProtoObject, IActorResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 	}
@@ -48,30 +59,38 @@ namespace ET
 	[ResponseType(nameof(G2G_LockResponse))]
 	[Message(InnerMessage.G2G_LockRequest)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class G2G_LockRequest: ProtoObject, IActorRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public long Id { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Address { get; set; }
 
 	}
 
 	[Message(InnerMessage.G2G_LockResponse)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class G2G_LockResponse: ProtoObject, IActorResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 	}
@@ -79,30 +98,38 @@ namespace ET
 	[ResponseType(nameof(G2G_LockReleaseResponse))]
 	[Message(InnerMessage.G2G_LockReleaseRequest)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class G2G_LockReleaseRequest: ProtoObject, IActorRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public long Id { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Address { get; set; }
 
 	}
 
 	[Message(InnerMessage.G2G_LockReleaseResponse)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class G2G_LockReleaseResponse: ProtoObject, IActorResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 	}
@@ -110,33 +137,42 @@ namespace ET
 	[ResponseType(nameof(ObjectAddResponse))]
 	[Message(InnerMessage.ObjectAddRequest)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class ObjectAddRequest: ProtoObject, IActorRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Type { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public long Key { get; set; }
 
 		[ProtoMember(4)]
+		[MemoryPackOrder(3)]
 		public long InstanceId { get; set; }
 
 	}
 
 	[Message(InnerMessage.ObjectAddResponse)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class ObjectAddResponse: ProtoObject, IActorResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 	}
@@ -144,36 +180,46 @@ namespace ET
 	[ResponseType(nameof(ObjectLockResponse))]
 	[Message(InnerMessage.ObjectLockRequest)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class ObjectLockRequest: ProtoObject, IActorRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Type { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public long Key { get; set; }
 
 		[ProtoMember(4)]
+		[MemoryPackOrder(3)]
 		public long InstanceId { get; set; }
 
 		[ProtoMember(5)]
+		[MemoryPackOrder(4)]
 		public int Time { get; set; }
 
 	}
 
 	[Message(InnerMessage.ObjectLockResponse)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class ObjectLockResponse: ProtoObject, IActorResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 	}
@@ -181,36 +227,46 @@ namespace ET
 	[ResponseType(nameof(ObjectUnLockResponse))]
 	[Message(InnerMessage.ObjectUnLockRequest)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class ObjectUnLockRequest: ProtoObject, IActorRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Type { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public long Key { get; set; }
 
 		[ProtoMember(4)]
+		[MemoryPackOrder(3)]
 		public long OldInstanceId { get; set; }
 
 		[ProtoMember(5)]
+		[MemoryPackOrder(4)]
 		public long InstanceId { get; set; }
 
 	}
 
 	[Message(InnerMessage.ObjectUnLockResponse)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class ObjectUnLockResponse: ProtoObject, IActorResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 	}
@@ -218,30 +274,38 @@ namespace ET
 	[ResponseType(nameof(ObjectRemoveResponse))]
 	[Message(InnerMessage.ObjectRemoveRequest)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class ObjectRemoveRequest: ProtoObject, IActorRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Type { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public long Key { get; set; }
 
 	}
 
 	[Message(InnerMessage.ObjectRemoveResponse)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class ObjectRemoveResponse: ProtoObject, IActorResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 	}
@@ -249,36 +313,46 @@ namespace ET
 	[ResponseType(nameof(ObjectGetResponse))]
 	[Message(InnerMessage.ObjectGetRequest)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class ObjectGetRequest: ProtoObject, IActorRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Type { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public long Key { get; set; }
 
 	}
 
 	[Message(InnerMessage.ObjectGetResponse)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class ObjectGetResponse: ProtoObject, IActorResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 		[ProtoMember(4)]
+		[MemoryPackOrder(3)]
 		public int Type { get; set; }
 
 		[ProtoMember(5)]
+		[MemoryPackOrder(4)]
 		public long InstanceId { get; set; }
 
 	}
@@ -286,60 +360,76 @@ namespace ET
 	[ResponseType(nameof(G2R_GetLoginKey))]
 	[Message(InnerMessage.R2G_GetLoginKey)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class R2G_GetLoginKey: ProtoObject, IActorRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public string Account { get; set; }
 
 	}
 
 	[Message(InnerMessage.G2R_GetLoginKey)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class G2R_GetLoginKey: ProtoObject, IActorResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 		[ProtoMember(4)]
+		[MemoryPackOrder(3)]
 		public long Key { get; set; }
 
 		[ProtoMember(5)]
+		[MemoryPackOrder(4)]
 		public long GateId { get; set; }
 
 	}
 
 	[Message(InnerMessage.G2M_SessionDisconnect)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class G2M_SessionDisconnect: ProtoObject, IActorLocationMessage
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 	}
 
 	[Message(InnerMessage.ObjectQueryResponse)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class ObjectQueryResponse: ProtoObject, IActorResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 		[ProtoMember(4)]
+		[MemoryPackOrder(3)]
 		public byte[] Entity { get; set; }
 
 	}
@@ -347,33 +437,42 @@ namespace ET
 	[ResponseType(nameof(M2M_UnitTransferResponse))]
 	[Message(InnerMessage.M2M_UnitTransferRequest)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class M2M_UnitTransferRequest: ProtoObject, IActorRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public long OldInstanceId { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public byte[] Unit { get; set; }
 
 		[ProtoMember(4)]
+		[MemoryPackOrder(3)]
 		public List<byte[]> Entitys { get; set; }
 
 	}
 
 	[Message(InnerMessage.M2M_UnitTransferResponse)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class M2M_UnitTransferResponse: ProtoObject, IActorResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 	}

+ 128 - 0
Unity/Assets/Scripts/Codes/Model/Generate/Server/Message/OuterMessage_C_10001.cs

@@ -1,28 +1,35 @@
 using ET;
 using ProtoBuf;
+using MemoryPack;
 using System.Collections.Generic;
 namespace ET
 {
 	[Message(OuterMessage.HttpGetRouterResponse)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class HttpGetRouterResponse: ProtoObject
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public List<string> Realms { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public List<string> Routers { get; set; }
 
 	}
 
 	[Message(OuterMessage.RouterSync)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class RouterSync: ProtoObject
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public uint ConnectId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public string Address { get; set; }
 
 	}
@@ -30,30 +37,38 @@ namespace ET
 	[ResponseType(nameof(M2C_TestResponse))]
 	[Message(OuterMessage.C2M_TestRequest)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class C2M_TestRequest: ProtoObject, IActorLocationRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public string request { get; set; }
 
 	}
 
 	[Message(OuterMessage.M2C_TestResponse)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class M2C_TestResponse: ProtoObject, IActorResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 		[ProtoMember(4)]
+		[MemoryPackOrder(3)]
 		public string response { get; set; }
 
 	}
@@ -61,27 +76,34 @@ namespace ET
 	[ResponseType(nameof(Actor_TransferResponse))]
 	[Message(OuterMessage.Actor_TransferRequest)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class Actor_TransferRequest: ProtoObject, IActorLocationRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int MapIndex { get; set; }
 
 	}
 
 	[Message(OuterMessage.Actor_TransferResponse)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class Actor_TransferResponse: ProtoObject, IActorLocationResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 	}
@@ -89,163 +111,205 @@ namespace ET
 	[ResponseType(nameof(G2C_EnterMap))]
 	[Message(OuterMessage.C2G_EnterMap)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class C2G_EnterMap: ProtoObject, IRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 	}
 
 	[Message(OuterMessage.G2C_EnterMap)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class G2C_EnterMap: ProtoObject, IResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 // 自己unitId
 		[ProtoMember(4)]
+		[MemoryPackOrder(3)]
 		public long MyId { get; set; }
 
 	}
 
 	[Message(OuterMessage.MoveInfo)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class MoveInfo: ProtoObject
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public List<Unity.Mathematics.float3> Points { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public Unity.Mathematics.quaternion Rotation { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public int TurnSpeed { get; set; }
 
 	}
 
 	[Message(OuterMessage.UnitInfo)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class UnitInfo: ProtoObject
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public long UnitId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int ConfigId { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public int Type { get; set; }
 
 		[ProtoMember(4)]
+		[MemoryPackOrder(3)]
 		public Unity.Mathematics.float3 Position { get; set; }
 
 		[ProtoMember(5)]
+		[MemoryPackOrder(4)]
 		public Unity.Mathematics.float3 Forward { get; set; }
 
 		[MongoDB.Bson.Serialization.Attributes.BsonDictionaryOptions(MongoDB.Bson.Serialization.Options.DictionaryRepresentation.ArrayOfArrays)]
 		[ProtoMember(6)]
+		[MemoryPackOrder(5)]
 		public Dictionary<int, long> KV { get; set; }
 		[ProtoMember(7)]
+		[MemoryPackOrder(6)]
 		public MoveInfo MoveInfo { get; set; }
 
 	}
 
 	[Message(OuterMessage.M2C_CreateUnits)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class M2C_CreateUnits: ProtoObject, IActorMessage
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public List<UnitInfo> Units { get; set; }
 
 	}
 
 	[Message(OuterMessage.M2C_CreateMyUnit)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class M2C_CreateMyUnit: ProtoObject, IActorMessage
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public UnitInfo Unit { get; set; }
 
 	}
 
 	[Message(OuterMessage.M2C_StartSceneChange)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class M2C_StartSceneChange: ProtoObject, IActorMessage
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public long SceneInstanceId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public string SceneName { get; set; }
 
 	}
 
 	[Message(OuterMessage.M2C_RemoveUnits)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class M2C_RemoveUnits: ProtoObject, IActorMessage
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public List<long> Units { get; set; }
 
 	}
 
 	[Message(OuterMessage.C2M_PathfindingResult)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class C2M_PathfindingResult: ProtoObject, IActorLocationMessage
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public Unity.Mathematics.float3 Position { get; set; }
 
 	}
 
 	[Message(OuterMessage.C2M_Stop)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class C2M_Stop: ProtoObject, IActorLocationMessage
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 	}
 
 	[Message(OuterMessage.M2C_PathfindingResult)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class M2C_PathfindingResult: ProtoObject, IActorMessage
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public long Id { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public Unity.Mathematics.float3 Position { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public List<Unity.Mathematics.float3> Points { get; set; }
 
 	}
 
 	[Message(OuterMessage.M2C_Stop)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class M2C_Stop: ProtoObject, IActorMessage
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int Error { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public long Id { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public Unity.Mathematics.float3 Position { get; set; }
 
 		[ProtoMember(4)]
+		[MemoryPackOrder(3)]
 		public Unity.Mathematics.quaternion Rotation { get; set; }
 
 	}
@@ -253,33 +317,41 @@ namespace ET
 	[ResponseType(nameof(G2C_Ping))]
 	[Message(OuterMessage.C2G_Ping)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class C2G_Ping: ProtoObject, IRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 	}
 
 	[Message(OuterMessage.G2C_Ping)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class G2C_Ping: ProtoObject, IResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 		[ProtoMember(4)]
+		[MemoryPackOrder(3)]
 		public long Time { get; set; }
 
 	}
 
 	[Message(OuterMessage.G2C_Test)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class G2C_Test: ProtoObject, IMessage
 	{
 	}
@@ -287,30 +359,38 @@ namespace ET
 	[ResponseType(nameof(M2C_Reload))]
 	[Message(OuterMessage.C2M_Reload)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class C2M_Reload: ProtoObject, IRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public string Account { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Password { get; set; }
 
 	}
 
 	[Message(OuterMessage.M2C_Reload)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class M2C_Reload: ProtoObject, IResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 	}
@@ -318,39 +398,50 @@ namespace ET
 	[ResponseType(nameof(R2C_Login))]
 	[Message(OuterMessage.C2R_Login)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class C2R_Login: ProtoObject, IRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public string Account { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Password { get; set; }
 
 	}
 
 	[Message(OuterMessage.R2C_Login)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class R2C_Login: ProtoObject, IResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 		[ProtoMember(4)]
+		[MemoryPackOrder(3)]
 		public string Address { get; set; }
 
 		[ProtoMember(5)]
+		[MemoryPackOrder(4)]
 		public long Key { get; set; }
 
 		[ProtoMember(6)]
+		[MemoryPackOrder(5)]
 		public long GateId { get; set; }
 
 	}
@@ -358,42 +449,53 @@ namespace ET
 	[ResponseType(nameof(G2C_LoginGate))]
 	[Message(OuterMessage.C2G_LoginGate)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class C2G_LoginGate: ProtoObject, IRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public long Key { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public long GateId { get; set; }
 
 	}
 
 	[Message(OuterMessage.G2C_LoginGate)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class G2C_LoginGate: ProtoObject, IResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 		[ProtoMember(4)]
+		[MemoryPackOrder(3)]
 		public long PlayerId { get; set; }
 
 	}
 
 	[Message(OuterMessage.G2C_TestHotfixMessage)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class G2C_TestHotfixMessage: ProtoObject, IMessage
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public string Info { get; set; }
 
 	}
@@ -401,54 +503,68 @@ namespace ET
 	[ResponseType(nameof(M2C_TestRobotCase))]
 	[Message(OuterMessage.C2M_TestRobotCase)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class C2M_TestRobotCase: ProtoObject, IActorLocationRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int N { get; set; }
 
 	}
 
 	[Message(OuterMessage.M2C_TestRobotCase)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class M2C_TestRobotCase: ProtoObject, IActorLocationResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 		[ProtoMember(4)]
+		[MemoryPackOrder(3)]
 		public int N { get; set; }
 
 	}
 
 	[Message(OuterMessage.C2M_TestRobotCase2)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class C2M_TestRobotCase2: ProtoObject, IActorLocationMessage
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int N { get; set; }
 
 	}
 
 	[Message(OuterMessage.M2C_TestRobotCase2)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class M2C_TestRobotCase2: ProtoObject, IActorLocationMessage
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int N { get; set; }
 
 	}
@@ -456,24 +572,30 @@ namespace ET
 	[ResponseType(nameof(M2C_TransferMap))]
 	[Message(OuterMessage.C2M_TransferMap)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class C2M_TransferMap: ProtoObject, IActorLocationRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 	}
 
 	[Message(OuterMessage.M2C_TransferMap)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class M2C_TransferMap: ProtoObject, IActorLocationResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 	}
@@ -481,24 +603,30 @@ namespace ET
 	[ResponseType(nameof(G2C_Benchmark))]
 	[Message(OuterMessage.C2G_Benchmark)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class C2G_Benchmark: ProtoObject, IRequest
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 	}
 
 	[Message(OuterMessage.G2C_Benchmark)]
 	[ProtoContract]
+	[MemoryPackable]
 	public partial class G2C_Benchmark: ProtoObject, IResponse
 	{
 		[ProtoMember(1)]
+		[MemoryPackOrder(0)]
 		public int RpcId { get; set; }
 
 		[ProtoMember(2)]
+		[MemoryPackOrder(1)]
 		public int Error { get; set; }
 
 		[ProtoMember(3)]
+		[MemoryPackOrder(2)]
 		public string Message { get; set; }
 
 	}

+ 18 - 2
Unity/Assets/Scripts/Codes/Model/Share/Entry.cs

@@ -1,4 +1,7 @@
-namespace ET
+using System.IO;
+using MemoryPack;
+
+namespace ET
 {
     namespace EventType
     {
@@ -15,6 +18,18 @@
         } 
     }
     
+    [MemoryPackable]
+    public partial class BB
+    {
+        public int a;
+    }
+
+    [MemoryPackable]
+    public partial class AA
+    {
+        public int a;
+    }
+
     public static class Entry
     {
         public static void Init()
@@ -33,7 +48,8 @@
             
             MongoHelper.Init();
             ProtobufHelper.Init();
-            
+            MemoryPackHelper.Init();
+
             Game.AddSingleton<NetServices>();
             Game.AddSingleton<Root>();
             await Game.AddSingleton<ConfigComponent>().LoadAsync();

+ 4 - 5
Unity/Assets/Scripts/Codes/Model/Unity.Model.Codes.asmdef

@@ -4,11 +4,10 @@
     "references": [
         "Unity.ThirdParty",
         "Unity.Core",
-        "Unity.Mathematics"
-    ],
-    "includePlatforms": [
-        "Editor"
+        "Unity.Mathematics",
+        "MemoryPack"
     ],
+    "includePlatforms": [],
     "excludePlatforms": [],
     "allowUnsafeCode": true,
     "overrideReferences": false,
@@ -18,5 +17,5 @@
         "ENABLE_CODES"
     ],
     "versionDefines": [],
-    "noEngineReferences": true
+    "noEngineReferences": false
 }

+ 1 - 3
Unity/Assets/Scripts/Codes/ModelView/Unity.ModelView.Codes.asmdef

@@ -8,9 +8,7 @@
         "Unity.Mathematics",
         "Unity.Loader"
     ],
-    "includePlatforms": [
-        "Editor"
-    ],
+    "includePlatforms": [],
     "excludePlatforms": [],
     "allowUnsafeCode": true,
     "overrideReferences": false,

+ 2 - 2
Unity/Assets/Scripts/Core/Module/Config/ConfigComponent.cs

@@ -38,7 +38,7 @@ namespace ET
 			
 			byte[] oneConfigBytes = EventSystem.Instance.Invoke<GetOneConfigBytes, byte[]>(new GetOneConfigBytes() {ConfigName = configType.FullName});
 
-			object category = SerializeHelper.Deserialize(configType, oneConfigBytes, 0, oneConfigBytes.Length);
+			object category = ProtobufHelper.Deserialize(configType, oneConfigBytes, 0, oneConfigBytes.Length);
 			ISingleton singleton = category as ISingleton;
 			singleton.Register();
 			
@@ -77,7 +77,7 @@ namespace ET
 		
 		private void LoadOneInThread(Type configType, byte[] oneConfigBytes)
 		{
-			object category = SerializeHelper.Deserialize(configType, oneConfigBytes, 0, oneConfigBytes.Length);
+			object category = ProtobufHelper.Deserialize(configType, oneConfigBytes, 0, oneConfigBytes.Length);
 			
 			lock (this)
 			{

+ 1 - 0
Unity/Assets/Scripts/Core/Module/Entity/Scene.cs

@@ -1,4 +1,5 @@
 using System.Diagnostics;
+using MemoryPack;
 
 namespace ET
 {

+ 5 - 5
Unity/Assets/Scripts/Core/Module/Network/KChannel.cs

@@ -48,9 +48,9 @@ namespace ET
 		
 		private const int maxPacketSize = 10000;
 
-		private readonly MemoryStream ms = new MemoryStream(maxPacketSize);
+		private readonly MemoryBuffer ms = new MemoryBuffer(maxPacketSize);
 
-		private MemoryStream readMemory;
+		private MemoryBuffer readMemory;
 		private int needReadSplitCount;
 		
 		private void InitKcp()
@@ -323,7 +323,7 @@ namespace ET
 								this.OnError(ErrorCore.ERR_KcpSplitCountError);
 								return;
 							}
-							this.readMemory = new MemoryStream(this.needReadSplitCount);
+							this.readMemory = new MemoryBuffer(this.needReadSplitCount);
 							this.readMemory.SetLength(this.needReadSplitCount);
 							this.readMemory.Seek(0, SeekOrigin.Begin);
 							continue;
@@ -341,7 +341,7 @@ namespace ET
 						this.readMemory.Seek(Packet.OpcodeLength, SeekOrigin.Begin);
 						break;
 				}
-				MemoryStream mem = this.readMemory;
+				MemoryBuffer mem = this.readMemory;
 				this.readMemory = null;
 				this.OnRead(mem);
 			}
@@ -472,7 +472,7 @@ namespace ET
 			this.KcpSend(kcpWaitPacket);
 		}
 		
-		private void OnRead(MemoryStream memoryStream)
+		private void OnRead(MemoryBuffer memoryStream)
 		{
 			try
 			{

+ 6 - 6
Unity/Assets/Scripts/Core/Module/Network/MessageSerializeHelper.cs

@@ -5,25 +5,25 @@ namespace ET
 {
     public static class MessageSerializeHelper
     {
-        private static MemoryStream GetStream(int count = 0)
+        private static MemoryBuffer GetStream(int count = 0)
         {
-            MemoryStream stream;
+            MemoryBuffer stream;
             if (count > 0)
             {
-                stream = new MemoryStream(count);
+                stream = new MemoryBuffer(count);
             }
             else
             {
-                stream = new MemoryStream();
+                stream = new MemoryBuffer();
             }
 
             return stream;
         }
         
-        public static (ushort, MemoryStream) MessageToStream(object message)
+        public static (ushort, MemoryBuffer) MessageToStream(object message)
         {
             int headOffset = Packet.ActorIdLength;
-            MemoryStream stream = GetStream(headOffset + Packet.OpcodeLength);
+            MemoryBuffer stream = GetStream(headOffset + Packet.OpcodeLength);
 
             ushort opcode = NetServices.Instance.GetOpcode(message.GetType());
             

+ 2 - 2
Unity/Assets/Scripts/Core/Module/Network/PacketParser.cs

@@ -18,7 +18,7 @@ namespace ET
 		private readonly byte[] cache = new byte[8];
 		public const int InnerPacketSizeLength = 4;
 		public const int OuterPacketSizeLength = 2;
-		public MemoryStream MemoryStream;
+		public MemoryBuffer MemoryStream;
 
 		public PacketParser(CircularBuffer buffer, AService service)
 		{
@@ -75,7 +75,7 @@ namespace ET
 							return false;
 						}
 
-						MemoryStream memoryStream = new MemoryStream(this.packetSize);
+						MemoryBuffer memoryStream = new MemoryBuffer(this.packetSize);
 						this.buffer.Read(memoryStream, this.packetSize);
 						//memoryStream.SetLength(this.packetSize - Packet.MessageIndex);
 						this.MemoryStream = memoryStream;

+ 1 - 1
Unity/Assets/Scripts/Core/Module/Network/TChannel.cs

@@ -352,7 +352,7 @@ namespace ET
 			}
 		}
 		
-		private void OnRead(MemoryStream memoryStream)
+		private void OnRead(MemoryBuffer memoryStream)
 		{
 			try
 			{

+ 4 - 4
Unity/Assets/Scripts/Core/Module/Network/WChannel.cs

@@ -20,7 +20,7 @@ namespace ET
 
         private bool isConnected;
 
-        private readonly MemoryStream recvStream;
+        private readonly MemoryBuffer recvStream;
 
         private CancellationTokenSource cancellationTokenSource = new CancellationTokenSource();
 
@@ -31,7 +31,7 @@ namespace ET
             this.ChannelType = ChannelType.Accept;
             this.WebSocketContext = webSocketContext;
             this.webSocket = webSocketContext.WebSocket;
-            this.recvStream = new MemoryStream(ushort.MaxValue);
+            this.recvStream = new MemoryBuffer(ushort.MaxValue);
 
             isConnected = true;
             
@@ -48,7 +48,7 @@ namespace ET
             this.Service = service;
             this.ChannelType = ChannelType.Connect;
             this.webSocket = webSocket;
-            this.recvStream = new MemoryStream(ushort.MaxValue);
+            this.recvStream = new MemoryBuffer(ushort.MaxValue);
 
             isConnected = false;
             
@@ -208,7 +208,7 @@ namespace ET
             }
         }
         
-        private void OnRead(MemoryStream memoryStream)
+        private void OnRead(MemoryBuffer memoryStream)
         {
             try
             {

+ 68 - 0
Unity/Assets/Scripts/Core/Serialize/MemoryBuffer.cs

@@ -0,0 +1,68 @@
+using System;
+using System.Buffers;
+using System.IO;
+using MemoryPack;
+
+namespace ET
+{
+    public class MemoryBuffer: MemoryStream, IBufferWriter<byte>
+    {
+        private int _origin;
+        
+        public MemoryBuffer()
+        {
+        }
+        
+        public MemoryBuffer(int capacity): base(capacity)
+        {
+        }
+        
+        public MemoryBuffer(byte[] buffer): base(buffer)
+        {
+        } 
+        
+        public MemoryBuffer(byte[] buffer, int index, int length): base(buffer, index, length)
+        {
+            _origin = index;
+        }
+
+        protected override void Dispose(bool disposing)
+        {
+            this.Seek(0, SeekOrigin.Begin);
+        }
+        
+        public ReadOnlyMemory<byte> WrittenMemory => this.GetBuffer().AsMemory(_origin, (int)this.Position);
+
+        public ReadOnlySpan<byte> WrittenSpan => this.GetBuffer().AsSpan(_origin, (int)this.Position);
+
+        public void Advance(int count)
+        {
+            long newLength = this.Position + count;
+            if (newLength > this.Length)
+            {
+                this.SetLength(newLength);
+            }
+            this.Position = newLength;
+        }
+
+        public Memory<byte> GetMemory(int sizeHint = 0)
+        {
+            if (this.Length - this.Position < sizeHint)
+            {
+                this.SetLength(this.Position + sizeHint);
+            }
+            var memory = this.GetBuffer().AsMemory((int)this.Position + _origin, (int)(this.Length - this.Position));
+            return memory;
+        }
+
+        public Span<byte> GetSpan(int sizeHint = 0)
+        {
+            if (this.Length - this.Position < sizeHint)
+            {
+                this.SetLength(this.Position + sizeHint);
+            }
+            var span = this.GetBuffer().AsSpan((int)this.Position + _origin, (int)(this.Length - this.Position));
+            return span;
+        }
+    }
+}

+ 3 - 0
Unity/Assets/Scripts/Core/Serialize/MemoryBuffer.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 9c85a4c0a92b422e9f5c81471a16e64a
+timeCreated: 1682481633

+ 61 - 0
Unity/Assets/Scripts/Core/Serialize/MemoryPackHelper.cs

@@ -0,0 +1,61 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.IO;
+using System.Reflection;
+using MemoryPack;
+using MongoDB.Bson.Serialization;
+
+namespace ET
+{
+    public static class MemoryPackHelper
+    {
+        static MemoryPackHelper()
+        {
+            HashSet<Type> types = EventSystem.Instance.GetTypes(typeof (MessageAttribute));
+            foreach (Type type in types)
+            {
+                if (type.GetCustomAttribute(typeof (MemoryPackableAttribute)) == null)
+                {
+                    continue;
+                }
+
+                Activator.CreateInstance(type);
+            }
+        }
+        
+        public static void Init()
+        {
+        }
+        
+        public static object Deserialize(Type type, byte[] bytes, int index, int count)
+        {
+            object o = MemoryPackSerializer.Deserialize(type, bytes.AsSpan(index, count));
+            if (o is ISupportInitialize supportInitialize)
+            {
+                supportInitialize.EndInit();
+            }
+            return o;
+        }
+
+        public static byte[] Serialize(object message)
+        {
+            return MemoryPackSerializer.Serialize(message.GetType(), message);
+        }
+
+        public static void Serialize(object message, MemoryBuffer stream)
+        {
+            MemoryPackSerializer.Serialize(message.GetType(), stream, message);
+        }
+
+        public static object Deserialize(Type type, MemoryBuffer stream)
+        {
+            object o = MemoryPackSerializer.Deserialize(type, stream.GetSpan());
+            if (o is ISupportInitialize supportInitialize)
+            {
+                supportInitialize.EndInit();
+            }
+            return o;
+        }
+    }
+}

+ 3 - 0
Unity/Assets/Scripts/Core/Serialize/MemoryPackHelper.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: e48026652b4f4d09ae05581b76e2095b
+timeCreated: 1682484738

+ 1 - 0
Unity/Assets/Scripts/Core/Serialize/MongoHelper.cs

@@ -170,6 +170,7 @@ namespace ET
             {
                 supportInitialize.BeginInit();
             }
+            
             using (BsonBinaryWriter bsonWriter = new BsonBinaryWriter(stream, BsonBinaryWriterSettings.Defaults))
             {
                 BsonSerializationContext context = BsonSerializationContext.CreateRoot(bsonWriter);

+ 7 - 6
Unity/Assets/Scripts/Core/Serialize/SerializeHelper.cs

@@ -1,5 +1,6 @@
 using System.IO;
 using System;
+using MemoryPack;
 
 namespace ET
 {
@@ -7,22 +8,22 @@ namespace ET
     {
 		public static object Deserialize(Type type, byte[] bytes, int index, int count)
 		{
-			return ProtobufHelper.Deserialize(type, bytes, index, count);
+			return MemoryPackHelper.Deserialize(type, bytes, index, count);
 		}
 
         public static byte[] Serialize(object message)
 		{
-			return ProtobufHelper.Serialize(message);
+			return MemoryPackHelper.Serialize(message);
 		}
 
-        public static void Serialize(object message, Stream stream)
+        public static void Serialize(object message, MemoryBuffer stream)
         {
-            ProtobufHelper.Serialize(message, stream);
+			MemoryPackHelper.Serialize(message, stream);
         }
 
-        public static object Deserialize(Type type, Stream stream)
+        public static object Deserialize(Type type, MemoryBuffer stream)
         {
-	        return ProtobufHelper.Deserialize(type, stream);
+	        return MemoryPackHelper.Deserialize(type, stream);
         }
     }
 }

+ 2 - 1
Unity/Assets/Scripts/Core/Unity.Core.asmdef

@@ -3,7 +3,8 @@
     "rootNamespace": "ET",
     "references": [
         "Unity.ThirdParty",
-        "Unity.Mathematics"
+        "Unity.Mathematics",
+        "MemoryPack"
     ],
     "includePlatforms": [],
     "excludePlatforms": [],

+ 2 - 1
Unity/Assets/Scripts/Empty/Hotfix/Unity.Hotfix.asmdef

@@ -6,7 +6,8 @@
         "Unity.ThirdParty",
         "Unity.Core",
         "Unity.Mathematics",
-        "Unity.Loader"
+        "Unity.Loader",
+        "MemoryPack"
     ],
     "includePlatforms": [
         "Editor"

+ 2 - 1
Unity/Assets/Scripts/Empty/HotfixView/Unity.HotfixView.asmdef

@@ -8,7 +8,8 @@
         "Unity.ModelView",
         "Unity.Core",
         "Unity.Mathematics",
-        "Unity.Loader"
+        "Unity.Loader",
+        "MemoryPack"
     ],
     "includePlatforms": [
         "Editor"

+ 2 - 1
Unity/Assets/Scripts/Empty/Model/Unity.Model.asmdef

@@ -4,7 +4,8 @@
     "references": [
         "Unity.ThirdParty",
         "Unity.Core",
-        "Unity.Mathematics"
+        "Unity.Mathematics",
+        "MemoryPack"
     ],
     "includePlatforms": [
         "Editor"

+ 2 - 1
Unity/Assets/Scripts/Empty/ModelView/Unity.ModelView.asmdef

@@ -6,7 +6,8 @@
         "Unity.ThirdParty",
         "Unity.Core",
         "Unity.Mathematics",
-        "Unity.Loader"
+        "Unity.Loader",
+        "MemoryPack"
     ],
     "includePlatforms": [
         "Editor"

+ 2 - 1
Unity/Assets/Scripts/Loader/Unity.Loader.asmdef

@@ -4,7 +4,8 @@
     "references": [
         "Unity.ThirdParty",
         "Unity.Core",
-        "HybridCLR.Runtime"
+        "HybridCLR.Runtime",
+        "MemoryPack"
     ],
     "includePlatforms": [],
     "excludePlatforms": [],

+ 2 - 2
Unity/Directory.Build.props

@@ -1,6 +1,6 @@
 <Project>
   <PropertyGroup>
-    <LangVersion>10.0</LangVersion>
-    <NoWarn>0169,0649,3021</NoWarn>
+    <LangVersion>11.0</LangVersion>
+    <NoWarn>0169,0649,3021,8981</NoWarn>
   </PropertyGroup>
 </Project>

+ 2 - 2
Unity/ProjectSettings/ProjectSettings.asset

@@ -841,7 +841,7 @@ PlayerSettings:
   scriptingDefineSymbols:
     Android: UNITY;SINGLE_THREAD
     Server: UNITY
-    Standalone: UNITY;SINGLE_THREAD
+    Standalone: UNITY;SINGLE_THREAD;ENABLE_CODES
     WebGL: UNITY
     iPhone: UNITY;SINGLE_THREAD
   additionalCompilerArguments: {}
@@ -859,7 +859,7 @@ PlayerSettings:
   allowUnsafeCode: 1
   useDeterministicCompilation: 1
   enableRoslynAnalyzers: 1
-  selectedPlatform: 3
+  selectedPlatform: 0
   additionalIl2CppArgs: 
   scriptingRuntimeVersion: 1
   gcIncremental: 0