// Update is called once per frame void Update() { if (regulated != _regulated) { _regulated = regulated; initializeAudioClips(); } if (state == States.Beginning) { state = States.Advisor1FirstClip; advisor2Animator.currentlyPlaying = AdvisorAnimationEnum.Idle; advisor1Animator.currentlyPlaying = AdvisorAnimationEnum.isTalking; source1.Stop(); source1.clip = a1; source1.Play(); } if (state == States.Advisor1FirstClip && !source1.isPlaying) { state = States.Advisor2FirstClip; advisor2Animator.currentlyPlaying = AdvisorAnimationEnum.isTalking2; advisor1Animator.currentlyPlaying = AdvisorAnimationEnum.Idle; source2.Stop(); source2.clip = b1; source2.Play(); } if (state == States.Advisor2FirstClip && !source2.isPlaying) { state = States.Advisor1SecondClip; advisor2Animator.currentlyPlaying = AdvisorAnimationEnum.Idle; advisor1Animator.currentlyPlaying = AdvisorAnimationEnum.isTalking; source1.Stop(); source1.clip = a2; source1.Play(); } if (state == States.Advisor1SecondClip && !source1.isPlaying) { state = States.Advisor2SecondClip; advisor2Animator.currentlyPlaying = AdvisorAnimationEnum.isTalking2; advisor1Animator.currentlyPlaying = AdvisorAnimationEnum.Idle; source2.Stop(); source2.clip = b2; source2.Play(); } if (state == States.Advisor2SecondClip && !source2.isPlaying) { state = States.AwaitingPlayerResponse; advisor1Animator.currentlyPlaying = AdvisorAnimationEnum.isShakingHands; advisor2Animator.currentlyPlaying = AdvisorAnimationEnum.isShakingHands; } if (state == States.ChooseTaxi) { state = States.TransitionTime; StaticDecisionsMade.chooseToTakeTaxi = true; advisor2Animator.currentlyPlaying = AdvisorAnimationEnum.isDisappointed; advisor1Animator.currentlyPlaying = AdvisorAnimationEnum.isShakingHandsEnd; source1.Stop(); source1.clip = aGotChosen; source1.Play(); } if (state == States.ChooseUber) { state = States.TransitionTime; StaticDecisionsMade.chooseToTakeTaxi = false; advisor2Animator.currentlyPlaying = AdvisorAnimationEnum.isShakingHandsEnd; advisor1Animator.currentlyPlaying = AdvisorAnimationEnum.isDisappointed; source2.Stop(); source2.clip = bGotChosen; source2.Play(); } if (state == States.TransitionTime && !source1.isPlaying && !source2.isPlaying) { //Transition scene! //Might want to delay this a bit more. if (!FadedOut) { FadedOut = true; fader.FadeOut(); } else { if (!fader.isTransitioning() && !FadedIn) { FadedIn = true; //Do all the movements, this is when screen is dark. player.transform.position = new Vector3(.85f, -13.9f, 14.97f); //change sounds city.GetComponent <AudioSource>().enabled = true; colombianRestaurant.GetComponent <AudioSource>().enabled = false; //Enable one of the cars if (StaticDecisionsMade.chooseToTakeTaxi) { taxiCar.SetActive(true); } else { uberCar.SetActive(true); } //Fade in fader.FadeIn(); } else if (!fader.isTransitioning() && !FadedInFadedOut) { FadedInFadedOut = true; //Do anything AFTER fade in, screen is done, transition is done Debug.Log("I happen after the player moves and can see again!"); state = States.PlayingFinalRadioStuff; } } } if (state == States.PlayingFinalRadioStuff) { state = States.Done; radioAudioSource.Stop(); radioAudioSource.clip = radioClip; radioAudioSource.Play(); //Start playing the final radio stuff } if (state == States.Done && !radioAudioSource.isPlaying) { ///Transition to scene 3 SceneManager.LoadScene("Second Accelorated Future"); } }