81 lines
2.5 KiB
C#
81 lines
2.5 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
using UnityEngine.SceneManagement;
|
|
|
|
public class Game05 : MonoBehaviour{
|
|
|
|
public string menuScene;
|
|
public string[] scenes;
|
|
public Image timeBar;
|
|
public float maxTime;
|
|
float currentTime;
|
|
[Space(10)]
|
|
public GameObject death1;
|
|
public GameObject death2;
|
|
public GameObject particles;
|
|
public RawImage water;
|
|
bool finish;
|
|
bool lost;
|
|
|
|
// Start is called before the first frame update
|
|
void Start(){
|
|
currentTime = maxTime;
|
|
water.transform.localScale = new Vector2(water.transform.localScale.x, 0);
|
|
particles.SetActive(false);
|
|
}
|
|
|
|
// Update is called once per frame
|
|
void Update(){
|
|
if (Input.GetKey(KeyCode.Space)){
|
|
water.transform.localScale = new Vector2(water.transform.localScale.x, water.transform.localScale.y + (.5f * Time.deltaTime));
|
|
particles.SetActive(true);
|
|
}
|
|
if (Input.GetKeyUp(KeyCode.Space)){
|
|
particles.SetActive(false);
|
|
}
|
|
if (finish){
|
|
if(water.transform.localScale.y < .77f){
|
|
StartCoroutine(Death2());
|
|
death2.SetActive(true);
|
|
}else if(water.transform.localScale.y >= .77f && water.transform.localScale.y < .95f){
|
|
CompleteLevel();
|
|
}
|
|
}else if(water.transform.localScale.y >= .95f && !lost){
|
|
StartCoroutine(Death1());
|
|
death1.SetActive(true);
|
|
lost = true;
|
|
}
|
|
currentTime -= 1 * Time.deltaTime;
|
|
timeBar.transform.localScale = new Vector2(currentTime / maxTime, timeBar.transform.localScale.y);
|
|
if (currentTime <= 0){
|
|
finish = true;
|
|
}
|
|
}
|
|
|
|
IEnumerator Death1(){
|
|
yield return new WaitForSecondsRealtime(1f);
|
|
AudioManager.instance.Play("Water");
|
|
Time.timeScale = 0;
|
|
yield return new WaitForSecondsRealtime(3f);
|
|
LoseGame();
|
|
}
|
|
|
|
IEnumerator Death2(){
|
|
yield return new WaitForSecondsRealtime(1f);
|
|
Time.timeScale = 0;
|
|
yield return new WaitForSecondsRealtime(3f);
|
|
LoseGame();
|
|
}
|
|
|
|
public void CompleteLevel(){
|
|
string scene = scenes[Random.Range(0, scenes.Length - 1)];
|
|
LevelLoader.Instance.LoadLevel(scene);
|
|
}
|
|
|
|
public void LoseGame(){
|
|
Debug.LogError(SceneManager.GetActiveScene().name);
|
|
LevelLoader.Instance.LoadLevel(menuScene);
|
|
}
|
|
}
|