public static void PlayerMovement(Vector3 headPosition, Quaternion headRotation, HandDataPacket LeftHandData, HandDataPacket rightHandData) { using (Packet _packet = new Packet((int)ClientPackets.PlayerMovement)) { _packet.Write(Client.instance.ID); //Head _packet.Write(headPosition); _packet.Write(headRotation); //Left hand _packet.Write(LeftHandData.HandPosition); _packet.Write(LeftHandData.HandRotation); _packet.Write(LeftHandData.Trigger); _packet.Write(LeftHandData.Grip); _packet.Write(LeftHandData.Velocity); _packet.Write((int)LeftHandData.HandState); _packet.Write((int)LeftHandData.TargetHandState); _packet.Write(LeftHandData.StatePower); //Right hand _packet.Write(rightHandData.HandPosition); _packet.Write(rightHandData.HandRotation); _packet.Write(rightHandData.Trigger); _packet.Write(rightHandData.Grip); _packet.Write(rightHandData.Velocity); _packet.Write((int)rightHandData.HandState); _packet.Write((int)rightHandData.TargetHandState); _packet.Write(rightHandData.StatePower); //Send SendUDPData(_packet); //Debug.Log("Player movement sent"); } }
public void EmulateHand(EmulatedHand hand, HandDataPacket data) { hand.transform.position = data.HandPosition; hand.transform.rotation = data.HandRotation; hand.Trigger = data.Trigger; hand.Grip = data.Grip; hand.HandState = data.HandState; hand.StatePower = data.StatePower; hand.Animate(); }
public void SetHand(HandDataPacket packet, bool left = false) { if (left) { vrPlayer.LeftHand.HandDataPacket = packet; } else { vrPlayer.RightHand.HandDataPacket = packet; } }
public static void PlayerMovement(Packet _packet) { //Console.WriteLine("Player movement received!"); long packetTick = _packet.ReadLong(); int id = _packet.ReadInt(); if (Server.clients.ContainsKey(id)) { if (Server.clients[id].player.LastUpdateTick < packetTick) { Server.clients[id].player.LastUpdateTick = packetTick; //Head Vector3 pos = _packet.ReadVector3(); Quaternion rot = _packet.ReadQuaternion(); //Left hand HandDataPacket leftHand = new HandDataPacket() { HandPosition = _packet.ReadVector3(), HandRotation = _packet.ReadQuaternion(), Trigger = _packet.ReadFloat(), Grip = _packet.ReadFloat(), Velocity = _packet.ReadVector3(), HandState = (HandState)_packet.ReadInt(), TargetHandState = (HandState)_packet.ReadInt(), StatePower = _packet.ReadFloat(), }; //Right hand HandDataPacket rightHand = new HandDataPacket() { HandPosition = _packet.ReadVector3(), HandRotation = _packet.ReadQuaternion(), Trigger = _packet.ReadFloat(), Grip = _packet.ReadFloat(), Velocity = _packet.ReadVector3(), HandState = (HandState)_packet.ReadInt(), TargetHandState = (HandState)_packet.ReadInt(), StatePower = _packet.ReadFloat(), }; Server.clients[id].player.SetHead(pos, rot); Server.clients[id].player.SetHand(leftHand, true); Server.clients[id].player.SetHand(rightHand); } } }
HandDataPacket GetHandData(HandPresence handPresence, SpellController spellController) { HandDataPacket data = new HandDataPacket() { HandPosition = handPresence.transform.position, HandRotation = handPresence.transform.rotation, Trigger = handPresence.TriggerValue, Grip = handPresence.GripValue, Velocity = handPresence.Velocity, HandState = spellController.HandState, TargetHandState = spellController.TargetHandState, StatePower = spellController.StatePower }; return(data); }
//public static void UdpReceiveMessageTest (Packet _packet) { // long packetTick = _packet.ReadLong(); // string msg = _packet.ReadString(); // ClientPacketSender.UdpTestReceived(); // Debug.Log(msg); //} public static void PlayerPosition(Packet _packet) { long packetTick = _packet.ReadLong(); int id = _packet.ReadInt(); if (GameManager.instance.EmulatedPlayers.ContainsKey(id)) { if (GameManager.instance.EmulatedPlayers [id].LastPlayerUpdateTick < packetTick) { GameManager.instance.EmulatedPlayers [id].LastPlayerUpdateTick = packetTick; //Head Vector3 pos = _packet.ReadVector3(); Quaternion rot = _packet.ReadQuaternion(); //Left hand HandDataPacket leftHand = new HandDataPacket() { HandPosition = _packet.ReadVector3(), HandRotation = _packet.ReadQuaternion(), Trigger = _packet.ReadFloat(), Grip = _packet.ReadFloat(), HandState = (HandState)_packet.ReadInt(), StatePower = _packet.ReadFloat(), }; //Right hand HandDataPacket rightHand = new HandDataPacket() { HandPosition = _packet.ReadVector3(), HandRotation = _packet.ReadQuaternion(), Trigger = _packet.ReadFloat(), Grip = _packet.ReadFloat(), HandState = (HandState)_packet.ReadInt(), StatePower = _packet.ReadFloat(), }; GameManager.instance.EmulatedPlayers [id].Tick(pos, rot, leftHand, rightHand); } } }
public void Tick(Vector3 headPosition, Quaternion headRotation, HandDataPacket leftHandData, HandDataPacket rightHandData) { emulatedPlayer.EmulateHead(headPosition, headRotation); emulatedPlayer.EmulateHand(emulatedPlayer.LeftHand, leftHandData); emulatedPlayer.EmulateHand(emulatedPlayer.RightHand, rightHandData); }