Beispiel #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;
            }
        }
    }
Beispiel #2
0
    void CheckForInteractableInput()
    {
        if (interactionData.IsEmpty())
        {
            return;
        }

        if (InputManager.Instance.InteractedTriggered())
        {
            m_interacting = true;
            m_holderTimer = 0f;
        }

        if (interactionInputData.InteractedReleased)
        {
            m_interacting = false;
            m_holderTimer = 0f;
            uiPanel.UpdateProgressBar(m_holderTimer);
        }

        if (m_interacting)
        {
            if (!interactionData.Interactable.IsInteractable)
            {
                return;
            }
            if (interactionData.Interactable.HoldInteract)
            {
                m_holderTimer += Time.deltaTime;
                float heldPercent = m_holderTimer / interactionData.Interactable.HoldDuration;
                uiPanel.UpdateProgressBar(heldPercent);
                if (heldPercent > 1f)
                {
                    StartInteract(interactionData.Interactable.gameObject);
                    interactionData.ResetData();
                    m_interacting = false;
                }
            }
            else
            {
                StartInteract(interactionData.Interactable.gameObject);
                interactionData.ResetData();
                m_interacting = false;
            }
        }
    }