I have a simple script that only accelerates and calls the Move with a positive accel
.
public void Move(float steering, float accel, float footbrake, float handbrake)
{
for (int i = 0; i < 4; i++)
{
Quaternion quat;
Vector3 position;
m_WheelColliders*.GetWorldPose(out position, out quat);*
m_WheelMeshes*.transform.position = position;
m_WheelMeshes.transform.rotation = quat;
_}*_
//clamp input values
steering = Mathf.Clamp(steering, -1, 1);
AccelInput = accel = Mathf.Clamp(accel, -1, 1);
BrakeInput = footbrake = -1 * Mathf.Clamp(footbrake, -1, 0);
handbrake = Mathf.Clamp(handbrake, 0, 1);
//Set the steer on the front wheels.
//Assuming that wheels 0 and 1 are the front wheels.
m_SteerAngle = steering * m_MaximumSteerAngle;
m_WheelColliders[0].steerAngle = m_SteerAngle;
m_WheelColliders[1].steerAngle = m_SteerAngle;
//SteerHelper();
ApplyDrive(accel, footbrake);
//CapSpeed();
//Set the handbrake.
//Assuming that wheels 2 and 3 are the rear wheels.
// if (handbrake > 0f)
// {
// var hbTorque = m_MaxHandbrakeTorque;
// m_WheelColliders[0].brakeTorque = hbTorque;
// m_WheelColliders[1].brakeTorque = hbTorque;
// m_WheelColliders[2].brakeTorque = hbTorque;
// m_WheelColliders[3].brakeTorque = hbTorque;
//
// braketorque = true;
// }
// else if (braketorque)
// {
// m_WheelColliders[0].brakeTorque = 0f;
// m_WheelColliders[1].brakeTorque = 0f;
// m_WheelColliders[2].brakeTorque = 0f;
// m_WheelColliders[3].brakeTorque = 0f;
// braketorque = false;
// }
// CalculateRevs();
// GearChanging();
// AddDownForce();
// TractionControl();
// Drift();
}
The problem is: sometimes when my AI car hits something it drives backwards, but the accel
is still positive.
I can’t figure out what’s wrong.
Going forwards
![going forward][1]
I’ve disabled everything that’s on my car except acceleration.
going backwards
![backwards2][2]
![backwards1][3]
Help is much appreciated.
Thanks in advance
*[1]: https://i.imgur.com/oMhJxfI.png*_
[2]: https://i.imgur.com/NLV9Hj5.png*_
_[3]: https://i.imgur.com/PvC6N0Z.png*_