public void EnterVehicle(Vehicle vehicle, Vehicle.SeatAlignment seatAlignment, bool immediate = false) { if (IsInVehicle) return; CurrentVehicle = vehicle; var timer = new Stopwatch(); timer.Start(); var seat = vehicle.GetSeat(seatAlignment); _controller.enabled = false; if (IsLocalPlayer) { Camera.transform.SetParent(seat.Parent, true); SendToServer(_lastPassengerState = new PlayerPassengerState { Vechicle = vehicle, SeatAlignment = (int) seatAlignment }, DeliveryMethod.ReliableOrdered, 1); } transform.SetParent(seat.Parent); transform.localPosition = Vector3.zero; transform.localRotation = Quaternion.identity; if (IsLocalPlayer && seat.IsDriver) { vehicle.StartControlling(); } PlayerModel.IsInVehicle = true; _currentVehicleSeatAlignment = seat.Alignment; StartCoroutine(EnterVehicleAnimation(seat, immediate)); }