예제 #1
0
        // 연출 플레이
        private IEnumerator CoPlay()
        {
            // 0. null check
            if (_actionInfos == null || _actionInfos.Length <= 0)
            {
                yield break;
            }

            // 1. Next Action
            for (var i = 0; i < _actionInfos.Length; i++)
            {
                var info = _actionInfos[i];

                if (info == null)
                {
                    continue;
                }

                if (i == _actionCount)
                {
                    _nowActionInfo = info;
                    info.OnPlay(true);
                }
                else
                {
                    info.OnPlay(false);
                }
            }

            var isLastAction = _nowActionInfo != null && _nowActionInfo.IsCompleteAction() && _actionInfos.Length - 1 == _actionCount;

            _goNotify.SetActiveFast(isLastAction == false);

            yield return(new WaitForSeconds(_nowActionInfo?.DelayTime ?? 0f));

            // 2. Finish Check
            if (isLastAction)
            {
                StopCoroutine(CoFinish());
                StartCoroutine(CoFinish());
            }
            else
            {
                _isTouch = true;
            }

            yield return(null);
        }