public void Awake() { Log.Print("JEngine顺便解决了,无法pb序列化List<热更类型>和序列化反序列化热更enum的问题"); var pbtest = new PBTest() { a = new List <HotData>() { new HotData() { v = 1, k = "第一个" }, new HotData() { v = 2, k = "第二个" }, }, label = PBTest.Label.LABEL_OPTIONAL }; Log.Print("需要注意的是,得注册你pb序列化的Type,一次即可,用StringifyHelper.ProtoSerialize会自动注册,但是注册的类型内的List<T>的T需要自己手动注册"); Log.Print("比如这里,PBTest内有个List<HotData>,就需要注册HotData,用JEngine.Core.ProtoTypeRegister.Register<HotData>();即可"); JEngine.Core.ProtoTypeRegister.Register <HotData>(); var bytes = StringifyHelper.ProtoSerialize(pbtest); Log.Print($"序列化后的byte[]长度:{bytes.Length}"); Log.Print("开始反序列化"); var result = StringifyHelper.ProtoDeSerialize <PBTest>(bytes); Log.Print("反序列化成功,现在我们打印一下反序列化后的类型的a字段,也就是List<HotData>字段"); Log.Print(string.Join(",", result.a)); Log.Print("反序列化成功,现在我们打印一下反序列化后的类型的label字段,也就是热更的enum"); Log.Print(result.label); }
public void Awake() { Log.Print("JEngine顺便解决了,无法pb序列化List<热更类型>和序列化反序列化热更enum的问题"); var pbtest = new PBTest() { a = new List <HotData>() { new HotData() { v = 1, k = "第一个" }, new HotData() { v = 2, k = "第二个" }, }, label = PBTest.Label.LABEL_OPTIONAL }; var bytes = StringifyHelper.ProtoSerialize(pbtest); Log.Print($"序列化后的byte[]长度:{bytes.Length}"); Log.Print("开始反序列化"); var result = StringifyHelper.ProtoDeSerialize <PBTest>(bytes); Log.Print("反序列化成功,现在我们打印一下反序列化后的类型的a字段,也就是List<HotData>字段"); Log.Print(string.Join(",", result.a)); Log.Print("反序列化成功,现在我们打印一下反序列化后的类型的label字段,也就是热更的enum"); Log.Print(result.label); }