void OnLocalAvatarPacketRecorded(object sender, OvrAvatar.PacketEventArgs args)
    {
        using (MemoryStream outputStream = new MemoryStream())
        {
            BinaryWriter writer = new BinaryWriter(outputStream);

            if (LocalAvatar.UseSDKPackets)
            {
                var    size = CAPI.ovrAvatarPacket_GetSize(args.Packet.ovrNativePacket);
                byte[] data = new byte[size];
                CAPI.ovrAvatarPacket_Write(args.Packet.ovrNativePacket, size, data);

                writer.Write(PacketSequence++);
                writer.Write(size);
                writer.Write(data);
            }
            else
            {
                writer.Write(PacketSequence++);
                args.Packet.Write(outputStream);
            }

            SendPacketData(outputStream.ToArray());
        }
    }
Beispiel #2
0
    public void OnLocalAvatarPacketRecorded(object sender, OvrAvatar.PacketEventArgs args)
    {
        if (!PhotonNetwork.InRoom || (PhotonNetwork.CurrentRoom.PlayerCount < 2))
        {
            return;
        }

        if (OvrAvatarSDKManager.Instance == null && !Oculus.Platform.Core.IsInitialized())
        {
            return;
        }

        using (MemoryStream outputStream = new MemoryStream())
        {
            BinaryWriter writer = new BinaryWriter(outputStream);

            var    size = Oculus.Avatar.CAPI.ovrAvatarPacket_GetSize(args.Packet.ovrNativePacket);
            byte[] data = new byte[size];
            Oculus.Avatar.CAPI.ovrAvatarPacket_Write(args.Packet.ovrNativePacket, size, data);

            writer.Write(localSequence++);
            writer.Write(size);
            writer.Write(data);

            packetData.Add(outputStream.ToArray());
        }
    }
Beispiel #3
0
    // Handle object updates
    //
    public void OnLocalAvatarPacketRecorded(object sender, OvrAvatar.PacketEventArgs args)
    {
        if (!userInRoom)
        {
            return;
        }

        using (var binaryWriter = new BinaryWriter(new MemoryStream(64)))
        {
            // Create the packet header
            binaryWriter.Write((byte)PacketType.AVATAR_UPDATE);
            binaryWriter.Write(localUser.ID);

            binaryWriter.Write(localAvatar.transform.position);
            binaryWriter.Write(localAvatar.transform.rotation);

            // Append the actual avatar data
            binaryWriter.Write(avatarSequence++);

            var    size = Oculus.Avatar.CAPI.ovrAvatarPacket_GetSize(args.Packet.ovrNativePacket);
            byte[] data = new byte[size];
            Oculus.Avatar.CAPI.ovrAvatarPacket_Write(args.Packet.ovrNativePacket, size, data);
            binaryWriter.Write(size);
            binaryWriter.Write(data);

            // Send that sucker
            SendPacketToConnectedUsers(((MemoryStream)binaryWriter.BaseStream).ToArray(), SendPolicy.Unreliable);
        }
    }
Beispiel #4
0
    void OnLocalAvatarPacketRecorded(object sender, OvrAvatar.PacketEventArgs args)
    {
        if (playback)
        {
            LinkedListNode <Packet> packet = _recordedQueue.First;
            if (packet == null)
            {
                ReadFile();
                packet = _recordedQueue.First;
            }
            SendPacketData(packet.Value.PacketData);
            _recordedQueue.RemoveFirst();
        }

        else
        {
            using (MemoryStream outputStream = new MemoryStream())
            {
                BinaryWriter writer = new BinaryWriter(outputStream);

                var    size = CAPI.ovrAvatarPacket_GetSize(args.Packet.ovrNativePacket);
                byte[] data = new byte[size];
                CAPI.ovrAvatarPacket_Write(args.Packet.ovrNativePacket, size, data);

                writer.Write(PacketSequence++);
                writer.Write(size);
                writer.Write(data);

                SendPacketData(outputStream.ToArray());
            }
        }
    }
    void OnLocalAvatarPacketRecorded(object sender, OvrAvatar.PacketEventArgs args)
    {
        var size = CAPI.ovrAvatarPacket_GetSize(args.Packet.ovrNativePacket);

        byte[] data = new byte[size];
        CAPI.ovrAvatarPacket_Write(args.Packet.ovrNativePacket, size, data);
        SendPacketData(data);
    }
 void OnLocalAvatarPacketRecorded(object sender, OvrAvatar.PacketEventArgs args)
 {
     using (MemoryStream outputStream = new MemoryStream())
     {
         BinaryWriter writer = new BinaryWriter(outputStream);
         writer.Write(packetSequence++);
         args.Packet.Write(outputStream);
         SendPacketData(outputStream.ToArray());
     }
 }
