Exemplo n.º 1
0
    public static object Deserialize(byte[] bytes)
    {
        MyCustomSerialization data = new MyCustomSerialization();

        //MyNumber.
        byte[] myNumberBytes = new byte[4];
        Array.Copy(bytes, 0, myNumberBytes, 0, myNumberBytes.Length);
        if (BitConverter.IsLittleEndian)
        {
            Array.Reverse(myNumberBytes);
        }
        data.MyNumber = BitConverter.ToInt32(myNumberBytes, 0);

        //MyString.
        byte[] myStringBytes = new byte[bytes.Length - 4];
        if (myStringBytes.Length > 0)
        {
            Array.Copy(bytes, 4, myStringBytes, 0, myStringBytes.Length);
            if (BitConverter.IsLittleEndian)
            {
                Array.Reverse(myStringBytes);
            }
            data.MyString = Encoding.UTF8.GetString(myStringBytes);
        }
        else
        {
            data.MyString = string.Empty;
        }

        return(data);
    }
Exemplo n.º 2
0
 /// <summary>
 /// Sends an instance of MyCustomSerialization.
 /// </summary>
 /// <param name="data"></param>
 /// <param name="typed"></param>
 private void SendCustomSerialization(MyCustomSerialization data, bool typed)
 {
     if (!typed)
     {
         base.photonView.RPC("RPC_ReceiveMyCustomSerialization", RpcTarget.AllViaServer, MyCustomSerialization.Serialize(_customSerialization));
     }
     else
     {
         base.photonView.RPC("RPC_TypedReceiveMyCustomSerialization", RpcTarget.AllViaServer, _customSerialization);
     }
 }
Exemplo n.º 3
0
    public static byte[] Serialize(object obj)
    {
        MyCustomSerialization data = (MyCustomSerialization)obj;

        byte[] myNumberBytes = BitConverter.GetBytes(data.MyNumber);
        if (BitConverter.IsLittleEndian)
        {
            Array.Reverse(myNumberBytes);
        }
        byte[] myStringBytes = Encoding.ASCII.GetBytes(data.MyString);
        if (BitConverter.IsLittleEndian)
        {
            Array.Reverse(myStringBytes);
        }
        return(JoinBytes(myNumberBytes, myStringBytes));
    }
Exemplo n.º 4
0
 private void RPC_TypedReceiveMyCustomSerialization(MyCustomSerialization datas)
 {
     print("Received typed: " + datas.MyNumber + ", " + datas.MyString);
 }
Exemplo n.º 5
0
    private void RPC_ReceiveMyCustomSerialization(byte[] datas)
    {
        MyCustomSerialization result = (MyCustomSerialization)MyCustomSerialization.Deserialize(datas);

        print("Received byte array: " + result.MyNumber + ", " + result.MyString);
    }