// Update is called once per frame public override void UpdateLevel() { switch (m_structure) { case TutorialStructure.IDLE: if(startTutorial) { if(Mathf.Approximately(cannonFireScript.gameObject.transform.position.x, 0.0f)) { MoveToPosition(); m_structure = TutorialStructure.MOVE_TO_FIRE_BUTTON; fireTrigger.enabled = true; cannonFireScript.stopDropper = true; } } break; case TutorialStructure.MOVE_TO_FIRE_BUTTON: if(lerp.animationEnded) { if(!restingCoroutine) { StartCoroutine(StartRestingAnimation()); } } break; case TutorialStructure.WAIT_FOR_PRESSING: break; default: break; } }
//---------------------------------------------------------------------------------------------------- // Update is called once per frame //---------------------------------------------------------------------------------------------------- void Update() { switch (m_structure) { case TutorialStructure.IDLE: m_next_state = TutorialStructure.STIMULUS1_CORRECT; currPointingIndex = 0; currNextPointingIndex = 0; break; case TutorialStructure.STIMULUS1_CORRECT: SettingCurrentStep(TutorialStructure.STIMULUS2_WRONG,0,1); break; case TutorialStructure.STIMULUS2_WRONG: SettingCurrentStep(TutorialStructure.STIMULUS2_CORRECT,1,0); break; case TutorialStructure.STIMULUS2_CORRECT: SettingCurrentStep(TutorialStructure.STIMULUS3_CORRECT,0,3); break; case TutorialStructure.STIMULUS3_CORRECT: SettingCurrentStep(TutorialStructure.ENDING,3,0); break; case TutorialStructure.ENDING: break; default: break; } }
private void SettingCurrentStep(TutorialStructure next, int curridx, int nextidx) { m_next_state = next; currPointingIndex = curridx; if(activateAnimation) { activateAnimation = false; lerp.StartAnimation(); } else if(lerp.animationEnded) { if(!restingCoroutine) { StartCoroutine(StartRestingAnimation()); } } if(acquiringInput) { currNextPointingIndex = nextidx; AcquirePlayerInput(); } }
private void ChangeState() { activateAnimation = true; acquiringInput = true; m_structure = m_next_state; }