Beispiel #7
0
    public void OnLocalAvatarPacketRecorded(object sender, OvrAvatar.PacketEventArgs args)
    {
        var size = Oculus.Avatar.CAPI.ovrAvatarPacket_GetSize(args.Packet.ovrNativePacket);

        byte[] toSend = new byte[size];

        Oculus.Avatar.CAPI.ovrAvatarPacket_Write(args.Packet.ovrNativePacket, size, toSend);

        foreach (KeyValuePair <ulong, RemotePlayer> kvp in remoteUsers)
        {
            LogOutputLine("Sending Packet to  " + kvp.Key);
            p2pManager.SendAvatarUpdate(kvp.Key, this.transform, packetSequence, toSend);
        }

        packetSequence++;
    }
Beispiel #8
0
    public void OnLocalAvatarPacketRecorded(object sender, OvrAvatar.PacketEventArgs args)
    {
        using (MemoryStream outputStream = new MemoryStream())
        {
            BinaryWriter writer = new BinaryWriter(outputStream);

            var    size = Oculus.Avatar.CAPI.ovrAvatarPacket_GetSize(args.Packet.ovrNativePacket);
            byte[] data = new byte[size];
            Oculus.Avatar.CAPI.ovrAvatarPacket_Write(args.Packet.ovrNativePacket, size, data);

            writer.Write(localSequence++);
            writer.Write(size);
            writer.Write(data);
            //Debug.Log(writer);
            packetData.Add(outputStream.ToArray());
        }
    }
Beispiel #9
0
    /**
     * Callback to process recorded avatar movements
     */
    public void OnLocalAvatarPacketRecorded(object sender, OvrAvatar.PacketEventArgs args)
    {
        using (MemoryStream outputStream = new MemoryStream()) {
            BinaryWriter writer = new BinaryWriter(outputStream);

            // Bring the recorded data in a sendable binary format
            var    size = Oculus.Avatar.CAPI.ovrAvatarPacket_GetSize(args.Packet.ovrNativePacket);
            byte[] data = new byte[size];
            Oculus.Avatar.CAPI.ovrAvatarPacket_Write(args.Packet.ovrNativePacket, size, data);

            // Use BinaryWriter to generate byte sequence
            writer.Write(_localSequence++);                        // local sequence number
            writer.Write(size);                                    // size of the following data in bytes
            writer.Write(data);                                    // the recorded avatar data

            _packetData.Add(outputStream.ToArray());               // add the package to the queue
        }
    }
    /* public override void OnJoinedLobby()
     * {
     *   Debug.Log("On joined lobby");
     *   PhotonNetwork.CreateRoom("Test Room", new RoomOptions() { MaxPlayers = MaxPlayersPerRoom }, null);
     *   Debug.Log(PhotonNetwork.countOfRooms);
     *
     * }
     */
    void OnLocalAvatarPacketRecorded(object sender, OvrAvatar.PacketEventArgs args)
    {
        using (MemoryStream outputStream = new MemoryStream())
        {
            BinaryWriter writer = new BinaryWriter(outputStream);

            var    size = CAPI.ovrAvatarPacket_GetSize(args.Packet.ovrNativePacket);
            byte[] data = new byte[size];
            CAPI.ovrAvatarPacket_Write(args.Packet.ovrNativePacket, size, data);

            writer.Write(PacketSequence++);
            writer.Write(size);
            writer.Write(data);

            //SendPacketData(outputStream.ToArray());

            PhotonView photonView = PhotonView.Get(this);
            //Debug.Log(photonView);
            System.Object[] arr = { outputStream.ToArray() };
            photonView.RPC("ReceivePacketData", PhotonTargets.Others, arr);
        }
    }
Beispiel #11
0
    //パケットはPUNがサポートするバイト配列にシリアル化されます
    public void OnLocalAvatarPacketRecorded(object sender, OvrAvatar.PacketEventArgs args)
    {
        if (!PhotonNetwork.inRoom || (PhotonNetwork.room.PlayerCount < 2))
        {
            //Debug.Log("最初のプレイヤーはこの条件式に当てはまる");
            return;
        }
        //Debug.Log("二人目のプレイヤーはここがよく呼ばれるのか!?");

        using (MemoryStream outputStream = new MemoryStream())
        {
            BinaryWriter writer = new BinaryWriter(outputStream);

            var    size = Oculus.Avatar.CAPI.ovrAvatarPacket_GetSize(args.Packet.ovrNativePacket);
            byte[] data = new byte[size];
            Oculus.Avatar.CAPI.ovrAvatarPacket_Write(args.Packet.ovrNativePacket, size, data);

            writer.Write(localSequence++);
            writer.Write(size);
            writer.Write(data);

            packetData.Add(outputStream.ToArray());
        }
    }