示例#1
0
    void IStateChange.OnStateChanged()
    {
        List <VirtualClick> pressedHandlers = GetPressedVirtualButtonHandler();

        // Nothing is selected --> reset currentselectedButton
        if (pressedHandlers.Count == 0)
        {
            if (currentSelectedButton != null)
            {
                currentSelectedButton.elapsedTime = VirtualClick.TIME_DELAY;
                currentSelectedButton             = null;
            }
            vibrateEnabled = false;
            coinHandler.RemoveCoin();
        }
        // If one is selected and the cooldown is over
        else if (pressedHandlers.Count == 1 && coolDown <= 0 && !isGameFinished)
        {
            currentSelectedButton = pressedHandlers[0];
            UpdateMaterial(currentSelectedButton.buttonModel, selectedMaterial);
            coinHandler.SetCoinPosition(clickHandler.IndexOf(currentSelectedButton));
        }
        // More than one is selected --> indicate error
        else if (pressedHandlers.Count > 1 && !isGameFinished)
        {
            coinHandler.RemoveCoin();
            if (currentSelectedButton != null)
            {
                currentSelectedButton.elapsedTime = VirtualClick.TIME_DELAY;
                currentSelectedButton             = null;
                vibrateEnabled = false;
            }

            foreach (var vc in pressedHandlers)
            {
                UpdateMaterial(vc.buttonModel, errorMaterial);
            }
        }
    }