Ejemplo n.º 1
0
    private IEnumerator StartCountCoroutine(Action <int> startCallback, int frequentCallTime, Action <int> frequenCallback,
                                            int duration, Action <int> endDurationCallback, EndlesTime EndlessTime)
    {
        float currentTime = 0;

        int integerTime = frequentCallTime;

        if (startCallback != null)
        {
            startCallback.Invoke((int)currentTime);
        }

        while (EndlessTime == EndlesTime.Endless || currentTime < duration)
        {
            currentTime += Time.deltaTime;

            if (EndlessTime != EndlesTime.Endless && currentTime >= duration)
            {
                currentTime = duration;
            }

            if ((int)currentTime == integerTime)
            {
                if (frequenCallback != null)
                {
                    frequenCallback.Invoke((int)currentTime);
                }

                integerTime += frequentCallTime;
            }

            yield return(null);
        }

        if (endDurationCallback != null)
        {
            endDurationCallback.Invoke((int)currentTime);
        }
    }
Ejemplo n.º 2
0
 public void StartCount(Action <int> startCallback, int frequentCallTime, Action <int> frequenCallback,
                        int duration, Action <int> endDurationCallback, EndlesTime EndlessTime)
 {
     StartCoroutine(StartCountCoroutine(startCallback, frequentCallTime, frequenCallback,
                                        duration, endDurationCallback, EndlessTime));
 }