2025-03-17 21:56:02 +08:00
|
|
|
|
using System.Collections;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using UnityEngine;
|
2025-03-20 22:28:26 +08:00
|
|
|
|
using UnityEngine.InputSystem;
|
2025-03-17 21:56:02 +08:00
|
|
|
|
using UnityEngine.SceneManagement;
|
|
|
|
|
using UnityEngine.UI;
|
|
|
|
|
|
|
|
|
|
public class PauseManager : MonoBehaviour
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
public PacManInput pacManInputControl;//<2F><><EFBFBD><EFBFBD>ϵͳ
|
|
|
|
|
|
2025-03-20 22:28:26 +08:00
|
|
|
|
public GameObject PauseMenu;//<2F><><EFBFBD>Ͻǵ<CFBD><C7B5><EFBFBD>ͣ<EFBFBD>˵<EFBFBD>
|
|
|
|
|
public GameObject PauseButton;//esc<73>Ĵ˵<F2BFAAB2>
|
|
|
|
|
public GameObject DieMenu;//<2F><><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>
|
|
|
|
|
public GameObject StartMenu;//<2F><>ʼ<EFBFBD>˵<EFBFBD>
|
|
|
|
|
public GameObject WinMenu;//ʤ<><CAA4><EFBFBD>˵<EFBFBD>
|
|
|
|
|
public Sprite[] pauseSprite;//<2F><><EFBFBD>Ͻǵ<CFBD><C7B5><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ<CDBC>л<EFBFBD>
|
2025-03-17 21:56:02 +08:00
|
|
|
|
private bool isPaused = false;
|
|
|
|
|
|
2025-03-20 22:28:26 +08:00
|
|
|
|
public PacMan pacManScript;//<2F><>ק<EFBFBD><D7A7>ֵ
|
|
|
|
|
|
2025-03-17 21:56:02 +08:00
|
|
|
|
private void Awake()
|
|
|
|
|
{
|
|
|
|
|
pacManInputControl = new PacManInput();//newһ<77><D2BB><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>ϵͳ
|
2025-03-20 22:28:26 +08:00
|
|
|
|
if (!GameManager.instance.GameStart)
|
|
|
|
|
{
|
|
|
|
|
StartTogglePause();
|
|
|
|
|
}
|
|
|
|
|
if(GameManager.instance.DotNum <= 0)
|
|
|
|
|
{
|
|
|
|
|
WinMenu.SetActive(true);
|
|
|
|
|
Time.timeScale = 0;
|
|
|
|
|
pacManInputControl.Disable();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2025-03-17 21:56:02 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OnEnable()
|
|
|
|
|
{
|
|
|
|
|
pacManInputControl.Enable();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OnDisable()
|
|
|
|
|
{
|
|
|
|
|
pacManInputControl.Disable();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Update()
|
|
|
|
|
{
|
|
|
|
|
// <20><>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD>Ӽ<EFBFBD><D3BC>̿<EFBFBD><CCBF>ݼ<EFBFBD><DDBC><EFBFBD><EFBFBD><EFBFBD>ESC<53><43><EFBFBD><EFBFBD>
|
2025-03-20 22:28:26 +08:00
|
|
|
|
if(GameManager.instance.GameStart)
|
|
|
|
|
{
|
|
|
|
|
pacManInputControl.PacManInputSystem.Menu.performed += ctx => TogglePause();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (pacManScript.die)
|
|
|
|
|
{
|
|
|
|
|
DieTogglePause();
|
|
|
|
|
pacManScript.die = false;
|
|
|
|
|
}
|
2025-03-17 21:56:02 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><F3B6A8B7><EFBFBD>
|
|
|
|
|
public void TogglePause()
|
|
|
|
|
{
|
|
|
|
|
isPaused = !isPaused;
|
|
|
|
|
PauseMenu.SetActive(isPaused);
|
|
|
|
|
PauseButton.gameObject.GetComponent<Image>().sprite = isPaused ? pauseSprite[0] : pauseSprite[1];
|
|
|
|
|
Time.timeScale = isPaused ? 0 : 1;
|
|
|
|
|
}
|
|
|
|
|
|
2025-03-20 22:28:26 +08:00
|
|
|
|
public void DieTogglePause()
|
|
|
|
|
{
|
|
|
|
|
isPaused = !isPaused;
|
|
|
|
|
Time.timeScale = 0;
|
|
|
|
|
DieMenu.SetActive(isPaused);
|
|
|
|
|
pacManInputControl.Disable();
|
|
|
|
|
// pacManInputControl.PacManInputSystem.Menu.Disable();
|
|
|
|
|
}
|
|
|
|
|
public void StartTogglePause()
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
StartMenu.SetActive(true);
|
|
|
|
|
Time.timeScale = 0;
|
|
|
|
|
pacManInputControl.Disable();
|
|
|
|
|
// pacManInputControl.PacManInputSystem.Menu.Disable();
|
|
|
|
|
}
|
|
|
|
|
|
2025-03-17 21:56:02 +08:00
|
|
|
|
public void RestartGame()
|
|
|
|
|
{
|
|
|
|
|
Time.timeScale = 1;
|
2025-03-20 22:28:26 +08:00
|
|
|
|
GameManager.instance.GameStart = true;
|
2025-03-17 21:56:02 +08:00
|
|
|
|
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void QuitGame()
|
|
|
|
|
{
|
|
|
|
|
Application.Quit();
|
|
|
|
|
}
|
|
|
|
|
}
|