增加skill、加入界面基础加载

This commit is contained in:
tianmo committed 2026-10-13 18:40:42 +08:00
1 parent 839165ea63
commit 5921a4884e
128 files changed
+17935 -5023

No files matched your search

+53
View File
@@ -0,0 +1,53 @@
using System.Collections;
using UnityEngine;
using UnityEngine.SceneManagement;
/// <summary>
/// 暂停菜单:继续游戏 / 回到 Main 场景。
/// 按钮点击在各自 Button 的 On Click() 里接线(Inspector 配置)。
/// </summary>
[DisallowMultipleComponent]
public class PauseMenu : MonoBehaviour
{
[Tooltip("「回到Main」要加载的场景名,必须已经加进 Build Settings")]
[SerializeField] private string mainSceneName = "Main";
private bool _leaving;
/// <summary>继续游戏:恢复时间,关掉自己。</summary>
public void OnContinueClicked()
{
Time.timeScale = 1f;
Destroy(gameObject);
}
/// <summary>回到 Main:加载 Main 场景,加载完成后卸载当前场景。</summary>
public void OnBackToMainClicked()
{
if (_leaving) return;
_leaving = true;
Time.timeScale = 1f;
StartCoroutine(LoadMainThenUnloadCurrent());
}
private IEnumerator LoadMainThenUnloadCurrent()
{
Scene currentScene = gameObject.scene;
AsyncOperation load = SceneManager.LoadSceneAsync(mainSceneName, LoadSceneMode.Additive);
if (load == null)
{
Debug.LogError("[PauseMenu] 场景 \"" + mainSceneName + "\" 加载失败,确认它已加入 Build Settings。", this);
_leaving = false;
yield break;
}
yield return load; // 等 Main 加载完成
Scene loaded = SceneManager.GetSceneByName(mainSceneName);
if (loaded.IsValid())
SceneManager.SetActiveScene(loaded);
SceneManager.UnloadSceneAsync(currentScene); // 卸载当前场景
}
}