Пример #1
0
 // applys the data for this field item (type, position, and rotation)
 public void ApplyData(FieldItemData fid)
 {
     // copies data
     itemSet            = (itemType)fid.itemSet;
     transform.position = fid.position;
     transform.rotation = fid.rotation;
 }
Пример #2
0
    // converts remote player data to bytes
    public static FieldItemData BytesToFieldItemData(byte[] data)
    {
        // field item
        FieldItemData fid = new FieldItemData();

        // index of content
        int index = 0;

        // no data sent.
        // TODO: should check for enough data being available.
        if (data == null || data.Length == 0)
        {
            return(fid);
        }

        // Item Set
        {
            fid.itemSet = BitConverter.ToInt32(data, index);
            index      += sizeof(int); // move onto next value
        }

        // Item Position
        {
            // getting position values
            // x value
            fid.position.x = BitConverter.ToSingle(data, index);
            index         += sizeof(float);

            // y value
            fid.position.y = BitConverter.ToSingle(data, index);
            index         += sizeof(float);

            // z value
            fid.position.z = BitConverter.ToSingle(data, index);
            index         += sizeof(float);
        }


        // Item Rotation
        {
            // getting position values
            fid.rotation.x = BitConverter.ToSingle(data, index);
            index         += sizeof(float);

            fid.rotation.y = BitConverter.ToSingle(data, index);
            index         += sizeof(float);

            fid.rotation.z = BitConverter.ToSingle(data, index);
            index         += sizeof(float);

            fid.rotation.w = BitConverter.ToSingle(data, index);
            index         += sizeof(float);
        }

        return(fid);
    }
Пример #3
0
    // converts remote player data to bytes
    public static byte[] FieldItemDataToBytes(FieldItemData fid)
    {
        // Bytes: 32 Total
        // Type - 1 Int (4 Bytes)
        // Position - 3 Floats (12 Bytes)
        // Rotation - 4 Bytes (16 Bytes)

        // size of content
        byte[] sendData = new byte[DATA_SIZE];

        // index of content
        int index = 0;

        // Item Number
        {
            byte[] data = BitConverter.GetBytes(fid.itemSet);
            Buffer.BlockCopy(data, 0, sendData, index, data.Length);
            index += data.Length;
        }


        // Item Position
        {
            byte[] data;

            // x position
            data = BitConverter.GetBytes(fid.position.x);
            Buffer.BlockCopy(data, 0, sendData, index, data.Length);
            index += data.Length;

            // y position
            data = BitConverter.GetBytes(fid.position.y);
            Buffer.BlockCopy(data, 0, sendData, index, data.Length);
            index += data.Length;

            // z position
            data = BitConverter.GetBytes(fid.position.z);
            Buffer.BlockCopy(data, 0, sendData, index, data.Length);
            index += data.Length;
        }

        // Item Rotation
        {
            byte[] data;

            // x rotation
            data = BitConverter.GetBytes(fid.rotation.x);
            Buffer.BlockCopy(data, 0, sendData, index, data.Length);
            index += data.Length;

            // y rotation
            data = BitConverter.GetBytes(fid.rotation.y);
            Buffer.BlockCopy(data, 0, sendData, index, data.Length);
            index += data.Length;

            // z rotation
            data = BitConverter.GetBytes(fid.rotation.z);
            Buffer.BlockCopy(data, 0, sendData, index, data.Length);
            index += data.Length;

            // w value
            data = BitConverter.GetBytes(fid.rotation.w);
            Buffer.BlockCopy(data, 0, sendData, index, data.Length);
            index += data.Length;
        }

        return(sendData);
    }