using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Unity.VisualScripting; using UnityEngine; public class GameManager : MonoBehaviour { [SerializeField] public float Timescale = 1; private float PrevTimescale = 1; [SerializeField] private GameObject CrystalRef; public static GameObject Crystal; public static bool IsPaused { get; private set; } [SerializeField] private GameObject pauseMenuUI; private void Awake() { Crystal = CrystalRef; } void Update() { if (Input.GetKeyDown(KeyCode.Escape)) TogglePause(); SetTimeScale(); } public void TogglePause() { IsPaused = !IsPaused; Time.timeScale = IsPaused ? 0f : 1f; AudioListener.pause = IsPaused; pauseMenuUI?.SetActive(IsPaused); } public void SetTimeScale() { if (IsPaused) return; if (PrevTimescale != Timescale) { Time.timeScale = Timescale; PrevTimescale = Timescale; } } }