コード例 #1
0
        /// <summary>
        /// calls OnExit on the current element and clears all entries from the queue
        /// </summary>
        public void Clear()
        {
            if (_queue.Count > 0)
            {
                IActionQueueElement currentElement = _queue.Peek();
                currentElement.OnExit();

                _queue.Clear();
            }
        }
コード例 #2
0
        // ================================================================================
        //  public methods
        // --------------------------------------------------------------------------------

        /// <summary>
        /// should be called every frame by parent object
        /// </summary>
        public void Update()
        {
            if (_queue.Count == 0)
            {
                return;
            }

            IActionQueueElement currentElement = _queue.Peek();

            currentElement.Update();

            if (currentElement.hasEnded)
            {
                currentElement.OnExit();
                _queue.Dequeue();

                if (_queue.Count > 0)
                {
                    currentElement = _queue.Peek();
                    currentElement.OnStart();
                }
            }
        }