private IEnumerator UserInteractionTimeoutCheckRoutine() { UserInteractionLockSettings settings = m_userInteractionLockSettings; do { yield return(null); float userInteractionLockTimer = m_userInteractionLockTimer; m_userInteractionLockTimer += Time.get_unscaledDeltaTime(); Action warningTimeoutCallback = settings.warningTimeoutCallback; if (warningTimeoutCallback != null) { float warningTimeout = settings.warningTimeout; if (m_userInteractionLockTimer >= warningTimeout && userInteractionLockTimer < warningTimeout) { warningTimeoutCallback(); } } Action errorTimeoutCallback = settings.errorTimeoutCallback; if (errorTimeoutCallback != null) { float errorTimeout = settings.errorTimeout; if (m_userInteractionLockTimer >= errorTimeout && userInteractionLockTimer < errorTimeout) { errorTimeoutCallback(); } } }while (m_userInteractionLockTimer < settings.maxTimeout); m_userInteractionLocked = false; m_userInteractionLockCheckRoutine = null; }
public void ReleaseUserInteractionLock() { if (!m_userInteractionLocked) { Log.Warning("User Interaction Lock is being released but it was not acquired.", 512, "C:\\BuildAgents\\AgentB\\work\\cub_client_win64_develop\\client\\DofusCube.Unity\\Assets\\Core\\Code\\UI\\UIManager.cs"); } m_userInteractionLockSettings = default(UserInteractionLockSettings); m_userInteractionLocked = false; }
public void LockUserInteraction(float warningTimeout = 1f, float errorTimeout = 8f, Action warningTimeoutCallback = null, Action errorTimeoutCallback = null) { if (m_userInteractionLocked) { Log.Warning("User Interaction is being locked but it was already acquired.", 489, "C:\\BuildAgents\\AgentB\\work\\cub_client_win64_develop\\client\\DofusCube.Unity\\Assets\\Core\\Code\\UI\\UIManager.cs"); } m_userInteractionLockSettings = new UserInteractionLockSettings(warningTimeout, errorTimeout, warningTimeoutCallback, errorTimeoutCallback); m_userInteractionLockTimer = 0f; m_userInteractionLocked = true; if (m_userInteractionLockCheckRoutine != null) { this.StopCoroutine(m_userInteractionLockCheckRoutine); m_userInteractionLockCheckRoutine = null; } if (m_userInteractionLockSettings.hasAnyCallback) { m_userInteractionLockCheckRoutine = this.StartCoroutine(UserInteractionTimeoutCheckRoutine()); } }