コード例 #1
0
 public void AttachWheel(WheelController wheel)
 {
     if (!wheel)
     {
         return;
     }
     wheel.transform.parent = transform;
     wheels.Add(wheel);
 }
コード例 #2
0
        public void DetachWheel(int index)
        {
            if (index < 0 || index >= wheels.Count)
            {
                return;
            }
            WheelController wheel = wheels[index];

            if (!wheel)
            {
                return;
            }
            wheel.transform.parent = null;
            wheels.RemoveAt(index);
        }
コード例 #3
0
        private void ExecutionHandler()
        {
            metersPerSecond = transform.InverseTransformDirection(rigidbody.velocity).z;
            InputHandler();
            GearboxHandler();
            rpm = minimumRpm;
            for (int a = 0, A = wheels.Count; a < A; a++)
            {
                WheelController wheel = wheels[a];
                if (!wheel)
                {
                    continue;
                }
                if (wheel.motor)
                {
                    rpm = rpm + Mathf.Abs(wheel.wheelCollider.rpm);
                }
                wheel.Handle(gear == -2 ? -motorTorque * fuelPedal * gearRatio[0] : (gear >= 1 ? motorTorque * fuelPedal * gearRatio[gear] : 0F), brakeTorque * brakePedal + handbrakeTorque * handbrakeStick, steerAngle * steeringWheel);
            }
            rpm = rpm + Random.Range(-10F, 10F);
            if (rpm > maximumRpm)
            {
                rpm = maximumRpm + Random.Range(-100F, 100F);
            }
            if (centerOfMass)
            {
                rigidbody.centerOfMass = transform.InverseTransformPoint(centerOfMass.position);
            }
            rigidbody.AddForce(downforce * Vector3.down);
            speed = Library.Convert(metersPerSecond, speedUnit);
            if (engine)
            {
                if (!engine.isPlaying)
                {
                    engine.Play();
                }
                engine.pitch = 1F + rpm / maximumRpm;
            }

            TEMPORARY();
        }