Пример #1
0
    void CheckForInteractableInput()
    {
        if (interactionData.IsEmpty())
        {
            return;
        }

        if (interactionInputData.InteractedClicked)
        {
            m_interacting = true;
            m_holdTimer   = 0f;
        }

        if (interactionInputData.InteractedRelease)
        {
            m_interacting = false;
            m_holdTimer   = 0f;
            uiPanel.UpdateProgressBar(0);
        }

        if (m_interacting)
        {
            if (!interactionData.Interactable.IsInteractable)
            {
                return;
            }

            if (interactionData.Interactable.HoldInteract)
            {
                m_holdTimer += Time.deltaTime;

                float heldPercent = m_holdTimer / interactionData.Interactable.HoldDuration;
                uiPanel.UpdateProgressBar(heldPercent);

                if (heldPercent > 1)
                {
                    interactionData.Interact();
                    m_interacting = false;
                }
            }

            else
            {
                interactionData.Interact();
                m_interacting = false;
            }
        }
    }
Пример #2
0
 void Interact()
 {
     interactionData.Interact();
     m_interacting           = false;
     m_firstInteractingInput = false;
     holdPercentage          = 0f;
 }
    private void CheckForInteractionInput()
    {
        //on press, interact
        if (!interactionData.IsEmpty())
        {
            if (interactionData.Interactable.IsInteractable)
            {
                if (interactionInputData.InteractPress)
                {
                    interactionData.Interact();
                    interactionData.Reset();
                    hoverUIController.ResetUI();
                }
            }
        }

        interactionInputData.Reset();
    }