43 lines
1.1 KiB
C#
43 lines
1.1 KiB
C#
|
|
public partial class UIManager
|
|
{
|
|
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;
|
|
}
|
|
} |