added GUI and pausing and finished death
This commit is contained in:
154
Assets/Scripts/Game/InGameManager.cs
Normal file
154
Assets/Scripts/Game/InGameManager.cs
Normal file
@ -0,0 +1,154 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Rendering;
|
||||
using UnityEngine.UI;
|
||||
using UnityEngine.SceneManagement;
|
||||
|
||||
|
||||
|
||||
public class InGameManager : MonoBehaviour
|
||||
{
|
||||
|
||||
[SerializeField]
|
||||
private Volume gameVolume;
|
||||
[SerializeField]
|
||||
private Volume pausedVolume;
|
||||
|
||||
[SerializeField]
|
||||
private bool isPaused = false;
|
||||
private bool isTransitioning = false;
|
||||
|
||||
[SerializeField]
|
||||
private float pauseTransitionDuration = 1f;
|
||||
|
||||
[SerializeField]
|
||||
private Canvas gameCanvas;
|
||||
[SerializeField]
|
||||
private Canvas pausedCanvas;
|
||||
|
||||
public bool IsPaused { get { return this.isPaused; } }
|
||||
|
||||
public void TogglePause()
|
||||
{
|
||||
if (!isTransitioning)
|
||||
{
|
||||
isPaused = !isPaused;
|
||||
Cursor.visible = isPaused;
|
||||
if (!isPaused)
|
||||
{
|
||||
Cursor.lockState = CursorLockMode.Locked;
|
||||
}
|
||||
else
|
||||
{
|
||||
Cursor.lockState = CursorLockMode.None;
|
||||
}
|
||||
StartCoroutine(pauseTransition());
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
public void UnPause()
|
||||
{
|
||||
if (!isTransitioning)
|
||||
{
|
||||
isPaused = false;
|
||||
Cursor.lockState = CursorLockMode.Locked;
|
||||
Cursor.visible = isPaused;
|
||||
StartCoroutine(pauseTransition());
|
||||
}
|
||||
|
||||
}
|
||||
public void Pause()
|
||||
{
|
||||
if (!isTransitioning)
|
||||
{
|
||||
isPaused = true;
|
||||
Cursor.lockState = CursorLockMode.None;
|
||||
Cursor.visible = isPaused;
|
||||
StartCoroutine(pauseTransition());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
IEnumerator pauseTransition()
|
||||
{
|
||||
if (pausedCanvas.gameObject.activeInHierarchy && !isPaused)
|
||||
{
|
||||
pausedCanvas.gameObject.SetActive(false);
|
||||
}
|
||||
if (gameCanvas.gameObject.activeInHierarchy && isPaused)
|
||||
{
|
||||
gameCanvas.gameObject.SetActive(false);
|
||||
}
|
||||
|
||||
this.isTransitioning = true;
|
||||
yield return new WaitForSeconds(0);
|
||||
this.isTransitioning = false;
|
||||
print("Unpause canvas?" + isPaused+","+pausedCanvas.gameObject.activeInHierarchy);
|
||||
if (!pausedCanvas.gameObject.activeInHierarchy && isPaused)
|
||||
{
|
||||
pausedCanvas.gameObject.SetActive(true);
|
||||
|
||||
}
|
||||
if (!gameCanvas.gameObject.activeInHierarchy && !isPaused)
|
||||
{
|
||||
gameCanvas.gameObject.SetActive(true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
{
|
||||
isPaused = false;
|
||||
Cursor.lockState = CursorLockMode.Locked;
|
||||
Cursor.visible = isPaused;
|
||||
gameVolume.weight = 1;
|
||||
pausedVolume.weight = 0;
|
||||
gameCanvas.gameObject.SetActive(true);
|
||||
pausedCanvas.gameObject.SetActive(false);
|
||||
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
if (Input.GetButtonDown("Pause"))
|
||||
{
|
||||
this.TogglePause();
|
||||
print("Toggled!");
|
||||
}
|
||||
|
||||
if (isTransitioning||true)
|
||||
{
|
||||
if (isPaused)
|
||||
{
|
||||
//transition into pause
|
||||
|
||||
//gameVolume.weight = Mathf.Lerp(gameVolume.weight, 0, Time.deltaTime);
|
||||
//pausedVolume.weight = Mathf.Lerp(pausedVolume.weight, 1, Time.deltaTime);
|
||||
|
||||
//gameVolume.weight = gameVolume.weight < 0.1 ? 0 : gameVolume.weight;
|
||||
//pausedVolume.weight = pausedVolume.weight > 0.9 ? 1 : pausedVolume.weight;
|
||||
gameVolume.weight = 0;
|
||||
pausedVolume.weight = 1;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
//transition out of pause
|
||||
|
||||
gameVolume.weight = 1;
|
||||
pausedVolume.weight = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void ExitToMenu()
|
||||
{
|
||||
SceneManager.LoadScene(0);
|
||||
}
|
||||
}
|
11
Assets/Scripts/Game/InGameManager.cs.meta
Normal file
11
Assets/Scripts/Game/InGameManager.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d805c17d8132601478d1da4480f05fb0
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Reference in New Issue
Block a user