public override void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        if (stateInfo.normalizedTime >= 0.9f && !said_message)
        {
            FlowManager.Instance.room_messenger.Message("You've got mail! Let's send a reply...", 3f);

            // bring up the options buttons and display the help text
            FlowManager.Instance.room_buttons_page.TransitionIn();
            FlowManager.Instance.room_buttons_page.OpenHelpPageDelayed(1.5f);

            said_message = true;
        }
        if (FlowManager.OutputCorrect() && next_timer < 0)
        {
            // delay before going to next state
            next_timer = next_time_max;
        }

        if (next_timer >= 0)
        {
            next_timer -= Time.deltaTime;
            if (next_timer <= 0)
            {
                // delay over, go to next state
                FlowManager.AnimatorNextScene();
            }
        }
    }
 public void ButtonContinue()
 {
     TransitionOut();
     on_transitioned_out = () => FlowManager.AnimatorNextScene();
     if (next_page != null)
     {
         next_page.TransitionIn(next_page.default_seconds, next_page_in_delay);
     }
 }
 public override void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
 {
     if (stateInfo.normalizedTime >= 0.9f && !said_message)
     {
         FlowManager.Instance.native_messenger.Message("\"我完全看得懂!\" \nTranslation from Chinese: \n \"I totally understand this reply!\"");
         said_message = true;
     }
     if (FlowManager.InputContinue())
     {
         FlowManager.AnimatorNextScene();
     }
 }