public void SetState(JumperState state) { if (m_state != null) { m_state.Leave(); } m_state = state; m_state.Enter(); }
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; } }