UPF/Assets/Game/Scripts/TutorialManager.cs
2022-12-14 01:49:10 +05:30

92 lines
2.4 KiB
C#

using System.Collections;
using System.Collections.Generic;
using System.Threading.Tasks;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class TutorialManager : MonoBehaviour
{
public static bool justRegistered;
public static bool showing =false;
public static Camera UICamera => instance.UI_Camera;
public Camera UI_Camera;
public static TutorialManager instance;
public TutorialScreen[] firstTutorial;
public TutorialScreen[] minigameTutorial;
public TutorialScreen[] minigameFailed;
public bool isMinigame = false;
public GameObject[] itemsToDisableWhileInTuto;
// public Button btn_skip;
void Awake()
{
instance = this;
}
void Start(){
// btn_skip.onClick.AddListener(OnSkip);
// justRegistered= true; //for testing purpose
if(isMinigame){
StartSequence(minigameTutorial);
}else if(justRegistered){
StartSequence(firstTutorial);
justRegistered =false;
}
}
async void StartSequence(TutorialScreen[] list){
skipped=false;
showing=true;
// 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);
}
showing=false;
// btn_skip.gameObject.SetActive(false);
}
bool nextClicked= false;
bool skipped = false;
public static void NextClicked(){
instance.nextClicked = true;
}
void OnSkip(){
skipped=true;
}
public void MinigameFailed(){
StartSequence(minigameFailed);
}
public void Restart(){
Scene scene = SceneManager.GetActiveScene(); SceneManager.LoadScene(scene.name);
}
public void LoadScene(string name){
// SceneManager.LoadScene(name);
LoadingScreen.instance.LoadLevel(name);
}
}