示例#1
0
        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));
        }