예제 #1
0
        /// <summary>
        /// Корутина опроса перехода
        /// </summary>
        /// <param name="transition">Опрашиваемый переход</param>
        /// <returns></returns>
        protected IEnumerator TransitionPolling(ConditionalTransition transition)
        {
            // Установим время ожидания, равное указанному периоду
            var wait = new WaitForSeconds(transition.period);

            // Пока не выполнилось условие перехода
            do
            {
                // Ожидаем
                yield return(wait);
            }while (!transition.condition());

            // Если условие перехода выполнилось, то устанавливаем результат работы состояния - название следующего состояния
            SetStateResult(transition.nextState);
        }
예제 #2
0
        /// <summary>
        /// Установка опроса перехода
        /// </summary>
        /// <param name="transition">Переход, для которого устанавливается опрос</param>
        protected void SetConditionalTransitionPoll(ConditionalTransition transition)
        {
            Coroutine cor = _stateMachine.HandlingScript.StartCoroutine(TransitionPolling(transition));

            _transitionsPolls.Add(cor);
        }