using System; using System.Collections; using System.Collections.Generic; using Ichni.RhythmGame; using Ichni.RhythmGame.UI; using Sirenix.OdinInspector; using UnityEngine; using UnityEngine.SceneManagement; namespace Ichni { public partial class GameManager : SerializedMonoBehaviour { public static GameManager instance; public AudioManager audioManager; public CameraManager cameraManager; public InputManager inputManager; public BackgroundSetter backgroundSetter; public BackgroundController backgroundController; public VariablesContainer variablesContainer; public PostProcessingManager postProcessingManager; public ProjectLoader projectLoader; public PlayingRecorder playingRecorder; public BeatmapContainer beatmapContainer; public CommandScripts commandScripts; public ProjectInformation projectInformation; public SongInformation songInformation; public NoteManager noteManager; public BasePrefabsCollection basePrefabs; public Dictionary customPrefabs; [Title("UI")] public Canvas judgeHintCanvas; public GameUICanvas gameUICanvas; public GameLoadingCanvas gameLoadingCanvas; public SummaryPageCanvas summaryPageCanvas; public float songTime => audioManager.songPlayer.songTimeSegment - songInformation.offset; public bool isDebugging; private void Awake() { instance = this; playingRecorder = new PlayingRecorder(); } private void Start() { projectLoader.TestLoad(); } } public partial class GameManager { public static void RestartGame() { SceneManager.LoadScene("GameScene"); Time.timeScale = 1f; // 确保重启时时间缩放恢复正常 } public static void ReturnToMenu() { SceneManager.LoadScene("MenuScene"); Time.timeScale = 1f; // 确保返回时时间缩放恢复正常 } } }