Beispiel #1
0
        ///关闭新手引导
        public void Close()
        {
            if (_currentGuideNodeArray != null)
            {
                EB.Debug.Log("GuideNodeManager Close _currentGuideNodeArray!");
                MengBanController.Instance.UnFobiddenAll();
                MengBanController.Instance.Hide();
                GuideToolController.Instance.Hide();
                IsGuide           = false;
                IsVirtualBtnGuide = false;
                isFuncOpenGuide   = false;
                FuncOpenGuideId   = string.Empty;
                GateString        = string.Empty;
                partnerStatID     = 0;
                VirtualBtnStr     = null;
                currentGuideId    = -1;
                if (_currentGuideNodeArray != null && !_currentGuideNodeArray.isExecuteReceipt)
                {
                    NotifyExecuteJump(_currentGuideNodeArray.ExecuteCmd); //执行跳过
                }
                _currentGuideNodeArray = null;
            }

            if (_cPrepare != null)
            {
                EB.Coroutines.Stop(_cPrepare);
                _cPrepare = null;
            }
            if (_cProcessCurrentArray != null)
            {
                EB.Coroutines.Stop(_cProcessCurrentArray);
                _cProcessCurrentArray = null;
            }
            ILRTimerManager.instance.RemoveTimerSafely(ref _Update_Seq);

            isReceiveCompletedData      = false;
            _commonCondition            = null;
            _commonExecute              = null;
            GuideNodeManager.GateString = string.Empty;
        }
Beispiel #2
0
        ///新手引导开启准备阶段
        private IEnumerator PrepareOpen()
        {
            while (!isReceiveGuideNodes) //等待收到所有引导节点的数据
            {
                yield return(null);
            }

            while (!isReceiveCompletedData) //等待收到完成数据
            {
                yield return(null);
            }

            if (_cProcessCurrentArray != null)
            {
                EB.Coroutines.Stop(_cProcessCurrentArray);
            }

            bool isError = false;

            listCompleteFirstStepID.Clear();
            listCompleteIntStepID.Clear();
            List <int> temp = new List <int>();

            string[] saveCompletes = _serverSaveStr.Split('%');
            for (int i = 0; i < saveCompletes.Length; i++)
            {
                if (!string.IsNullOrEmpty(saveCompletes[i]))
                {
                    if (dicNode.ContainsKey(int.Parse(saveCompletes[i])))
                    {
                        listCompleteIntStepID.Add(dicNode[int.Parse(saveCompletes[i])].GroupID, int.Parse(saveCompletes[i]));
                    }
                    temp.Add(int.Parse(saveCompletes[i]));
                }
            }
            SetStartNodes();
            // 配置完成的节点
            //bool isLoadGuideAudio = false;
            for (int i = 0; i < temp.Count; i++)
            {
                if (dicNode.ContainsKey(temp[i]))
                {
                    int groupID = dicNode[temp[i]].GroupID;
                    for (int j = 0; j < listStartNode.Count; j++)
                    {
                        if (listStartNode[j].GroupID == groupID)
                        {
                            if (listStartNode[j].StepID <= temp[i] && dicNode.ContainsKey(listStartNode[j].StepID))
                            {
                                GuideNode node = dicNode[listStartNode[j].StepID];
                                if (node == null)
                                {
                                    continue;
                                }
                                SetLinkCompleted(node, false);
                                listCompleteFirstStepID.Add(int.Parse(saveCompletes[i]));
                            }
                            //else if (listStartNode[j].GroupID == 0 && listStartNode[j].StepID > temp[i])//判断是否要加载引导音效
                            //{
                            //    isLoadGuideAudio = true;
                            //}
                        }
                    }
                }
            }
            //if (isLoadGuideAudio || temp.Count == 0)
            //{
            //    FusionAudio.LoadGuideAudioClip();
            //}
            //else
            //{
            //    FusionAudio.ReleaseGuideAudioClips();
            //}

            //没有错误,开启新手引导
            if (!isError)
            {
                if (_commonCondition != null)
                {
                    _commonCondition.Dispose();
                }

                if (_commonExecute != null)
                {
                    _commonExecute.Dispose();
                }

                _commonCondition       = new CommonConditionParse();
                _commonExecute         = new CommonExecuteParse();
                _startTime             = 0;
                _beforeMemoryTime      = 0;
                _currentGuideNodeArray = null;
                if (_Update_Seq == 0)
                {
                    _Update_Seq = ILRTimerManager.instance.AddTimer(1, 0, Update);
                }
            }
        }