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); }
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; }); } }
/// <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); }