UPF/Assets/Game/Scripts/TutorialManager.cs
2022-10-17 04:25:47 +05:30

68 lines
1.6 KiB
C#

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;
}
}