コード例 #1
0
    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);
    }