public void UpdateWheels(CarInputManager input, WheelData wheelData) { foreach (BaseWheel wheel in _wheelColliders) { wheel.UpdateWheels(input, wheelData); } }
void HandleMotorTorque(CarInputManager inputManager, WheelData wheelData) { if (!isThrottleWheel) { return; } _wheelCollider.motorTorque = inputManager.Throttle * wheelData.motorToruqe; }
void HandleSteering(CarInputManager inputManager, WheelData wheelData) { if (!isSteeringWheel) { return; } float curSteerAngle = inputManager.Steer * wheelData.steerAngle; _wheelCollider.steerAngle = Mathf.Lerp(_wheelCollider.steerAngle, curSteerAngle, Time.deltaTime * steerLerpSpeed); }
// Update is called once per frame public void UpdateWheels(CarInputManager inputManager, WheelData wheelData) { if (!_wheelCollider) { return; } HandleWheelTransform(); HandleSteering(inputManager, wheelData); HandleMotorTorque(inputManager, wheelData); HandleBrakeTorque(inputManager, wheelData); }
void HandleBrakeTorque(CarInputManager inputManager, WheelData wheelData) { _wheelCollider.brakeTorque = inputManager.Brake * wheelData.brakeTorque; }