private IEnumerator StartQuests() { foreach (GameObject questObj in mQuestToComplete) { if (questObj == null) { Debug.Log("No game object..."); continue; } ITutorialQuest quest = questObj.GetComponent <ITutorialQuest>(); if (quest == null) { Debug.Log("No quest script in object..."); continue; } else { Debug.Log("Starting quest"); //Init quest quest.InitQuest(); //Title questTitle.enabled = true; questTitle.text = quest.GetTitle(); questDescription.text = ""; //Wait for quest init to complete while (!quest.InitComplete()) { yield return(null); } //Start title animation mAnimateTitle = true; //Print description StartCoroutine(PrintQuestDescription(quest)); //Wait for quest to complete while (!quest.Completed()) { yield return(null); } //StopTitleAnimation mAnimateTitle = false; } Debug.Log("Stop quest"); questTitle.enabled = false; skipText.enabled = false; quest.EndQuest(); //Wait some time between quests yield return(new WaitForSeconds(questInterval)); } //Wait for sime time before loading menu scene yield return(new WaitForSeconds(exitTime)); LoadMenuScene(); yield return(null); }