public void FinishAnim() { currentTime = totalTime; executeUpdate(); executeCallBack(); TweenUtil.GetInstance().animList.Remove(this); StackObjectPool <TweenScript> .Push(this); }
public static void StopAnim(TweenScript tweenData, bool isCallBack = false) { if (isCallBack) { tweenData.executeCallBack(); } GetInstance().animList.Remove(tweenData); StackObjectPool <TweenScript> .Push(tweenData); }
public void AddTween(TweenScript tweenScript) { // 避免同一物体同一类型同时存在两次. var a = animList.Find(x => x.AnimObject == tweenScript.AnimObject && x.AnimType == tweenScript.AnimType); if (a != null) { animList.Remove(a); StackObjectPool <TweenScript> .Push(a); } animList.Add(tweenScript); }
public void Update() { for (int i = 0; i < animList.Count; i++) { animList[i].executeUpdate(); if (animList[i].IsDone) { TweenScript tweenTmp = animList[i]; if (!tweenTmp.AnimReplayLogic()) { animList.Remove(tweenTmp); i--; StackObjectPool <TweenScript> .Push(tweenTmp); } tweenTmp.executeCallBack(); // todo this is bug. } } }
/// <summary> /// 停止一个对象身上的所有动画 /// </summary> /// <param name="trans">要停止动画的对象</param> /// <param name="isCallBack">是否触发回调</param> public static void TnStop(this Transform trans, bool isCallBack = false) { for (int i = 0; i < TweenUtil.GetInstance().animList.Count; i++) { if (TweenUtil.GetInstance().animList[i].AnimObject == trans.gameObject) { if (isCallBack) { TweenScript dataTmp = TweenUtil.GetInstance().animList[i]; dataTmp.executeCallBack(); } TweenScript tweenData = TweenUtil.GetInstance().animList[i]; TweenUtil.GetInstance().animList.RemoveAt(i); i--; StackObjectPool <TweenScript> .Push(tweenData); } } }