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()); } }
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()); } }
// 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); } }
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()); } }
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++; }
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()); } }
/** * 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); } }
//パケットは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()); } }