private void update_isPalmFacingUp()
        {
            bool isPalmFacingUp;

            if (Vector3.Dot(_palmCenter.transform.up, Vector3.up) > 0.65f)
            {
                isPalmFacingUp = true;
            }
            else
            {
                isPalmFacingUp = false;

                // if palm is not active, reset booleans
                _fingerStates           = FingerStates.Undefined;
                AreAllFingerTips_Closed = false;
                AreAllFingerTips_Opened = false;
            }

            enablePalmCollider(isPalmFacingUp);
        }
        private void update_fingerTipCollisions()
        {
            int count_closed = 0;
            int count_open   = 0;

            for (int i = 0; i < _areFingersClosed.Length; i++)
            {
                // if a finger is NOT CLOSED (aka OPENED)
                if (_areFingersClosed[i] == false)                // false = OPENED
                {
                    // Then NOT ALL fingers are closed
                    AreAllFingerTips_Closed = false;
                    // count the finger
                    count_open++;
                    // if the number of fingers NOT closed is equal to all the fingers...
                    if (count_open == _areFingersClosed.Length)
                    {
                        //Debug.Log("All Fingers Are OPENED");
                        AreAllFingerTips_Opened = true;
                        FingerStates            = FingerStates.Open;
                    }
                }

                if (_areFingersClosed[i] == true)                // true = CLOSED
                {
                    // if any finger is closed, then NOT ALL fingers are open...
                    AreAllFingerTips_Opened = false;
                    // start counting each closed finger
                    count_closed++;

                    if (count_closed == _areFingersClosed.Length)
                    {
                        //Debug.Log("All Fingers Are CLOSED");
                        AreAllFingerTips_Closed = true;
                        FingerStates            = FingerStates.Closed;
                    }
                }
            }
        }
        private void handler_onStateChange(FingerStates newState)
        {
            if (newState != prevState)
            {
                Debug.Log("State Changed: " + newState);
                if (newState == FingerStates.Open && _isButtonPressed)
                {
                    if (_isMenuOpen)
                    {
                        closeMenu();
                    }
                    else
                    {
                        openMenu();
                    }
                }

                if (newState == FingerStates.Closed && _isButtonPressed == false)
                {
                    StartCoroutine(delayButton());
                }
            }
            prevState = newState;
        }