public void OnInteractionStartEvent(InteractableObjectFBBIK interactableObject)
    {
        m_isInteracting            = true;
        m_currentInteractingObject = interactableObject;
        switch (interactableObject.InteractionType)
        {
        case InteractionTypes.Door:
            m_currentPlayerHandler = ControllerHandler.PauseMototoMotion;
            // m_loackMotorMotion = true;
            break;

        case InteractionTypes.DraggableBox:
            m_currentPlayerHandler = ControllerHandler.HandledByLocomotionMotorMotion;
            ConstrainMotorDirection(interactableObject.CurrentInteractionTrigger.InteractionForward, interactableObject.m_playerRootMotionSpeed);
            break;

        case InteractionTypes.Ladder:
            m_currentLadder        = (InteractableLadder)interactableObject;
            m_currentPlayerHandler = ControllerHandler.HandledByCustomRootMotion;
            m_rigidbody.useGravity = false;
            PlayLadderClimbAnimation(true);
            m_useCustomeRooMotion = true;
            m_customRootPosition  = m_transform.position;    // resetting it to the current player postion
            break;
        }
    }
    public void OnInteractionStopEvent(InteractableObjectFBBIK interactableObject)
    {
        switch (interactableObject.InteractionType)
        {
        case InteractionTypes.Door:
            m_currentPlayerHandler = ControllerHandler.HandledByLocomotionMotorMotion;
            break;

        case InteractionTypes.DraggableBox:
            m_currentPlayerHandler = ControllerHandler.HandledByLocomotionMotorMotion;
            //m_isInRootMotionInteraction = false;
            UnConstrainMotorDirection();
            break;

        case InteractionTypes.Ladder:
            m_currentLadder = null;
            PlayLadderClimbAnimation(false);
            m_currentPlayerHandler = ControllerHandler.HandledByLocomotionMotorMotion;
            m_rigidbody.useGravity = true;
            m_useCustomeRooMotion  = false;
            //m_isInRootMotionInteraction = false;
            //m_thirdPersonController.UnConstrainMotorDirection();
            break;
        }
        m_currentInteractingObject = null;
        m_isInteracting            = false;
    }
 public void OnInteractableObjectOutRangeEvent(InteractableObjectFBBIK interactableObject)
 {
     m_closetInteractableObjectInRange = null;
 }