private void ApplyForces()
        {
            locAngVeloY = Localize(Body.angularVelocity).y;

            int n = 0, i = 0;

            for (; i < sensors.Length; i++)
            {
                Transform s   = sensors[i];
                Vector3   pos = s.position;
                Vector3   fwd = s.forward;
                if (Physics.Raycast(pos, fwd, out RaycastHit hit, rayLength, mask))
                {
                    float zTilt = locAngVeloY * Mathf.Sign(s.localPosition.x);
                    float error = Mathf.Max(0, distance - hit.distance - zTilt * tilt);
                    Body.AddForceAtPosition(fwd * -error, pos, ForceMode.VelocityChange);
                    n++;
                }
            }

            Body.AddRelativeForce(Vector3.forward * Throttle * crntThrottle);
            Body.AddRelativeForce(Vector3.right * Steer * swerve);
            Body.AddRelativeTorque(Vector3.up * Steer * turn);

            IsOffTrack = n < minReqContacts;
        }