61 lines
1.7 KiB
C#
Executable file
61 lines
1.7 KiB
C#
Executable file
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
using UnityEngine.SceneManagement;
|
|
|
|
public class LevelController : MonoBehaviour {
|
|
|
|
public Text winText;
|
|
protected static LevelController levelController;
|
|
private bool wonLevel = false;
|
|
|
|
void Start () {
|
|
if (levelController)
|
|
{
|
|
Destroy(this);
|
|
}
|
|
levelController = this;
|
|
}
|
|
|
|
public static LevelController GetController()
|
|
{
|
|
if (levelController)
|
|
return levelController;
|
|
Debug.LogError("A LevelController object is not present in this scene.");
|
|
return null;
|
|
}
|
|
|
|
public void WinLevel()
|
|
{
|
|
wonLevel = true;
|
|
winText.text = "YOU WIN!";
|
|
StartCoroutine(DelayLoadLevel("Level1", 3.0f));
|
|
}
|
|
|
|
public void ResetLevel()
|
|
{
|
|
if (wonLevel)
|
|
return;
|
|
PlayerController.GetController().KillPlayer();
|
|
winText.text = "TRY AGAIN!";
|
|
StartCoroutine(DelayLoadLevel(SceneManager.GetActiveScene().name, 2.0f));
|
|
}
|
|
|
|
public IEnumerator DelayLoadLevel(string levelName, float delay)
|
|
{
|
|
yield return new WaitForSeconds(delay);
|
|
if (SceneManager.GetActiveScene ().name == levelName) {
|
|
// soft restart - just reset location
|
|
GameObject player = GameObject.FindGameObjectWithTag ("Player");
|
|
GameObject start = GameObject.FindGameObjectWithTag ("Start");
|
|
player.transform.position = start.transform.position;
|
|
winText.text = "";
|
|
PlayerController.GetController().RevivePlayer();
|
|
} else {
|
|
levelController = null;
|
|
SceneManager.LoadScene (levelName);
|
|
}
|
|
yield return null;
|
|
}
|
|
}
|