private IEnumerable <IPromise> GetAnimateOffPromises(bool unscaled) { return(_animations.SelectEach( a => CoroutineExtensions.WaitForSeconds(_longestOff - a.OffDuration, unscaled) .Then(() => a.AnimateOff(unscaled)) )); }
public IPromise AnimateOn(bool unscaled = false) { InitCheck(); _currentState = EAnimateOnOffState.AnimatingOn; return(CoroutineExtensions.WaitForSeconds(Delay, unscaled) .ThenTween( Duration, SetValue, EaseType, unscaled) .ThenDo(() => _currentState = EAnimateOnOffState.On)); }
public virtual IPromise AnimateOn(bool unscaled = false) { if (CheckIfAnimating()) { return(Promise.Resolved()); } if (CurrentState == EAnimateOnOffState.On) { return(Promise.Resolved()); } CurrentState = EAnimateOnOffState.AnimatingOn; gameObject.SetActive(true); return(CoroutineExtensions.WaitForSeconds(OnDelay, unscaled) .ThenAll(() => GetAnimateOnPromises(unscaled)) .ThenDo(() => CurrentState = EAnimateOnOffState.On)); }