void OnDisable() { if (mTweeners != null) { switch (m_DisableMode) { case eDisableMode.Pause: for (int i = 0, imax = mTweeners.Length; i < imax; i++) { TweenerBase tween = mTweeners[i]; if (tween != null) { tween.Pause(); } } break; case eDisableMode.Stop: for (int i = 0, imax = mTweeners.Length; i < imax; i++) { TweenerBase tween = mTweeners[i]; if (tween != null) { tween.Stop(); tween.Reset(); } } break; } } }
public bool StopTween(int i, bool reset) { if (mTweeners == null) { return(false); } if (i < 0 || i >= m_Tweens.Length) { return(false); } TweenData tween = m_Tweens[i]; int ti = (int)tween.tweenType; TweenerBase tweener = mTweeners[ti]; if (tweener == null) { return(false); } tweener.Stop(); if (reset) { tweener.Reset(); } return(true); }
public void PlayTween(int i, System.Action onFinish) { if (i < 0 || i >= m_Tweens.Length) { return; } if (mTweeners == null) { mTweeners = new TweenerBase[TweenTypeMax + 1]; } TweenData tween = m_Tweens[i]; int ti = (int)tween.tweenType; TweenerBase tweener = mTweeners[ti]; if (tweener != null) { tweener.Stop(); } PlayTweenData(tween); if (onFinish != null) { tweener = mTweeners[ti]; if (tweener != null && tweener.Playing) { tweener.OnFinishEvent += onFinish; } else { try { onFinish(); } catch (System.Exception e) { Debug.LogException(e); } } } }
void OnEnable() { int count = m_Tweens.Length; bool firstEnable = mEnableCount++ <= 0; bool playMode = true; switch (m_DisableMode) { case eDisableMode.None: if (!firstEnable) { return; } break; case eDisableMode.Pause: playMode = firstEnable; break; } if (playMode) { for (int i = 0; i < count; i++) { if (!m_Tweens[i].autoPlay) { continue; } PlayTween(i, null); } } else if (mTweeners != null) { for (int i = 0, imax = mTweeners.Length; i < imax; i++) { TweenerBase tween = mTweeners[i]; if (tween != null) { tween.Resume(); } } } }
public static void CacheTweener(TweenerBase tweener) { if (tweener == null) { return; } int index = GetTweenerIndex(tweener.GetType()); tweener.Clear(); if (cached_tweeners == null) { int capacity = 16; if (index >= capacity) { index--; index |= index >> 1; index |= index >> 2; index |= index >> 4; index |= index >> 8; index |= index >> 16; index++; capacity = index; } cached_tweeners = new List <Queue <TweenerBase> >(16); } while (index >= cached_tweeners.Count) { cached_tweeners.Add(null); } Queue <TweenerBase> queue = cached_tweeners[index]; if (queue == null) { queue = new Queue <TweenerBase>(); cached_tweeners[index] = queue; } queue.Enqueue(tweener); }
public void StopGroup(string group, bool reset) { for (int i = 0, imax = m_Tweens.Length; i < imax; i++) { TweenData tween = m_Tweens[i]; if (string.IsNullOrEmpty(tween.group)) { continue; } if (group != tween.group) { continue; } TweenerBase tweener = mTweeners[(int)tween.tweenType]; if (tweener != null) { tweener.Stop(); if (reset) { tweener.Reset(); } } } }