コード例 #1
0
        public void TestDynamicCast()
        {
            SyncMessage msg = GenerateSyncMessage();

            byte[] data = DirectProtoBufTools.Serialize(msg);
            Assert.IsTrue(data.Length > 0);
            var         baseR = DirectProtoBufTools.Deserialize <GameMessage>(data);
            SyncMessage r     = (SyncMessage)baseR;

            Assert.IsTrue(r.stateCode == msg.stateCode);
            Assert.IsTrue(r.players.Count == 1);
            Assert.IsTrue(r.players[0].id == "cg");
            Assert.IsTrue(r.bullets.Count == 2);
            Assert.IsTrue(r.bullets[1].id == 12);
        }
コード例 #2
0
        public void TestSerializeAndDeserialize()
        {
            GamePlayer p = new GamePlayer();

            p.r  = 400f;
            p.dx = 0.001f;

            byte[] data = DirectProtoBufTools.Serialize(p);
            Assert.IsTrue(data.Length > 0);

            var sp = DirectProtoBufTools.Deserialize <GamePlayer>(data);

            Assert.IsTrue(sp.r == p.r);
            Assert.IsTrue(sp.dx == p.dx);
        }
コード例 #3
0
        public void TestProtobufList()
        {
            SyncMessage msg     = GenerateSyncMessage();
            GameMessage baseMsg = msg;

            byte[] data = DirectProtoBufTools.Serialize(baseMsg);
            Assert.IsTrue(data.Length > 0);

            var r = DirectProtoBufTools.Deserialize <SyncMessage>(data);

            Assert.IsTrue(r.stateCode == msg.stateCode);
            Assert.IsTrue(r.players.Count == 1);
            Assert.IsTrue(r.players[0].id == "cg");
            Assert.IsTrue(r.bullets.Count == 2);
            Assert.IsTrue(r.bullets[1].id == 12);
        }
コード例 #4
0
        public void Send(GameMessage msg)
        {
            if (msg == null)
            {
                return;
            }

            var data = DirectProtoBufTools.Serialize(msg);

            if (data.Length == 0)
            {
                return;
            }

            writer.Write(data.Length);
            writer.Write(data);
        }