NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/Framework/UI/UIManagerBase.Global.cs

43 lines
1.1 KiB
C#

public partial class UIManagerBase
{
public static bool IsUIInputBlocked => _isUIInputBlocked;
private static bool _isUIInputBlocked;
private float _inputBlockTimeRemaining;
private const float NORMAL_INPUT_BLOCK_TIME = 0.15f;
private const float CLOSE_INPUT_BLOCK_TIME = 0.3f;
private void _UpdateInputBlockTimer(float dt)
{
if (_inputBlockTimeRemaining < 0.01f && _isUIInputBlocked)
{
_isUIInputBlocked = false;
}
if (_isUIInputBlocked)
{
_inputBlockTimeRemaining -= dt;
}
}
/// <summary>
/// 阻塞UI输入 - 普通操作(短时间)
/// </summary>
public void BlockUIForNormalOperation()
{
if (!_isUIInputBlocked)
{
_isUIInputBlocked = true;
_inputBlockTimeRemaining = NORMAL_INPUT_BLOCK_TIME;
}
}
/// <summary>
/// 阻塞UI输入 - 关闭操作(长时间,强制执行)
/// </summary>
public void BlockUIForCloseOperation()
{
_isUIInputBlocked = true;
_inputBlockTimeRemaining = CLOSE_INPUT_BLOCK_TIME;
}
}