(client) feat:添加基地界面到游玩界面的过程,添加存档管理,技能树变得可用 (#58)

Co-authored-by: m0_75251201 <m0_75251201@noreply.gitcode.com>
Reviewed-on: http://47.107.252.169:3000/Roguelite-Game-Developing-Team/Gen_Hack-and-Slash-Roguelite/pulls/58
This commit is contained in:
2025-10-03 00:31:34 +08:00
parent aff747be17
commit dd9d90439d
134 changed files with 10322 additions and 4872 deletions

View File

@@ -40,6 +40,8 @@ namespace Base
/// </summary>
public int VisibleWindowCount => _visibleWindows.Count;
public bool HasWindowOpen => _visibleWindows.Any();
/// <summary>
/// 查询指定名称的UI窗口是否当前可见。
/// </summary>
@@ -245,15 +247,20 @@ namespace Base
private void UpdateVisibleWindowsCache()
{
_visibleWindows.Clear();
foreach (var window in _allWindows)
var exclusiveWindow = _allWindows.FirstOrDefault(window => window && window.IsVisible && window.exclusive);
if (exclusiveWindow)
{
if (window && window.IsVisible)
{
_visibleWindows.Add(window);
}
_visibleWindows.Add(exclusiveWindow);
}
else
{
_visibleWindows.AddRange(_allWindows.Where(window => window && window.IsVisible));
}
}
/// <summary>
/// 当脚本实例被销毁时调用。
/// 用于在销毁时取消订阅场景加载事件,防止内存泄漏。
@@ -283,6 +290,7 @@ namespace Base
private void OnSceneLoaded(Scene scene, LoadSceneMode mode)
{
RegisterAllWindows();
Clock.AddTickUI(this);
}
}
}