// Update is called once per frame public void Update() { for (int i = 0; i < animList.Count; i++) { //执行Update animList[i].executeUpdate(); if (animList[i].m_isDone == true) { AnimData animTmp = animList[i]; if (!animTmp.AnimReplayLogic()) { animList.Remove(animTmp); i--; //释放 //animTmp.Release(); HeapObjectPool <AnimData> .PutObject(animTmp); } //执行回调 animTmp.executeCallBack(); } } }
/// <summary> /// 立即完成一个动画 /// </summary> /// <param name="animGameObject">要完成的</param> public static void FinishAnim(AnimData animData) { animData.m_currentTime = animData.m_totalTime; animData.executeUpdate(); animData.executeCallBack(); GetInstance().animList.Remove(animData); }
/// <summary> /// 停止一个动画 /// </summary> /// <param name="animGameObject">要停止的动画</param> /// <param name="isCallBack">是否触发回调</param> public static void StopAnim(AnimData animData, bool isCallBack = false) { if (isCallBack) { animData.executeCallBack(); } GetInstance().animList.Remove(animData); }
/// <summary> /// 停止一个对象身上的所有动画 /// </summary> /// <param name="animGameObject">要停止动画的对象</param> /// <param name="isCallBack">是否触发回调</param> public static void StopAnim(GameObject animGameObject, bool isCallBack = false) { for (int i = 0; i < GetInstance().animList.Count; i++) { if (GetInstance().animList[i].m_animGameObejct == animGameObject) { if (isCallBack) { AnimData dataTmp = GetInstance().animList[i]; dataTmp.executeCallBack(); } GetInstance().animList.RemoveAt(i); i--; } } }
public static void ClearAllAnim(bool isCallBack = false) { if (isCallBack) { for (int i = 0; i < GetInstance().animList.Count; i++) { AnimData dataTmp = GetInstance().animList[i]; dataTmp.executeCallBack(); GetInstance().animList.RemoveAt(i); i--; } } else { GetInstance().animList.Clear(); } }
// Update is called once per frame void Update() { for (int i = 0; i < animList.Count; i++) { //执行Update animList[i].executeUpdate(); if (animList[i].m_isDone == true) { AnimData animTmp = animList[i]; if (!animTmp.AnimReplayLogic()) { animList.Remove(animTmp); i--; } //执行回调 animTmp.executeCallBack(); } } }