init
This commit is contained in:
commit
341a877b4a
2338 changed files with 1346408 additions and 0 deletions
92
Assets/Scripts/UI/PauseMenu.cs
Normal file
92
Assets/Scripts/UI/PauseMenu.cs
Normal file
|
@ -0,0 +1,92 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.SceneManagement;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class PauseMenu : MonoBehaviour{
|
||||
|
||||
[SerializeField, Range(0, 1)] float transitionDuration = .67f;
|
||||
Animator anim = default;
|
||||
bool paused;
|
||||
bool canPause;
|
||||
|
||||
Canvas canvas;
|
||||
|
||||
PlayerController player;
|
||||
float percentage;
|
||||
float velocity;
|
||||
|
||||
[SerializeField] Image percentageSlider = default;
|
||||
[SerializeField] TextMeshProUGUI percentageText = default;
|
||||
|
||||
// Start is called before the first frame update
|
||||
void Awake(){
|
||||
canvas = GetComponent<Canvas>();
|
||||
anim = GetComponent<Animator>();
|
||||
canvas.enabled = false;
|
||||
canPause = true;
|
||||
player = FindObjectOfType<PlayerController>();
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update(){
|
||||
if (Input.GetKeyDown(KeyCode.Escape)){
|
||||
if (paused){
|
||||
StartCoroutine(DisablePause());
|
||||
anim.SetTrigger("Exit");
|
||||
canvas.enabled = false;
|
||||
paused = false;
|
||||
}else if(canPause){
|
||||
Time.timeScale = 0;
|
||||
anim.SetTrigger("Enter");
|
||||
paused = true;
|
||||
canvas.enabled = true;
|
||||
canPause = false;
|
||||
}
|
||||
}
|
||||
|
||||
percentageSlider.fillAmount = Mathf.SmoothDamp(percentageSlider.fillAmount, percentage / 100, ref velocity, 1, 100, Time.unscaledDeltaTime);
|
||||
}
|
||||
|
||||
public void UpdateSlider(){
|
||||
percentage = player.percentage;
|
||||
percentageText.text = percentage + "%";
|
||||
percentageSlider.fillAmount = 0;
|
||||
}
|
||||
|
||||
public void Resume(){
|
||||
Time.timeScale = 0;
|
||||
anim.SetTrigger("Enter");
|
||||
paused = true;
|
||||
canvas.enabled = true;
|
||||
canPause = false;
|
||||
}
|
||||
|
||||
public void Retry(){
|
||||
PlayerPrefs.DeleteKey("HP");
|
||||
PlayerPrefs.DeleteKey("Percentage");
|
||||
PlayerPrefs.DeleteKey("TimeSurvived");
|
||||
Time.timeScale = 1;
|
||||
GameMaster.Instance.ResetLevel();
|
||||
Destroy(GameMaster.Instance.gameObject);
|
||||
Loader.Load(SceneManager.GetActiveScene().buildIndex);
|
||||
}
|
||||
|
||||
public void Quit(){
|
||||
GameMaster.Instance.ResetLevel();
|
||||
Destroy(GameMaster.Instance.gameObject);
|
||||
PlayerPrefs.DeleteKey("HP");
|
||||
PlayerPrefs.DeleteKey("Percentage");
|
||||
PlayerPrefs.DeleteKey("TimeSurvived");
|
||||
Time.timeScale = 1;
|
||||
Loader.Load(0);
|
||||
}
|
||||
|
||||
IEnumerator DisablePause(){
|
||||
yield return new WaitForSecondsRealtime(transitionDuration);
|
||||
Time.timeScale = 1;
|
||||
canPause = true;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue