private void Start()
        {
            if (!localPlayerAuthority)
            {
                enabled = false;
                return;
            }

            rb = GetComponent <Rigidbody>();
            v  = GetComponent <VehicleBehaviour>();

            if (!rb)
            {
                rb = gameObject.AddComponent <Rigidbody>();
            }

            originalSpeed        = MaxSpeed;
            originalFuelBurnRate = fuelBurnRate;
        }
        private void EnterVehicleWithTimer(VehicleBehaviour vehicleBrain)
        {
            if (Input.GetKey(KeyCode.F))
            {
                enterTimer += Time.fixedDeltaTime; //INCREMENT TIME WHILE THE 'F' KEY IS HELD
            }
            else
            {
                enterTimer = 0; //RESET TIMER
            }

            if (enterTimer >= TimeToEnterVehicle)
            {
                var vActive         = vehicleBrain.vehicleActive;
                var vehicleIdentity = vehicleBrain.GetComponent <NetworkIdentity>();

                if (!isHolding && !vehicleBrain.isDestroyed)     //DO NOT ENTER VEHICLE WHILE HOLDING AN ITEM, OR IF THE VEHICLE IS DESTROYED
                {
                    if (!vActive && playerBrain.vehicle == null) //CHECK IF THE VEHICLE IS ALREADY IN USE
                    {
                        //GET IN THE VEHICLE
                        playerBrain.CmdSetDriving(true);
                        playerBrain.SetVehicle(vehicleBrain);
                        CmdSetVehicleActive(true, vehicleIdentity);
                        CmdSetPlayerInSeat(true, vehicleIdentity);
                        CmdSetVehicleColor(playerBrain.vehicleColor, vehicleIdentity);
                        CmdAssignVehicleAuthority(vehicleIdentity);

                        vehicleBrain.seatedPlayer = playerBrain;
                        var player_netIdentity = playerBrain.GetComponent <NetworkIdentity>();
                        vehicleBrain.owner = player_netIdentity;

                        exitTimer  = 0.0f;
                        enterTimer = 0.0f;
                    }
                }
            }
        }
示例#3
0
 public void SetVehicle(VehicleBehaviour vehicleBehaviour)
 {
     vehicle = vehicleBehaviour;
 }
        private void FixedUpdate()
        {
            if (!localPlayerAuthority)
            {
                enabled = false;
                return;
            }

            if (vehicle == null)
            {
                isDriving = false;
            }
            else
            {
                isDriving = true;
            }

            var model1 = transform.Find("Model-Head");
            var model2 = transform.Find("Model-Body");
            var rb     = GetComponent <Rigidbody>();

            if (isDriving)
            {
                vehicle.enabled        = true;
                playerMovement.enabled = false;
                interaction.enabled    = false;

                var ammoBox = p.ammo;
                vehicle._v.ammunition = ammoBox;


                //DISABLE THE PLAYER COLLIDER(S) IF DRIVING
                model1.gameObject.SetActive(false);
                model2.gameObject.SetActive(false);

                transform.position = vehicle.seat.position;
                transform.rotation = vehicle.seat.rotation;

                rb.isKinematic = true;

                //NEEDS WORK
                if (Input.GetKeyDown(KeyCode.F))
                {
                    //GET OUT OF VEHICLE
                    vehicle._v.ammunition = null;
                    vehicle.SetVehicleActive(false);
                    vehicle   = null;
                    isDriving = false;
                }
            }
            else
            {
                vehicle = null;
                playerMovement.enabled = true;
                interaction.enabled    = true;

                //ENABLE THE PLAYER COLLIDER(S) IF NOT DRIVING
                model1.gameObject.SetActive(true);
                model2.gameObject.SetActive(true);

                rb.isKinematic = false;
            }
        }