public void _Deserialize(ThirdPersonPeriodicUpdate pkt, MemoryStream m) { pkt.thisEntity = Data_serializers_const.ser_M_liteEntitySerializer.Deserialize(m); pkt.m_Move = Data_serializers_const.ser_M_liteVector3Serializer.Deserialize(m); pkt.position = Data_serializers_const.ser_ChunkedVectorSerializer.Deserialize(m); pkt.crouch = Data_serializers_const.ser_M_liteBoolSerializer.Deserialize(m); pkt.m_Jump = Data_serializers_const.ser_M_liteBoolSerializer.Deserialize(m); }
public static void SendThirdPersonPeriodicUpdate(ThirdPersonPeriodicUpdate pkt, [Optional()][DefaultParameterValue(-1)] int connectionId) { MemoryStream m = new MemoryStream(); m.WriteByte(11); LiteNetworking.Networking.localPacketPlayer = LiteNetworking.LobbyConnector.ConvertConnectionToPlayer(connectionId); ConstRefs.mirror_ThirdPersonPeriodicUpdate._Serialize(pkt, m); Networking.TransmitPacket(m, connectionId); }
public void _Serialize(ThirdPersonPeriodicUpdate pkt, MemoryStream m) { byte[] thisEntity = Data_serializers_const.ser_M_liteEntitySerializer.Serialize(pkt.thisEntity); m.Write(thisEntity, 0, thisEntity.Length); byte[] m_Move = Data_serializers_const.ser_M_liteVector3Serializer.Serialize(pkt.m_Move); m.Write(m_Move, 0, m_Move.Length); byte[] position = Data_serializers_const.ser_ChunkedVectorSerializer.Serialize(pkt.position); m.Write(position, 0, position.Length); byte[] crouch = Data_serializers_const.ser_M_liteBoolSerializer.Serialize(pkt.crouch); m.Write(crouch, 0, crouch.Length); byte[] m_Jump = Data_serializers_const.ser_M_liteBoolSerializer.Serialize(pkt.m_Jump); m.Write(m_Jump, 0, m_Jump.Length); }
// Fixed update is called in sync with physics private void FixedUpdate() { if (Networking.HasLocalAuthority(gameObject)) { // read inputs float h = CrossPlatformInputManager.GetAxis("Horizontal"); float v = CrossPlatformInputManager.GetAxis("Vertical"); bool crouch = Input.GetKey(KeyCode.C); // calculate move direction to pass to character if (m_Cam != null) { // calculate camera relative direction to move: m_CamForward = Vector3.Scale(m_Cam.forward, new Vector3(1, 0, 1)).normalized; m_Move = v * m_CamForward + h * m_Cam.right; } else { // we use world-relative directions in the case of no main camera m_Move = v * Vector3.forward + h * Vector3.right; } #if !MOBILE_INPUT // walk speed multiplier if (Input.GetKey(KeyCode.LeftShift)) { m_Move *= 0.5f; } #endif // pass all parameters to the character control script m_Character.Move(m_Move, crouch, m_Jump); ThirdPersonPeriodicUpdate update = new ThirdPersonPeriodicUpdate(); update.m_Jump = m_Jump; update.m_Move = m_Move; update.thisEntity = GetComponent <NetworkedEntity>(); update.position = transform.position; update.crouch = crouch; LiteNetworkingGenerated.PacketSender.SendThirdPersonPeriodicUpdate(update); m_Jump = false; } }