private IEnumerator deleteStarPerform(int starNum, int totalScore, int preScore, int curScore, StarSettlementView settlementView) { for (int i = starNum - 1; i >= 0; i--) { GameObject starObject = gameObject.transform.GetChild(i).gameObject; starObject.SetActive(false); totalScore = totalScore - preScore; totalScore = totalScore >= 0 ? totalScore : 0; //播放消失动画 settlementView.UpdateScore(totalScore); if (totalScore > 0) { yield return(new WaitForSeconds(0.5f)); } } UIManager.Instance.CloseView(settlementView.GetViewID()); //更新当前分数 EventManager.Instance.EventDispatcher.dispatchEvent <int, float, float>(EventEnum.FightUI_Update_LevelInfo, -1, -1, curScore); ChangeLevelView changeLevelView = UIManager.Instance.ShowView <ChangeLevelView>(UIType.Fight_ChangeLevelView); if (changeLevelView) { LevelInfoComponent levelInfo = _context.levelInfo; IGameConfig gameConfig = _context.gameConfig.config; if (levelInfo != null && gameConfig != null) { changeLevelView.Show(levelInfo.curScore >= levelInfo.targetScore, levelInfo.curLevelId >= gameConfig.GetLevelTotalNum()); } } }
private void settlementPerform(int starNum, int totalScore, int preScore, int curScore) { StarSettlementView settlementView = UIManager.Instance.ShowView <StarSettlementView>(UIType.Fight_StarSettlementView); StartCoroutine(deleteStarPerform(starNum, totalScore, preScore, curScore, settlementView)); }