/// <summary>
 /// Force the current interaction to end.
 /// </summary>
 public void EndInteraction()
 {
     if (currentInteractible != null)
     {
         currentInteractible.EndInteraction();
         currentInteractible = null;
     }
 }
        /// <summary>
        /// Interact with the given object.
        /// </summary>
        public void Interact(Interactible interactible)
        {
            if (currentInteractible == null || !currentInteractible.StillInteracting)
            {
                currentInteractible = interactible;
            }

            currentInteractible.OnInteract();

            if (!currentInteractible.StillInteracting)
            {
                currentInteractible = null;
            }
            else
            {
                fsm.Signal(currentInteractible.gameObject);
            }
        }
 /// <summary>
 /// Interact with a particular object.
 /// </summary>
 /// <param name="interactible">The object to interact with.</param>
 public void Interact(Interactible interactible) => Interaction.Interact(interactible);