private void ApplyForceAtCasterPosition(Collider other, Vector3 forceDirection) { //Debug.Log(forceDirection + " : froceDirection"); //Debug.Log(other.transform.right + " :mowerRight"); MowerController controller = other.transform.parent.GetComponent <MowerController>(); Rigidbody mowerRigidBody = other.transform.parent.GetComponent <Rigidbody>(); Vector3 mowerCastersPosition = controller.mCasterTransform.position; Vector3 lowerWheelLocation = GetLowerWheelPosition(controller); //Debug.Log(mowerRigidBody.velocity.magnitude); IMUDirectionArrow imuArrowScript = controller.GetComponent <IMUDirectionArrow>(); if (imuArrowScript == null) { mowerRigidBody.AddForceAtPosition(forceDirection * (mDownwardForceMagnitude), mowerCastersPosition); } else if (!controller.GetComponent <IMUDirectionArrow>().isActiveAndEnabled) { mowerRigidBody.AddForceAtPosition(forceDirection * (mDownwardForceMagnitude), mowerCastersPosition); } ApplyScaledTorque(forceDirection, other, mowerCastersPosition, lowerWheelLocation); // //ApplyTorqueAtPositionAroundPosition(mForceMagnitude * forceDirection, mowerCastersPosition, lowerWheelLocation, mowerRigidBody); }