示例#1
0
 private void DoSteering()
 {
     BaseWheeledVehicle.VehicleWheel[] vehicleWheelArray = this.wheels;
     for (int i = 0; i < (int)vehicleWheelArray.Length; i++)
     {
         BaseWheeledVehicle.VehicleWheel vehicleWheel = vehicleWheelArray[i];
         if (vehicleWheel.steerWheel)
         {
             vehicleWheel.wheelCollider.steerAngle = this.steering;
         }
     }
     base.SetFlag(BaseEntity.Flags.Reserved4, this.steering < -2f, false, true);
     base.SetFlag(BaseEntity.Flags.Reserved5, this.steering > 2f, false, true);
 }
示例#2
0
    private void ApplyForceAtWheels()
    {
        if (this.myRigidBody == null)
        {
            return;
        }
        Vector3 vector3 = this.myRigidBody.velocity;
        float   single  = vector3.magnitude * Vector3.Dot(vector3.normalized, base.transform.forward);
        float   single1 = this.brakePedal;
        float   single2 = this.gasPedal;

        if (single > 0f && single2 < 0f)
        {
            single1 = 100f;
        }
        else if (single < 0f && single2 > 0f)
        {
            single1 = 100f;
        }
        BaseWheeledVehicle.VehicleWheel[] vehicleWheelArray = this.wheels;
        for (int i = 0; i < (int)vehicleWheelArray.Length; i++)
        {
            BaseWheeledVehicle.VehicleWheel vehicleWheel = vehicleWheelArray[i];
            if (vehicleWheel.wheelCollider.isGrounded)
            {
                if (vehicleWheel.powerWheel)
                {
                    vehicleWheel.wheelCollider.motorTorque = single2 * this.motorForceConstant;
                }
                if (vehicleWheel.brakeWheel)
                {
                    vehicleWheel.wheelCollider.brakeTorque = single1 * this.brakeForceConstant;
                }
            }
        }
        base.SetFlag(BaseEntity.Flags.Reserved3, (single1 < 100f ? false : this.IsMounted()), false, true);
    }