public void StartCount(OnCountCompleted _completionHandler, int _countTo, int _countFrom = 0) { Assert.NotNull(_completionHandler, "_completionHandler required"); Assert.IsFalse(string.IsNullOrEmpty(SfxLoopName), "Set an sfx loop name before starting count"); m_CompletionCallback = _completionHandler; m_countFrom = _countFrom; m_currentCount = m_countFrom; m_countTo = _countTo; m_countRange = _countTo - _countFrom; base.enabled = true; m_isCountInProgress = true; MinigameManager.GetActive().PlaySFX(SfxLoopName); }
private void Update() { m_currentCount += Mathf.Ceil(m_countRange * 0.01f); if (m_currentCount >= (float)m_countTo) { m_currentCount = m_countTo; if (m_CompletionCallback != null) { m_CompletionCallback(); m_CompletionCallback = null; base.enabled = false; m_isCountInProgress = false; MinigameManager.GetActive().StopSFX(SfxLoopName); } } m_countDisplay.text = (int)m_currentCount + PostFix; }