Porotobuf- net Ошибка DeSerialize в Unity2019.3 - PullRequest
0 голосов
/ 28 мая 2020

используйте protobuf- net r668 \ Full \ unity \ protobuf- net .dll

Тот же код может нормально работать в Unity2018.4.12.

Однако из-за некоторых по причинам, мне нужно перейти на версию выше 2019.2.

Когда я использую Unity2019.3.11f1, десериализация неверна.

Я видел вопрос, в котором говорится, что r669 может устранить ошибку, но я могу не нашел.

Отчет об ошибке следующий:

DeSerialize<PBConfigList`1[UnitLevel]> Field: ProtoBuf.ProtoException: Sub-message not read correctly
  at ProtoBuf.ProtoReader.EndSubItem (ProtoBuf.SubItemToken token, ProtoBuf.ProtoReader reader) [0x0009d] in <46c30dcdddb14f47b90a4218bec05eb9>:0 
  at ProtoBuf.ProtoReader.ReadTypedObject (System.Object value, System.Int32 key, ProtoBuf.ProtoReader reader, System.Type type) [0x00056] in <46c30dcdddb14f47b90a4218bec05eb9>:0 
  at ProtoBuf.ProtoReader.ReadObject (System.Object value, System.Int32 key, ProtoBuf.ProtoReader reader) [0x00000] in <46c30dcdddb14f47b90a4218bec05eb9>:0 
  at (wrapper dynamic-method) PBConfigList`1[UnitLevel].proto_2(object,ProtoBuf.ProtoReader)
  at ProtoBuf.Serializers.CompiledSerializer.ProtoBuf.Serializers.IProtoSerializer.Read (System.Object value, ProtoBuf.ProtoReader source) [0x00000] in <46c30dcdddb14f47b90a4218bec05eb9>:0 
  at ProtoBuf.Meta.RuntimeTypeModel.Deserialize (System.Int32 key, System.Object value, ProtoBuf.ProtoReader source) [0x00045] in <46c30dcdddb14f47b90a4218bec05eb9>:0 
  at ProtoBuf.Meta.TypeModel.DeserializeCore (ProtoBuf.ProtoReader reader, System.Type type, System.Object value, System.Boolean noAutoCreate) [0x00015] in <46c30dcdddb14f47b90a4218bec05eb9>:0 
  at ProtoBuf.Meta.TypeModel.Deserialize (System.IO.Stream source, System.Object value, System.Type type, ProtoBuf.SerializationContext context) [0x00021] in <46c30dcdddb14f47b90a4218bec05eb9>:0 
  at ProtoBuf.Meta.TypeModel.Deserialize (System.IO.Stream source, System.Object value, System.Type type) [0x00000] in <46c30dcdddb14f47b90a4218bec05eb9>:0 
  at ProtoBuf.Serializer.Deserialize[T] (System.IO.Stream source) [0x00005] in <46c30dcdddb14f47b90a4218bec05eb9>:0 
  at ProtoBufUtil.DeSerialize[T] (System.Byte[] msg) [0x0001e] in /Users/janedodge/Documents/ProtobufTest/Assets/ProtoBufUtil.cs:38 
UnityEngine.Debug:Log(Object)

Кто-нибудь может мне помочь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...