示例#1
0
    // 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--;
            }
        }
    }
示例#5
0
    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();
            }
        }
    }