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; }