コード例 #1
0
 /// <summary>
 /// 下一个动画。
 /// </summary>
 private void PlayNextAnim(AnimQueueInfo pAnimQ, int nIndex, Action pBack)
 {
     if (nIndex == pAnimQ.lAnim.Count)
     {
         Debug.LogError("动画播放完啦!");
         pAnimQ.bActive = false;
         ResetAnimQ(pAnimQ);
         pBack();
         return;
     }
     if (pAnimQ.lAnim[nIndex].GoNextTime < 100)// 延迟播放。
     {
         pAnimQ.lAnim[nIndex].Anim.Play();
         float time = 0;
         DOTween.To(() => time, x => time = x, 1, pAnimQ.lAnim[nIndex].GoNextTime).OnComplete(delegate()
         {
             PlayNextAnim(pAnimQ, nIndex + 1, pBack);
         });
     }
     else// 播放完当前动画播放。
     {
         pAnimQ.lAnim[nIndex].Anim.Play().OnComplete(delegate()
         {
             PlayNextAnim(pAnimQ, nIndex + 1, pBack);
         });
     }
 }
コード例 #2
0
        /// <summary>
        /// 注册动画到序列。
        /// </summary>
        /// <param name="pName"></param>
        /// <param name="pTween"></param>
        public void RegisterAnim(string pQName, Tween pTween, float nGoNextTime)
        {
            AnimQueueInfo ItemQ = m_lAnimQInfo.Find(delegate(AnimQueueInfo Item)
            {
                return(pQName == Item.Name);
            });

            if (ItemQ != null)
            {
                int Id = ItemQ.lAnim.Count;
                Action <AnimQueueInfo, int, Action> NextAction = PlayNextAnim;
                float GoNextTime = nGoNextTime;
                ItemQ.lAnim.Add(new AnimInfo(Id, pTween, NextAction, GoNextTime));
            }
            else
            {
                int Id = 0;
                Action <AnimQueueInfo, int, Action> NextAction = PlayNextAnim;
                float GoNextTime = nGoNextTime;
                m_lAnimQInfo.Add(new AnimQueueInfo(pQName, new List <AnimInfo>()
                {
                    new AnimInfo(Id, pTween, NextAction, GoNextTime)
                }, false));
            }
        }
コード例 #3
0
 /// <summary>
 /// 重置动画。
 /// </summary>
 private void ResetAnimQ(AnimQueueInfo pAnimQ)
 {
     foreach (AnimInfo AnimInfo in pAnimQ.lAnim)
     {
         //AnimInfo.Anim.Restart(false,1f);
         //AnimInfo.Anim.Pause();
     }
 }
コード例 #4
0
        /// <summary>
        /// 开始播放开始!!!
        /// </summary>
        public void StartPlayAnim(string pQName, Action pBack)
        {
            AnimQueueInfo ItemQ = m_lAnimQInfo.Find(delegate(AnimQueueInfo Item)
            {
                return(pQName == Item.Name);
            });

            if (ItemQ != null)
            {
                if (ItemQ.bActive)
                {
                    Debug.LogError("动画正在播放");
                    return;
                }
                ItemQ.bActive = true;
                PlayNextAnim(ItemQ, 0, pBack);
            }
        }