Exemple #1
0
        public void ServerRpcMessageTest()
        {
            // try setting value with constructor
            var message = new ServerRpcMessage
            {
                netId          = 42,
                componentIndex = 4,
                functionHash   = 0xABCDEF,
                payload        = new ArraySegment <byte>(new byte[] { 0x01, 0x02 })
            };

            byte[] arr = MessagePacker.Pack(message);

            // deserialize the same data - do we get the same result?
            ServerRpcMessage fresh = MessagePacker.Unpack <ServerRpcMessage>(arr);

            Assert.That(fresh.netId, Is.EqualTo(message.netId));
            Assert.That(fresh.componentIndex, Is.EqualTo(message.componentIndex));
            Assert.That(fresh.functionHash, Is.EqualTo(message.functionHash));
            Assert.That(fresh.payload, Has.Count.EqualTo(message.payload.Count));
            for (int i = 0; i < fresh.payload.Count; ++i)
            {
                Assert.That(fresh.payload.Array[fresh.payload.Offset + i],
                            Is.EqualTo(message.payload.Array[message.payload.Offset + i]));
            }
        }
Exemple #2
0
        public static void Send(NetworkBehaviour behaviour, int index, NetworkWriter writer, int channelId, bool requireAuthority)
        {
            Validate(behaviour, index, requireAuthority);

            var message = new ServerRpcMessage
            {
                netId          = behaviour.NetId,
                componentIndex = behaviour.ComponentIndex,
                functionIndex  = index,
                payload        = writer.ToArraySegment()
            };

            behaviour.Client.Send(message, channelId);
        }