public void SetOff() { InitCheck(); SetValue(0f); _currentState = EAnimateOnOffState.Off; }
public void SetOn() { InitCheck(); SetValue(1f); _currentState = EAnimateOnOffState.On; }
public void SetOff() { CurrentState = EAnimateOnOffState.Off; gameObject.SetActive(false); foreach (var a in _animations) { a.SetOff(); } }
public void Init() { if (_initialised) // do nothing if initialisation has already happened - prevents infinite recursion { return; } _initialised = true; CurrentState = EAnimateOnOffState.Off; var subGroups = GetComponentsInChildren <AnimateOnOffGroup>(); // make sure any child groups are initialised before this one - doesn't matter if they're already initialised at this point foreach (var group in subGroups) { group.Init(); } _animations = new List <IAnimateOnOff>(); foreach (var a in GetComponentsInChildren <IAnimateOnOff>()) { if (ReferenceEquals(a, this) || a.IgnoreAnimationGroup || a.Group != null) { continue; } a.Group = this; _longestOn = Mathf.Max(_longestOn, a.OnDuration); _longestOff = Mathf.Max(_longestOff, a.OffDuration); _animations.Add(a); } switch (_awakeState) { default: SetOn(); break; case EAnimateOnOffState.Off: SetOff(); break; case EAnimateOnOffState.AnimatingOn: AnimateOn(); break; case EAnimateOnOffState.AnimatingOff: AnimateOff(); break; } }
public IPromise AnimateOff(bool unscaled = false) { InitCheck(); _currentState = EAnimateOnOffState.AnimatingOff; return(CoroutineExtensions.Tween( Duration, f => SetValue(1f - f), Easing.Reverse(EaseType), unscaled) .ThenWaitForSeconds(Delay, unscaled) .ThenDo(() => _currentState = EAnimateOnOffState.Off)); }
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)); }