Procházet zdrojové kódy

修改proto生成工具,在MergeFrome方法中清空RepeatedField类型字段,并且将值设置为默认值

tanghai před 7 roky
rodič
revize
4e64ef3915

+ 102 - 102
Server/Hotfix/Module/Message/InnerMessage.cs

@@ -8,119 +8,119 @@ namespace ETHotfix
 	[Message(InnerOpcode.M2M_TrasferUnitRequest)]
 	public partial class M2M_TrasferUnitRequest: IRequest
 	{
-		public int RpcId { get; set; };
+		public int RpcId { get; set; }
 
-		public Unit Unit { get; set; };
+		public Unit Unit { get; set; }
 
 	}
 
 	[Message(InnerOpcode.M2M_TrasferUnitResponse)]
 	public partial class M2M_TrasferUnitResponse: IResponse
 	{
-		public int RpcId { get; set; };
+		public int RpcId { get; set; }
 
-		public int Error { get; set; };
+		public int Error { get; set; }
 
-		public string Message { get; set; };
+		public string Message { get; set; }
 
-		public long InstanceId { get; set; };
+		public long InstanceId { get; set; }
 
 	}
 
 	[Message(InnerOpcode.M2A_Reload)]
 	public partial class M2A_Reload: IRequest
 	{
-		public int RpcId { get; set; };
+		public int RpcId { get; set; }
 
 	}
 
 	[Message(InnerOpcode.A2M_Reload)]
 	public partial class A2M_Reload: IResponse
 	{
-		public int RpcId { get; set; };
+		public int RpcId { get; set; }
 
-		public int Error { get; set; };
+		public int Error { get; set; }
 
-		public string Message { get; set; };
+		public string Message { get; set; }
 
 	}
 
 	[Message(InnerOpcode.G2G_LockRequest)]
 	public partial class G2G_LockRequest: IRequest
 	{
-		public int RpcId { get; set; };
+		public int RpcId { get; set; }
 
-		public long Id { get; set; };
+		public long Id { get; set; }
 
-		public string Address { get; set; };
+		public string Address { get; set; }
 
 	}
 
 	[Message(InnerOpcode.G2G_LockResponse)]
 	public partial class G2G_LockResponse: IResponse
 	{
-		public int RpcId { get; set; };
+		public int RpcId { get; set; }
 
-		public int Error { get; set; };
+		public int Error { get; set; }
 
-		public string Message { get; set; };
+		public string Message { get; set; }
 
 	}
 
 	[Message(InnerOpcode.G2G_LockReleaseRequest)]
 	public partial class G2G_LockReleaseRequest: IRequest
 	{
-		public int RpcId { get; set; };
+		public int RpcId { get; set; }
 
-		public long Id { get; set; };
+		public long Id { get; set; }
 
-		public string Address { get; set; };
+		public string Address { get; set; }
 
 	}
 
 	[Message(InnerOpcode.G2G_LockReleaseResponse)]
 	public partial class G2G_LockReleaseResponse: IResponse
 	{
-		public int RpcId { get; set; };
+		public int RpcId { get; set; }
 
-		public int Error { get; set; };
+		public int Error { get; set; }
 
-		public string Message { get; set; };
+		public string Message { get; set; }
 
 	}
 
 	[Message(InnerOpcode.DBSaveRequest)]
 	public partial class DBSaveRequest: IRequest
 	{
-		public int RpcId { get; set; };
+		public int RpcId { get; set; }
 
-		public bool NeedCache { get; set; };
+		public bool NeedCache { get; set; }
 
-		public string CollectionName { get; set; };
+		public string CollectionName { get; set; }
 
-		public ComponentWithId Component { get; set; };
+		public ComponentWithId Component { get; set; }
 
 	}
 
 	[Message(InnerOpcode.DBSaveBatchResponse)]
 	public partial class DBSaveBatchResponse: IResponse
 	{
-		public int RpcId { get; set; };
+		public int RpcId { get; set; }
 
-		public int Error { get; set; };
+		public int Error { get; set; }
 
-		public string Message { get; set; };
+		public string Message { get; set; }
 
 	}
 
 	[Message(InnerOpcode.DBSaveBatchRequest)]
 	public partial class DBSaveBatchRequest: IRequest
 	{
-		public int RpcId { get; set; };
+		public int RpcId { get; set; }
 
-		public bool NeedCache { get; set; };
+		public bool NeedCache { get; set; }
 
-		public string CollectionName { get; set; };
+		public string CollectionName { get; set; }
 
 		public List<ComponentWithId> Components = new List<ComponentWithId>();
 
@@ -129,61 +129,61 @@ namespace ETHotfix
 	[Message(InnerOpcode.DBSaveResponse)]
 	public partial class DBSaveResponse: IResponse
 	{
-		public int RpcId { get; set; };
+		public int RpcId { get; set; }
 
-		public int Error { get; set; };
+		public int Error { get; set; }
 
-		public string Message { get; set; };
+		public string Message { get; set; }
 
 	}
 
 	[Message(InnerOpcode.DBQueryRequest)]
 	public partial class DBQueryRequest: IRequest
 	{
-		public int RpcId { get; set; };
+		public int RpcId { get; set; }
 
-		public long Id { get; set; };
+		public long Id { get; set; }
 
-		public string CollectionName { get; set; };
+		public string CollectionName { get; set; }
 
-		public bool NeedCache { get; set; };
+		public bool NeedCache { get; set; }
 
 	}
 
 	[Message(InnerOpcode.DBQueryResponse)]
 	public partial class DBQueryResponse: IResponse
 	{
-		public int RpcId { get; set; };
+		public int RpcId { get; set; }
 
-		public int Error { get; set; };
+		public int Error { get; set; }
 
-		public string Message { get; set; };
+		public string Message { get; set; }
 
-		public ComponentWithId Component { get; set; };
+		public ComponentWithId Component { get; set; }
 
 	}
 
 	[Message(InnerOpcode.DBQueryBatchRequest)]
 	public partial class DBQueryBatchRequest: IRequest
 	{
-		public int RpcId { get; set; };
+		public int RpcId { get; set; }
 
-		public string CollectionName { get; set; };
+		public string CollectionName { get; set; }
 
 		public List<long> IdList = new List<long>();
 
-		public bool NeedCache { get; set; };
+		public bool NeedCache { get; set; }
 
 	}
 
 	[Message(InnerOpcode.DBQueryBatchResponse)]
 	public partial class DBQueryBatchResponse: IResponse
 	{
-		public int RpcId { get; set; };
+		public int RpcId { get; set; }
 
-		public int Error { get; set; };
+		public int Error { get; set; }
 
-		public string Message { get; set; };
+		public string Message { get; set; }
 
 		public List<ComponentWithId> Components = new List<ComponentWithId>();
 
@@ -192,22 +192,22 @@ namespace ETHotfix
 	[Message(InnerOpcode.DBQueryJsonRequest)]
 	public partial class DBQueryJsonRequest: IRequest
 	{
-		public int RpcId { get; set; };
+		public int RpcId { get; set; }
 
-		public string CollectionName { get; set; };
+		public string CollectionName { get; set; }
 
-		public string Json { get; set; };
+		public string Json { get; set; }
 
 	}
 
 	[Message(InnerOpcode.DBQueryJsonResponse)]
 	public partial class DBQueryJsonResponse: IResponse
 	{
-		public int RpcId { get; set; };
+		public int RpcId { get; set; }
 
-		public int Error { get; set; };
+		public int Error { get; set; }
 
-		public string Message { get; set; };
+		public string Message { get; set; }
 
 		public List<ComponentWithId> Components = new List<ComponentWithId>();
 
@@ -216,169 +216,169 @@ namespace ETHotfix
 	[Message(InnerOpcode.ObjectAddRequest)]
 	public partial class ObjectAddRequest: IRequest
 	{
-		public int RpcId { get; set; };
+		public int RpcId { get; set; }
 
-		public long Key { get; set; };
+		public long Key { get; set; }
 
-		public long InstanceId { get; set; };
+		public long InstanceId { get; set; }
 
 	}
 
 	[Message(InnerOpcode.ObjectAddResponse)]
 	public partial class ObjectAddResponse: IResponse
 	{
-		public int RpcId { get; set; };
+		public int RpcId { get; set; }
 
-		public int Error { get; set; };
+		public int Error { get; set; }
 
-		public string Message { get; set; };
+		public string Message { get; set; }
 
 	}
 
 	[Message(InnerOpcode.ObjectRemoveRequest)]
 	public partial class ObjectRemoveRequest: IRequest
 	{
-		public int RpcId { get; set; };
+		public int RpcId { get; set; }
 
-		public long Key { get; set; };
+		public long Key { get; set; }
 
 	}
 
 	[Message(InnerOpcode.ObjectRemoveResponse)]
 	public partial class ObjectRemoveResponse: IResponse
 	{
-		public int RpcId { get; set; };
+		public int RpcId { get; set; }
 
-		public int Error { get; set; };
+		public int Error { get; set; }
 
-		public string Message { get; set; };
+		public string Message { get; set; }
 
 	}
 
 	[Message(InnerOpcode.ObjectLockRequest)]
 	public partial class ObjectLockRequest: IRequest
 	{
-		public int RpcId { get; set; };
+		public int RpcId { get; set; }
 
-		public long Key { get; set; };
+		public long Key { get; set; }
 
-		public long InstanceId { get; set; };
+		public long InstanceId { get; set; }
 
-		public int Time { get; set; };
+		public int Time { get; set; }
 
 	}
 
 	[Message(InnerOpcode.ObjectLockResponse)]
 	public partial class ObjectLockResponse: IResponse
 	{
-		public int RpcId { get; set; };
+		public int RpcId { get; set; }
 
-		public int Error { get; set; };
+		public int Error { get; set; }
 
-		public string Message { get; set; };
+		public string Message { get; set; }
 
 	}
 
 	[Message(InnerOpcode.ObjectUnLockRequest)]
 	public partial class ObjectUnLockRequest: IRequest
 	{
-		public int RpcId { get; set; };
+		public int RpcId { get; set; }
 
-		public long Key { get; set; };
+		public long Key { get; set; }
 
-		public long OldInstanceId { get; set; };
+		public long OldInstanceId { get; set; }
 
-		public long InstanceId { get; set; };
+		public long InstanceId { get; set; }
 
 	}
 
 	[Message(InnerOpcode.ObjectUnLockResponse)]
 	public partial class ObjectUnLockResponse: IResponse
 	{
-		public int RpcId { get; set; };
+		public int RpcId { get; set; }
 
-		public int Error { get; set; };
+		public int Error { get; set; }
 
-		public string Message { get; set; };
+		public string Message { get; set; }
 
 	}
 
 	[Message(InnerOpcode.ObjectGetRequest)]
 	public partial class ObjectGetRequest: IRequest
 	{
-		public int RpcId { get; set; };
+		public int RpcId { get; set; }
 
-		public long Key { get; set; };
+		public long Key { get; set; }
 
 	}
 
 	[Message(InnerOpcode.ObjectGetResponse)]
 	public partial class ObjectGetResponse: IResponse
 	{
-		public int RpcId { get; set; };
+		public int RpcId { get; set; }
 
-		public int Error { get; set; };
+		public int Error { get; set; }
 
-		public string Message { get; set; };
+		public string Message { get; set; }
 
-		public long InstanceId { get; set; };
+		public long InstanceId { get; set; }
 
 	}
 
 	[Message(InnerOpcode.R2G_GetLoginKey)]
 	public partial class R2G_GetLoginKey: IRequest
 	{
-		public int RpcId { get; set; };
+		public int RpcId { get; set; }
 
-		public string Account { get; set; };
+		public string Account { get; set; }
 
 	}
 
 	[Message(InnerOpcode.G2R_GetLoginKey)]
 	public partial class G2R_GetLoginKey: IResponse
 	{
-		public int RpcId { get; set; };
+		public int RpcId { get; set; }
 
-		public int Error { get; set; };
+		public int Error { get; set; }
 
-		public string Message { get; set; };
+		public string Message { get; set; }
 
-		public long Key { get; set; };
+		public long Key { get; set; }
 
 	}
 
 	[Message(InnerOpcode.G2M_CreateUnit)]
 	public partial class G2M_CreateUnit: IRequest
 	{
-		public int RpcId { get; set; };
+		public int RpcId { get; set; }
 
-		public long PlayerId { get; set; };
+		public long PlayerId { get; set; }
 
-		public long GateSessionId { get; set; };
+		public long GateSessionId { get; set; }
 
 	}
 
 	[Message(InnerOpcode.M2G_CreateUnit)]
 	public partial class M2G_CreateUnit: IResponse
 	{
-		public int RpcId { get; set; };
+		public int RpcId { get; set; }
 
-		public int Error { get; set; };
+		public int Error { get; set; }
 
-		public string Message { get; set; };
+		public string Message { get; set; }
 
-		public long UnitId { get; set; };
+		public long UnitId { get; set; }
 
-		public int Count { get; set; };
+		public int Count { get; set; }
 
 	}
 
 	[Message(InnerOpcode.G2M_SessionDisconnect)]
 	public partial class G2M_SessionDisconnect: IActorMessage
 	{
-		public int RpcId { get; set; };
+		public int RpcId { get; set; }
 
-		public long ActorId { get; set; };
+		public long ActorId { get; set; }
 
 	}
 

+ 1 - 1
Server/Model/Server.Model.csproj

@@ -69,7 +69,7 @@
     <Compile Include="..\..\Unity\Assets\Scripts\Module\Config\ConfigComponent.cs" Link="Module\Config\ConfigComponent.cs" />
     <Compile Include="..\..\Unity\Assets\Scripts\Module\Config\IConfig.cs" Link="Module\Config\IConfig.cs" />
     <Compile Include="..\..\Unity\Assets\Scripts\Module\FrameSync\FrameMessage.cs" Link="Module\FrameSync\FrameMessage.cs" />
-    <Compile Include="..\..\Unity\Assets\Scripts\Module\FrameSync\FrameProto.cs" Link="Module\FrameSync\FrameProto.cs" />
+    <Compile Include="..\..\Unity\Assets\Scripts\Module\FrameSync\FrameOpcode.cs" Link="Module\FrameSync\FrameOpcode.cs" />
     <Compile Include="..\..\Unity\Assets\Scripts\Module\Message\AMHandler.cs" Link="Module\Message\AMHandler.cs" />
     <Compile Include="..\..\Unity\Assets\Scripts\Module\Message\ErrorCode.cs" Link="Module\Message\ErrorCode.cs" />
     <Compile Include="..\..\Unity\Assets\Scripts\Module\Message\IActorMessage.cs" Link="Module\Message\IActorMessage.cs" />

+ 1 - 1
Unity/Assets/Editor/Proto2CsEditor/InnerProto2CS.cs

@@ -217,7 +217,7 @@ namespace ETEditor
 				string name = ss[1];
 				string typeCs = ConvertType(type);
 
-				sb.Append($"\t\tpublic {typeCs} {name} {{ get; set; }};\n\n");
+				sb.Append($"\t\tpublic {typeCs} {name} {{ get; set; }}\n\n");
 			}
 			catch (Exception e)
 			{

+ 2 - 0
Unity/Assets/Editor/Proto2CsEditor/Proto2CSEditor.cs

@@ -31,6 +31,8 @@ namespace ETEditor
 			msgOpcode.Clear();
 			Proto2CS("ETModel", "OuterMessage.proto", clientMessagePath, "OuterOpcode", 100);
 			
+			msgOpcode.Clear();
+			Proto2CS("ETModel", "FrameMessage.proto", "Assets/Scripts/Module/FrameSync/", "FrameOpcode", 10);
 
 			msgOpcode.Clear();
 			Proto2CS("ETHotfix", "HotfixMessage.proto", hotfixMessagePath, "HotfixOpcode", 10000);

+ 220 - 39
Unity/Assets/Scripts/Module/FrameSync/FrameMessage.cs

@@ -1,39 +1,220 @@
-using System.Collections.Generic;
-
-namespace ETModel
-{
-
-    [Message(Opcode.OneFrameMessage)]
-    public partial class OneFrameMessage: IActorMessage
-    {
-        //[ProtoMember(90, IsRequired = true)]
-        //public int RpcId { get; set; }
-		//
-        //[ProtoMember(93, IsRequired = true)]
-        //public long ActorId { get; set; }
-		//
-        //[ProtoMember(1, IsRequired = true)]
-        //public ushort Op;
-		//
-        //[ProtoMember(2, IsRequired = true)]
-        //public byte[] AMessage;
-
-    }
-
-    [Message(Opcode.FrameMessage)]
-    public partial class FrameMessage: IActorMessage
-    {
-        //[ProtoMember(90, IsRequired = true)]
-        //public int RpcId { get; set; }
-		//
-        //[ProtoMember(93, IsRequired = true)]
-        //public long ActorId { get; set; }
-		//
-        //[ProtoMember(1, IsRequired = true)]
-        //public int Frame;
-		//
-        //[ProtoMember(2)]
-        //public List<OneFrameMessage> Messages = new List<OneFrameMessage>();
-
-    }
-}
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: FrameMessage.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.Protobuf;
+using pbc = global::Google.Protobuf.Collections;
+using scg = global::System.Collections.Generic;
+namespace ETModel {
+
+  #region Messages
+  public partial class OneFrameMessage : pb::IMessage {
+    private static readonly pb::MessageParser<OneFrameMessage> _parser = new pb::MessageParser<OneFrameMessage>(() => new OneFrameMessage());
+    public static pb::MessageParser<OneFrameMessage> Parser { get { return _parser; } }
+
+    private int rpcId_;
+    public int RpcId {
+      get { return rpcId_; }
+      set {
+        rpcId_ = value;
+      }
+    }
+
+    private long actorId_;
+    public long ActorId {
+      get { return actorId_; }
+      set {
+        actorId_ = value;
+      }
+    }
+
+    private int op_;
+    public int Op {
+      get { return op_; }
+      set {
+        op_ = value;
+      }
+    }
+
+    private pb::ByteString aMessage_ = pb::ByteString.Empty;
+    public pb::ByteString AMessage {
+      get { return aMessage_; }
+      set {
+        aMessage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+      }
+    }
+
+    public void WriteTo(pb::CodedOutputStream output) {
+      if (Op != 0) {
+        output.WriteRawTag(8);
+        output.WriteInt32(Op);
+      }
+      if (AMessage.Length != 0) {
+        output.WriteRawTag(18);
+        output.WriteBytes(AMessage);
+      }
+      if (RpcId != 0) {
+        output.WriteRawTag(208, 5);
+        output.WriteInt32(RpcId);
+      }
+      if (ActorId != 0L) {
+        output.WriteRawTag(232, 5);
+        output.WriteInt64(ActorId);
+      }
+    }
+
+    public int CalculateSize() {
+      int size = 0;
+      if (RpcId != 0) {
+        size += 2 + pb::CodedOutputStream.ComputeInt32Size(RpcId);
+      }
+      if (ActorId != 0L) {
+        size += 2 + pb::CodedOutputStream.ComputeInt64Size(ActorId);
+      }
+      if (Op != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Op);
+      }
+      if (AMessage.Length != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeBytesSize(AMessage);
+      }
+      return size;
+    }
+
+    public void MergeFrom(pb::CodedInputStream input) {
+      op_ = 0;
+      rpcId_ = 0;
+      actorId_ = 0;
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 8: {
+            Op = input.ReadInt32();
+            break;
+          }
+          case 18: {
+            AMessage = input.ReadBytes();
+            break;
+          }
+          case 720: {
+            RpcId = input.ReadInt32();
+            break;
+          }
+          case 744: {
+            ActorId = input.ReadInt64();
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  public partial class FrameMessage : pb::IMessage {
+    private static readonly pb::MessageParser<FrameMessage> _parser = new pb::MessageParser<FrameMessage>(() => new FrameMessage());
+    public static pb::MessageParser<FrameMessage> Parser { get { return _parser; } }
+
+    private int rpcId_;
+    public int RpcId {
+      get { return rpcId_; }
+      set {
+        rpcId_ = value;
+      }
+    }
+
+    private long actorId_;
+    public long ActorId {
+      get { return actorId_; }
+      set {
+        actorId_ = value;
+      }
+    }
+
+    private int frame_;
+    public int Frame {
+      get { return frame_; }
+      set {
+        frame_ = value;
+      }
+    }
+
+    private static readonly pb::FieldCodec<global::ETModel.OneFrameMessage> _repeated_message_codec
+        = pb::FieldCodec.ForMessage(18, global::ETModel.OneFrameMessage.Parser);
+    private pbc::RepeatedField<global::ETModel.OneFrameMessage> message_ = new pbc::RepeatedField<global::ETModel.OneFrameMessage>();
+    public pbc::RepeatedField<global::ETModel.OneFrameMessage> Message {
+      get { return message_; }
+      set { message_ = value; }
+    }
+
+    public void WriteTo(pb::CodedOutputStream output) {
+      if (Frame != 0) {
+        output.WriteRawTag(8);
+        output.WriteInt32(Frame);
+      }
+      message_.WriteTo(output, _repeated_message_codec);
+      if (RpcId != 0) {
+        output.WriteRawTag(208, 5);
+        output.WriteInt32(RpcId);
+      }
+      if (ActorId != 0L) {
+        output.WriteRawTag(232, 5);
+        output.WriteInt64(ActorId);
+      }
+    }
+
+    public int CalculateSize() {
+      int size = 0;
+      if (RpcId != 0) {
+        size += 2 + pb::CodedOutputStream.ComputeInt32Size(RpcId);
+      }
+      if (ActorId != 0L) {
+        size += 2 + pb::CodedOutputStream.ComputeInt64Size(ActorId);
+      }
+      if (Frame != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Frame);
+      }
+      size += message_.CalculateSize(_repeated_message_codec);
+      return size;
+    }
+
+    public void MergeFrom(pb::CodedInputStream input) {
+      frame_ = 0;
+      message_.Clear();
+      rpcId_ = 0;
+      actorId_ = 0;
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 8: {
+            Frame = input.ReadInt32();
+            break;
+          }
+          case 18: {
+            message_.AddEntriesFrom(input, _repeated_message_codec);
+            break;
+          }
+          case 720: {
+            RpcId = input.ReadInt32();
+            break;
+          }
+          case 744: {
+            ActorId = input.ReadInt64();
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  #endregion
+
+}
+
+#endregion Designer generated code

+ 18 - 0
Unity/Assets/Scripts/Module/FrameSync/FrameOpcode.cs

@@ -0,0 +1,18 @@
+using ETModel;
+namespace ETModel
+{
+	[Message(FrameOpcode.OneFrameMessage)]
+	public partial class OneFrameMessage : IActorMessage {}
+
+	[Message(FrameOpcode.FrameMessage)]
+	public partial class FrameMessage : IActorMessage {}
+
+}
+namespace ETModel
+{
+	public static partial class FrameOpcode
+	{
+		 public const ushort OneFrameMessage = 11;
+		 public const ushort FrameMessage = 12;
+	}
+}

+ 1 - 1
Unity/Assets/Scripts/Module/FrameSync/FrameProto.cs.meta → Unity/Assets/Scripts/Module/FrameSync/FrameOpcode.cs.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 7089cb7212206ca49822de2b818704d2
+guid: 51c9d041e80d6df40a2c45bb515ace8e
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2

+ 0 - 213
Unity/Assets/Scripts/Module/FrameSync/FrameProto.cs

@@ -1,213 +0,0 @@
-// Generated by the protocol buffer compiler.  DO NOT EDIT!
-// source: FrameMessage.proto
-#pragma warning disable 1591, 0612, 3021
-#region Designer generated code
-
-using pb = global::Google.Protobuf;
-using pbc = global::Google.Protobuf.Collections;
-using scg = global::System.Collections.Generic;
-namespace ETModel {
-
-  #region Messages
-  public partial class OneFrameMessage : pb::IMessage {
-    private static readonly pb::MessageParser<OneFrameMessage> _parser = new pb::MessageParser<OneFrameMessage>(() => new OneFrameMessage());
-    public static pb::MessageParser<OneFrameMessage> Parser { get { return _parser; } }
-
-    private int rpcId_;
-    public int RpcId {
-      get { return rpcId_; }
-      set {
-        rpcId_ = value;
-      }
-    }
-
-    private long actorId_;
-    public long ActorId {
-      get { return actorId_; }
-      set {
-        actorId_ = value;
-      }
-    }
-
-    private int op_;
-    public int Op {
-      get { return op_; }
-      set {
-        op_ = value;
-      }
-    }
-
-    private pb::ByteString aMessage_ = pb::ByteString.Empty;
-    public pb::ByteString AMessage {
-      get { return aMessage_; }
-      set {
-        aMessage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
-      }
-    }
-
-    public void WriteTo(pb::CodedOutputStream output) {
-      if (Op != 0) {
-        output.WriteRawTag(8);
-        output.WriteInt32(Op);
-      }
-      if (AMessage.Length != 0) {
-        output.WriteRawTag(18);
-        output.WriteBytes(AMessage);
-      }
-      if (RpcId != 0) {
-        output.WriteRawTag(208, 5);
-        output.WriteInt32(RpcId);
-      }
-      if (ActorId != 0L) {
-        output.WriteRawTag(232, 5);
-        output.WriteInt64(ActorId);
-      }
-    }
-
-    public int CalculateSize() {
-      int size = 0;
-      if (RpcId != 0) {
-        size += 2 + pb::CodedOutputStream.ComputeInt32Size(RpcId);
-      }
-      if (ActorId != 0L) {
-        size += 2 + pb::CodedOutputStream.ComputeInt64Size(ActorId);
-      }
-      if (Op != 0) {
-        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Op);
-      }
-      if (AMessage.Length != 0) {
-        size += 1 + pb::CodedOutputStream.ComputeBytesSize(AMessage);
-      }
-      return size;
-    }
-
-    public void MergeFrom(pb::CodedInputStream input) {
-      uint tag;
-      while ((tag = input.ReadTag()) != 0) {
-        switch(tag) {
-          default:
-            input.SkipLastField();
-            break;
-          case 8: {
-            Op = input.ReadInt32();
-            break;
-          }
-          case 18: {
-            AMessage = input.ReadBytes();
-            break;
-          }
-          case 720: {
-            RpcId = input.ReadInt32();
-            break;
-          }
-          case 744: {
-            ActorId = input.ReadInt64();
-            break;
-          }
-        }
-      }
-    }
-
-  }
-
-  public partial class FrameMessage : pb::IMessage {
-    private static readonly pb::MessageParser<FrameMessage> _parser = new pb::MessageParser<FrameMessage>(() => new FrameMessage());
-    public static pb::MessageParser<FrameMessage> Parser { get { return _parser; } }
-
-    private int rpcId_;
-    public int RpcId {
-      get { return rpcId_; }
-      set {
-        rpcId_ = value;
-      }
-    }
-
-    private long actorId_;
-    public long ActorId {
-      get { return actorId_; }
-      set {
-        actorId_ = value;
-      }
-    }
-
-    private int frame_;
-    public int Frame {
-      get { return frame_; }
-      set {
-        frame_ = value;
-      }
-    }
-
-    private static readonly pb::FieldCodec<global::ETModel.OneFrameMessage> _repeated_message_codec
-        = pb::FieldCodec.ForMessage(18, global::ETModel.OneFrameMessage.Parser);
-    private pbc::RepeatedField<global::ETModel.OneFrameMessage> message_ = new pbc::RepeatedField<global::ETModel.OneFrameMessage>();
-    public pbc::RepeatedField<global::ETModel.OneFrameMessage> Message {
-      get { return message_; }
-      set { message_ = value; }
-    }
-
-    public void WriteTo(pb::CodedOutputStream output) {
-      if (Frame != 0) {
-        output.WriteRawTag(8);
-        output.WriteInt32(Frame);
-      }
-      message_.WriteTo(output, _repeated_message_codec);
-      if (RpcId != 0) {
-        output.WriteRawTag(208, 5);
-        output.WriteInt32(RpcId);
-      }
-      if (ActorId != 0L) {
-        output.WriteRawTag(232, 5);
-        output.WriteInt64(ActorId);
-      }
-    }
-
-    public int CalculateSize() {
-      int size = 0;
-      if (RpcId != 0) {
-        size += 2 + pb::CodedOutputStream.ComputeInt32Size(RpcId);
-      }
-      if (ActorId != 0L) {
-        size += 2 + pb::CodedOutputStream.ComputeInt64Size(ActorId);
-      }
-      if (Frame != 0) {
-        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Frame);
-      }
-      size += message_.CalculateSize(_repeated_message_codec);
-      return size;
-    }
-
-    public void MergeFrom(pb::CodedInputStream input) {
-      uint tag;
-      while ((tag = input.ReadTag()) != 0) {
-        switch(tag) {
-          default:
-            input.SkipLastField();
-            break;
-          case 8: {
-            Frame = input.ReadInt32();
-            break;
-          }
-          case 18: {
-            message_.AddEntriesFrom(input, _repeated_message_codec);
-            break;
-          }
-          case 720: {
-            RpcId = input.ReadInt32();
-            break;
-          }
-          case 744: {
-            ActorId = input.ReadInt64();
-            break;
-          }
-        }
-      }
-    }
-
-  }
-
-  #endregion
-
-}
-
-#endregion Designer generated code

+ 36 - 0
Unity/Assets/Scripts/Module/Message/OuterMessage.cs

@@ -67,6 +67,9 @@ namespace ETModel {
     }
 
     public void MergeFrom(pb::CodedInputStream input) {
+      info_ = "";
+      rpcId_ = 0;
+      actorId_ = 0;
       uint tag;
       while ((tag = input.ReadTag()) != 0) {
         switch(tag) {
@@ -149,6 +152,9 @@ namespace ETModel {
     }
 
     public void MergeFrom(pb::CodedInputStream input) {
+      request_ = "";
+      rpcId_ = 0;
+      actorId_ = 0;
       uint tag;
       while ((tag = input.ReadTag()) != 0) {
         switch(tag) {
@@ -246,6 +252,10 @@ namespace ETModel {
     }
 
     public void MergeFrom(pb::CodedInputStream input) {
+      response_ = "";
+      rpcId_ = 0;
+      error_ = 0;
+      message_ = "";
       uint tag;
       while ((tag = input.ReadTag()) != 0) {
         switch(tag) {
@@ -332,6 +342,9 @@ namespace ETModel {
     }
 
     public void MergeFrom(pb::CodedInputStream input) {
+      mapIndex_ = 0;
+      rpcId_ = 0;
+      actorId_ = 0;
       uint tag;
       while ((tag = input.ReadTag()) != 0) {
         switch(tag) {
@@ -414,6 +427,9 @@ namespace ETModel {
     }
 
     public void MergeFrom(pb::CodedInputStream input) {
+      rpcId_ = 0;
+      error_ = 0;
+      message_ = "";
       uint tag;
       while ((tag = input.ReadTag()) != 0) {
         switch(tag) {
@@ -466,6 +482,7 @@ namespace ETModel {
     }
 
     public void MergeFrom(pb::CodedInputStream input) {
+      rpcId_ = 0;
       uint tag;
       while ((tag = input.ReadTag()) != 0) {
         switch(tag) {
@@ -570,6 +587,11 @@ namespace ETModel {
     }
 
     public void MergeFrom(pb::CodedInputStream input) {
+      unitId_ = 0;
+      count_ = 0;
+      rpcId_ = 0;
+      error_ = 0;
+      message_ = "";
       uint tag;
       while ((tag = input.ReadTag()) != 0) {
         switch(tag) {
@@ -660,6 +682,9 @@ namespace ETModel {
     }
 
     public void MergeFrom(pb::CodedInputStream input) {
+      unitId_ = 0;
+      x_ = 0;
+      z_ = 0;
       uint tag;
       while ((tag = input.ReadTag()) != 0) {
         switch(tag) {
@@ -737,6 +762,9 @@ namespace ETModel {
     }
 
     public void MergeFrom(pb::CodedInputStream input) {
+      units_.Clear();
+      rpcId_ = 0;
+      actorId_ = 0;
       uint tag;
       while ((tag = input.ReadTag()) != 0) {
         switch(tag) {
@@ -834,6 +862,10 @@ namespace ETModel {
     }
 
     public void MergeFrom(pb::CodedInputStream input) {
+      x_ = 0;
+      z_ = 0;
+      rpcId_ = 0;
+      id_ = 0;
       uint tag;
       while ((tag = input.ReadTag()) != 0) {
         switch(tag) {
@@ -890,6 +922,7 @@ namespace ETModel {
     }
 
     public void MergeFrom(pb::CodedInputStream input) {
+      rpcId_ = 0;
       uint tag;
       while ((tag = input.ReadTag()) != 0) {
         switch(tag) {
@@ -964,6 +997,9 @@ namespace ETModel {
     }
 
     public void MergeFrom(pb::CodedInputStream input) {
+      rpcId_ = 0;
+      error_ = 0;
+      message_ = "";
       uint tag;
       while ((tag = input.ReadTag()) != 0) {
         switch(tag) {

+ 2 - 1
Unity/Assets/ThirdParty/Google.Protobuf/Collections/RepeatedField.cs

@@ -206,7 +206,8 @@ namespace Google.Protobuf.Collections
         /// </summary>
         public void Clear()
         {
-            array = EmptyArray;
+            // ET修改,这里不释放数组,避免gc
+            //array = EmptyArray;
             count = 0;
         }
 

+ 27 - 0
Unity/Hotfix/Module/Message/HotfixMessage.cs

@@ -73,6 +73,9 @@ namespace ETHotfix {
     }
 
     public void MergeFrom(pb::CodedInputStream input) {
+      account_ = "";
+      password_ = "";
+      rpcId_ = 0;
       uint tag;
       while ((tag = input.ReadTag()) != 0) {
         switch(tag) {
@@ -185,6 +188,11 @@ namespace ETHotfix {
     }
 
     public void MergeFrom(pb::CodedInputStream input) {
+      address_ = "";
+      key_ = 0;
+      rpcId_ = 0;
+      error_ = 0;
+      message_ = "";
       uint tag;
       while ((tag = input.ReadTag()) != 0) {
         switch(tag) {
@@ -263,6 +271,8 @@ namespace ETHotfix {
     }
 
     public void MergeFrom(pb::CodedInputStream input) {
+      key_ = 0;
+      rpcId_ = 0;
       uint tag;
       while ((tag = input.ReadTag()) != 0) {
         switch(tag) {
@@ -356,6 +366,10 @@ namespace ETHotfix {
     }
 
     public void MergeFrom(pb::CodedInputStream input) {
+      playerId_ = 0;
+      rpcId_ = 0;
+      error_ = 0;
+      message_ = "";
       uint tag;
       while ((tag = input.ReadTag()) != 0) {
         switch(tag) {
@@ -412,6 +426,7 @@ namespace ETHotfix {
     }
 
     public void MergeFrom(pb::CodedInputStream input) {
+      info_ = "";
       uint tag;
       while ((tag = input.ReadTag()) != 0) {
         switch(tag) {
@@ -486,6 +501,9 @@ namespace ETHotfix {
     }
 
     public void MergeFrom(pb::CodedInputStream input) {
+      info_ = "";
+      rpcId_ = 0;
+      actorId_ = 0;
       uint tag;
       while ((tag = input.ReadTag()) != 0) {
         switch(tag) {
@@ -583,6 +601,10 @@ namespace ETHotfix {
     }
 
     public void MergeFrom(pb::CodedInputStream input) {
+      info_ = "";
+      rpcId_ = 0;
+      error_ = 0;
+      message_ = "";
       uint tag;
       while ((tag = input.ReadTag()) != 0) {
         switch(tag) {
@@ -639,6 +661,7 @@ namespace ETHotfix {
     }
 
     public void MergeFrom(pb::CodedInputStream input) {
+      rpcId_ = 0;
       uint tag;
       while ((tag = input.ReadTag()) != 0) {
         switch(tag) {
@@ -683,6 +706,7 @@ namespace ETHotfix {
     }
 
     public void MergeFrom(pb::CodedInputStream input) {
+      rpcId_ = 0;
       uint tag;
       while ((tag = input.ReadTag()) != 0) {
         switch(tag) {
@@ -772,6 +796,9 @@ namespace ETHotfix {
     }
 
     public void MergeFrom(pb::CodedInputStream input) {
+      rpcId_ = 0;
+      error_ = 0;
+      message_ = "";
       uint tag;
       while ((tag = input.ReadTag()) != 0) {
         switch(tag) {

+ 1 - 0
Unity/protoc.bat

@@ -1,5 +1,6 @@
 @echo off
 protoc.exe --csharp_out="./Assets/Scripts/Module/Message/" --proto_path="../Proto/" OuterMessage.proto
 protoc.exe --csharp_out="./Hotfix/Module/Message/" --proto_path="../Proto/" HotfixMessage.proto
+protoc.exe --csharp_out="./Assets/Scripts/Module/FrameSync" --proto_path="../Proto/" FrameMessage.proto
 echo finish... 
 pause

binární
Unity/protoc.exe