using System.Collections; using System.Collections.Generic; using System.Threading.Tasks; using UnityEngine; using UnityEngine.UI; public class TutorialManager : MonoBehaviour { public static bool justRegistered; public static TutorialManager instance; public TutorialScreen[] firstTutorial; public GameObject[] itemsToDisableWhileInTuto; public Button btn_skip; void Awake() { instance = this; } void Start(){ btn_skip.onClick.AddListener(OnSkip); justRegistered= true; //for testing purpose if(justRegistered){ StartSequence(firstTutorial); } } async void StartSequence(TutorialScreen[] list){ skipped=false; btn_skip.gameObject.SetActive(true); foreach(GameObject item in itemsToDisableWhileInTuto){ item.SetActive(false); } foreach(TutorialScreen screen in list){ screen.Hide(); } for(int i=0; i < list.Length; i++){ nextClicked = false; await Task.Delay(list[i].delayBeforeAppear); list[i].Show(); while(!nextClicked && !skipped){ await Task.Delay(500); } list[i].Hide(); if(skipped){ break; } } foreach(GameObject item in itemsToDisableWhileInTuto){ item.SetActive(true); } btn_skip.gameObject.SetActive(false); } bool nextClicked= false; bool skipped = false; public static void NextClicked(){ instance.nextClicked = true; } void OnSkip(){ skipped=true; } }