private IEnumerator EndLevel() { var player = GameObject.Find("Player"); if (player != null) { player.GetComponent<CharacterDefinition>().DisableControl(); } GameObject.Find("Jukebox").GetComponent<AudioSource>().Stop(); GetComponent<AudioSource>().PlayOneShot(LevelClearedSongClip); if (Text != null) { var typewriter = new TypeWriter("Level cleared!", 60f); while (!typewriter.Done) { if (typewriter.Update()) { Text.text = typewriter.CurrentText; } yield return new WaitForEndOfFrame(); } } GetComponent<AudioSource>().PlayOneShot(LevelClearedClip); yield return new WaitForSeconds(2); Application.LoadLevel(TargetLevel); }
private IEnumerator DelayRestart() { var player = GameObject.Find("Player"); if (player != null) { player.GetComponent<CharacterDefinition>().DisableControl(); } if (Text != null) { GetComponent<AudioSource>().PlayOneShot(YouDiedClip); var typewriter = new TypeWriter("You died!", 50f); while (!typewriter.Done) { if (_skipRequested) { typewriter.SkipToEnd(); Text.text = typewriter.CurrentText; break; } if (typewriter.Update()) { Text.text = typewriter.CurrentText; } yield return new WaitForEndOfFrame(); } } yield return new WaitForSeconds(2); Application.LoadLevel(Application.loadedLevelName); }
private IEnumerator Intro() { var ceoSequence = new[] { AudioC, AudioE, AudioO, }; var chiefExecutionOfficerSequence = new[] { AudioChief, AudioExecution, AudioOfficer, }; var headerTypeWriter = new TypeWriter(Header.text, 500); Header.text = headerTypeWriter.CurrentText; var subHeaderTypeWriter = new TypeWriter(SubHeader.text, 1000, true); SubHeader.text = subHeaderTypeWriter.CurrentText; yield return new WaitForSeconds(1f); int soundIndex = 0; while (!headerTypeWriter.Done) { if (headerTypeWriter.Update()) { PlaySound(ceoSequence[soundIndex++]); Header.text = headerTypeWriter.CurrentText; } yield return new WaitForEndOfFrame(); } soundIndex = 0; while (!subHeaderTypeWriter.Done) { if (subHeaderTypeWriter.Update()) { PlaySound(chiefExecutionOfficerSequence[soundIndex++]); SubHeader.text = subHeaderTypeWriter.CurrentText; } yield return new WaitForEndOfFrame(); } yield return new WaitForSeconds(1f); if (!string.IsNullOrEmpty(GoToLevel)) { Application.LoadLevel(GoToLevel); } }
private IEnumerator Outro() { Text.text = ""; yield return new WaitForSeconds(0.5f); foreach (var textSequence in Texts) { var typeWriter = new TypeWriter(textSequence.Text, 80f); if (!_skipRequested) { } _skipRequested = false; while (!typeWriter.Done) { if (_skipRequested) { typeWriter.SkipToEnd(); break; } if (typeWriter.Update()) { Text.text = typeWriter.CurrentText; } yield return new WaitForEndOfFrame(); } yield return new WaitForSeconds(0.5f); } yield return new WaitForSeconds(2f); // TODO: goto next scene if (!string.IsNullOrEmpty(GoToLevel)) { Application.LoadLevel(GoToLevel); } }