Beispiel #1
0
    public void SetState(JumperState state)
    {
        if (m_state != null)
        {
            m_state.Leave();
        }

        m_state = state;

        m_state.Enter();
    }
Beispiel #2
0
    private void Update()
    {
        switch (state)
        {
        case JumperState.STATE_INIT:
            TimeCounter += Time.deltaTime;
            if (TimeCounter >= DelayForVuforiaTime)
            {
                state       = JumperState.STATE_DETECT;
                TimeCounter = 0;
            }
            break;

        case JumperState.STATE_DETECT:
            if (Input.touchCount >= 2)
            {
                TimeCounter += Time.deltaTime;
                if (TimeCounter >= FixToReadMessageTime)
                {
                    state       = JumperState.STATE_ON;
                    TimeCounter = 0;
                }
            }
            else
            {
                TimeCounter = 0;
            }
            break;

        case JumperState.STATE_ON:
            // 這邊持續 OnStatusTime 秒就結束了
            TimeCounter += Time.deltaTime;
            if (TimeCounter >= OnStatusTime)
            {
                TimeCounter = 0;
                state       = JumperState.STATE_INIT;
            }
            else if (Input.touchCount >= 2)
            {
                TimeCounter = 0;
            }
            break;
        }
    }