Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }