mirror of
https://github.com/Alex-Rachel/TEngine.git
synced 2025-08-07 16:45:10 +00:00
#104 目前调用 HideUI 会将 UIWindow 的 Visible 设置为 false,但是如果又调用 CloseUI 方法,会将刚才 Visible 设置为 false 的窗口重新设置为 true。
This commit is contained in:
@@ -382,12 +382,18 @@ namespace TEngine
|
|||||||
CloseUI(type);
|
CloseUI(type);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
window.Visible = false;
|
window.Visible = false;
|
||||||
|
window.IsHide = true;
|
||||||
window.HideTimerId = GameModule.Timer.AddTimer((arg) =>
|
window.HideTimerId = GameModule.Timer.AddTimer((arg) =>
|
||||||
{
|
{
|
||||||
CloseUI(type);
|
CloseUI(type);
|
||||||
},window.HideTimeToClose);
|
},window.HideTimeToClose);
|
||||||
|
|
||||||
|
if (window.FullScreen)
|
||||||
|
{
|
||||||
|
OnSetWindowVisible();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -469,6 +475,10 @@ namespace TEngine
|
|||||||
UIWindow window = _stack[i];
|
UIWindow window = _stack[i];
|
||||||
if (isHideNext == false)
|
if (isHideNext == false)
|
||||||
{
|
{
|
||||||
|
if (window.IsHide)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
window.Visible = true;
|
window.Visible = true;
|
||||||
if (window.IsPrepare && window.FullScreen)
|
if (window.IsPrepare && window.FullScreen)
|
||||||
{
|
{
|
||||||
|
@@ -18,10 +18,14 @@ namespace TEngine
|
|||||||
private GameObject _panel;
|
private GameObject _panel;
|
||||||
|
|
||||||
private Canvas _canvas;
|
private Canvas _canvas;
|
||||||
|
|
||||||
|
protected Canvas Canvas => _canvas;
|
||||||
|
|
||||||
private Canvas[] _childCanvas;
|
private Canvas[] _childCanvas;
|
||||||
|
|
||||||
private GraphicRaycaster _raycaster;
|
private GraphicRaycaster _raycaster;
|
||||||
|
|
||||||
|
protected GraphicRaycaster GraphicRaycaster => _raycaster;
|
||||||
|
|
||||||
private GraphicRaycaster[] _childRaycaster;
|
private GraphicRaycaster[] _childRaycaster;
|
||||||
|
|
||||||
@@ -204,6 +208,11 @@ namespace TEngine
|
|||||||
internal bool IsLoadDone = false;
|
internal bool IsLoadDone = false;
|
||||||
|
|
||||||
internal bool IsDestroyed = false;
|
internal bool IsDestroyed = false;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// UI是否隐藏标志位。
|
||||||
|
/// </summary>
|
||||||
|
public bool IsHide { internal set; get; } = false;
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
public void Init(string name, int layer, bool fullScreen, string assetName, bool fromResources, int hideTimeToClose)
|
public void Init(string name, int layer, bool fullScreen, string assetName, bool fromResources, int hideTimeToClose)
|
||||||
@@ -218,6 +227,7 @@ namespace TEngine
|
|||||||
|
|
||||||
internal void TryInvoke(System.Action<UIWindow> prepareCallback, System.Object[] userDatas)
|
internal void TryInvoke(System.Action<UIWindow> prepareCallback, System.Object[] userDatas)
|
||||||
{
|
{
|
||||||
|
CancelHideToCloseTimer();
|
||||||
base.userDatas = userDatas;
|
base.userDatas = userDatas;
|
||||||
if (IsPrepare)
|
if (IsPrepare)
|
||||||
{
|
{
|
||||||
@@ -227,7 +237,6 @@ namespace TEngine
|
|||||||
{
|
{
|
||||||
_prepareCallback = prepareCallback;
|
_prepareCallback = prepareCallback;
|
||||||
}
|
}
|
||||||
CancelHideToCloseTimer();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
internal async UniTaskVoid InternalLoad(string location, Action<UIWindow> prepareCallback, bool isAsync, System.Object[] userDatas)
|
internal async UniTaskVoid InternalLoad(string location, Action<UIWindow> prepareCallback, bool isAsync, System.Object[] userDatas)
|
||||||
@@ -437,6 +446,7 @@ namespace TEngine
|
|||||||
|
|
||||||
internal void CancelHideToCloseTimer()
|
internal void CancelHideToCloseTimer()
|
||||||
{
|
{
|
||||||
|
IsHide = false;
|
||||||
if (HideTimerId > 0)
|
if (HideTimerId > 0)
|
||||||
{
|
{
|
||||||
GameModule.Timer.RemoveTimer(HideTimerId);
|
GameModule.Timer.RemoveTimer(HideTimerId);
|
||||||
|
Reference in New Issue
Block a user