UI相关优化补充
This commit is contained in:
@@ -68,11 +68,26 @@ namespace BaseGames.UI
|
||||
|
||||
// ── 内部 ─────────────────────────────────────────────────────────────
|
||||
|
||||
// 缓存等待对象以避免典型路径(剩余时间 == _minDisplayTime)下的重复分配。
|
||||
private WaitForSecondsRealtime _cachedFullWait;
|
||||
|
||||
private IEnumerator HideAfterMinTime()
|
||||
{
|
||||
float elapsed = Time.unscaledTime - _shownAt;
|
||||
if (elapsed < _minDisplayTime)
|
||||
yield return new WaitForSecondsRealtime(_minDisplayTime - elapsed);
|
||||
float elapsed = Time.unscaledTime - _shownAt;
|
||||
float remaining = _minDisplayTime - elapsed;
|
||||
if (remaining > 0f)
|
||||
{
|
||||
// 完整剩余 ≈ 显示时间时复用缓存对象;否则按需新建(罕见路径)。
|
||||
if (Mathf.Approximately(remaining, _minDisplayTime))
|
||||
{
|
||||
_cachedFullWait ??= new WaitForSecondsRealtime(_minDisplayTime);
|
||||
yield return _cachedFullWait;
|
||||
}
|
||||
else
|
||||
{
|
||||
yield return new WaitForSecondsRealtime(remaining);
|
||||
}
|
||||
}
|
||||
if (_loadingRoot != null) _loadingRoot.SetActive(false);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user