カラスの目はよく見るとかわいい

技術系ブログ。Unity、GoogleAppsScript、C#、VisualStudioCodeを中心に投稿しています。

畳み掛けるアニメーションの実行を保留して、実行中のアニメーションが終わった後に実行する方法

        private List<Action> m_NextActions = new List<Action>();

        private void PlayNext()
        {
            if (m_NextActions.Count > 0) m_NextActions[0]();
        }

        public void Next()
        {
            m_NextActions.Add(NextMethod);
            if (m_NextActions.Count == 1)
            {
                NextMethod();
                
            }
            
        }

        private void NextMethod(){
            transform.DOScaleX(0f, time).OnComplete(() =>
            {
                //アニメーションが終わったら実行中のメソッドを削除し、次のストックされたメソッドがあれば実行する
                m_NextActions.RemoveAt(0);
                PlayNext();
            });
        }