Ejemplo n.º 1
0
    IEnumerator AddFreeze(eFreezeDuration duration)
    {
        ++_freezeStack;
        if (_freezeStack == 1)
        {
            GameManager.AddFreeze(GameFreezeMask.FreezeContext.Pause);
        }

        yield return(new WaitForSecondsRealtime(GetFreezeCoroutine(duration)));

        _freezeStack = Mathf.Max(0, _freezeStack - 1);
        if (_freezeStack == 0)
        {
            GameManager.RemoveFreeze(GameFreezeMask.FreezeContext.Pause);
        }
    }
Ejemplo n.º 2
0
    float GetFreezeCoroutine(eFreezeDuration duration)
    {
        switch (duration)
        {
        case eFreezeDuration.eSmall:
            return(0.035f);

        case eFreezeDuration.eMedium:
            return(0.055f);

        case eFreezeDuration.eBig:
            return(0.08f);

        case eFreezeDuration.eVeryBig:
            return(0.15f);
        }
        return(0f);
    }