コード例 #1
0
ファイル: StarScene.cs プロジェクト: xu509/MagicWall
        private void DoPrepare()
        {
            //Debug.Log("[Star] Do Prepare | _durtime: " + _durtime + " / _dataType: " + _dataType);
            _startTime = Time.time;


            _manager.starEffectContainer.gameObject.SetActive(true);
            _manager.starEffectContent.GetComponent <CanvasGroup>().alpha = 0;


            // 创建浮动块
            for (int i = 0; i < _manager.cutEffectConfig.StarEffectAgentsCount; i++)
            {
                CreateNewAgent(true);
            }

            // 显示动画
            _manager.starEffectContent.GetComponent <CanvasGroup>().DOFade(1, 1f);


            // 设置远近关系,Z轴越小越前面
            _activeAgents.Sort(new FlockCompare());
            for (int i = 0; i < _activeAgents.Count; i++)
            {
                int si = _activeAgents.Count - 1 - i;
                _activeAgents[i].GetComponent <RectTransform>().SetSiblingIndex(si);
            }

            //Debug.Log("[Star] Do Prepare Complete");

            _isPreparing         = false;
            _starSceneStatusEnum = StarSceneStatusEnum.InitCompleted;

            //Debug.Log("_activeAgents : " + _activeAgents.Count);
        }
コード例 #2
0
ファイル: StarScene.cs プロジェクト: xu509/MagicWall
        public void OnRunCompleted()
        {
            if (!_isEnding)
            {
                _isEnding = true;
                //_magicSceneEnumStatus = MagicSceneEnum.RunningEnd;

                _manager.starEffectContent.GetComponent <CanvasGroup>()
                .DOFade(0, 2f)
                .OnComplete(() =>
                {
                    _manager.starEffectContainer.gameObject.SetActive(false);
                    _onSceneCompleted.Invoke();
                    _starSceneStatusEnum  = StarSceneStatusEnum.Init;
                    _magicSceneEnumStatus = MagicSceneEnum.Running;

                    _isPreparing = false;
                    _isEnding    = false;
                    //_starSceneStatusEnum = StarSceneStatusEnum.EndCompleted;
                });
            }
        }
コード例 #3
0
ファイル: StarScene.cs プロジェクト: xu509/MagicWall
        /// <summary>
        ///  持续运行,主流程处理块
        /// </summary>
        /// <returns></returns>
        public bool Run()
        {
            //Debug.Log("_starSceneStatusEnum : " + _starSceneStatusEnum);
            _magicSceneEnumStatus = MagicSceneEnum.Running;

            if (_starSceneStatusEnum == StarSceneStatusEnum.Init)
            {
                if (!_isPreparing)
                {
                    _isPreparing  = true;
                    _activeAgents = new List <FlockAgent>();
                    _startTime    = Time.time;

                    DoPrepare();
                }
            }

            if (_starSceneStatusEnum == StarSceneStatusEnum.InitCompleted)
            {
                _starSceneStatusEnum = StarSceneStatusEnum.Run;
            }

            if (_starSceneStatusEnum == StarSceneStatusEnum.Run)
            {
                //Debug.Log("[Star] Running");

                DoAnimation();
            }

            if ((_starSceneStatusEnum == StarSceneStatusEnum.Run) && ((Time.time - _startTime) > _durtime))
            {
                //_starSceneStatusEnum = StarSceneStatusEnum.RunCompleted;
                OnRunCompleted();
            }


            return(true);
        }