public void OnTimer(int nTimerID) { if (nTimerID == chestAnimTimer) { SceneEffectParamBase tmpParam = null; for (int i = 0; i < CakeTrailEffectParamList.Count; ++i) { tmpParam = CakeTrailEffectParamList[i]; SceneEffectManager.Instance.DestroySceneEffect(ref tmpParam); } CakeTrailEffectParamList.Clear(); ResNode.DestroyRes(ref tempPriezeChestModel); //删除开宝箱创建的临时模型 tempPriezeChestModel = null; resultPageObj.SetActive(true); //显示结果页面UI Invoke("OpenAwardClickTip", 1f); TimerManager.KillTimer(this, 1); SSchemePrizeChestConfig prizeChestConfig = FindNextChestPrize(); if (prizeChestConfig != null) { m_nextChestId = prizeChestConfig.nChestId; nextChestBtn.gameObject.SetActive(true); nextChestBtn.interactable = false; if (m_nResultPageChestType == prizeChestConfig.nChestId) { nextChestHint.gameObject.SetActive(false); int nNextChestCount = 0; if (LogicDataCenter.prizeChestDataManager.ChestInfo.ContainsKey(m_nextChestId)) { nNextChestCount = LogicDataCenter.prizeChestDataManager.ChestInfo[m_nextChestId]; } nextChestBtn.gameObject.GetComponentInChildren <Text>().text = String.Format("{0}({1})", ULocalizationService.Instance.Get("UIView", "PrizeChest", "NextChestBtn"), nNextChestCount); } else { nextChestHint.gameObject.SetActive(true); nextChestHint.text = String.Format(ULocalizationService.Instance.Get("UIView", "PrizeChest", "WillOpenDifferentChest"), prizeChestConfig.strChestName); nextChestBtn.gameObject.GetComponentInChildren <Text>().text = ULocalizationService.Instance.Get("UIView", "PrizeChest", "NextChestBtn"); } } else { m_nextChestId = -1; nextChestHint.gameObject.SetActive(false); nextChestBtn.gameObject.SetActive(false); } } }
private void LoadPrizeResultEffectAndSetUIData() { //获取当前开启的宝箱配置 prizeChestConfig = ActorPrizeConfig.Instance.GetPrizeChestConfig(m_nResultPageChestType); if (prizeChestConfig == null) { return; } //创建临时模型 tempModelID = Mathf.Clamp(prizeChestConfig.nChestModelID - 1, 0, 2); if (prizeChestResNodeList[tempModelID] != null) { GameObject prizeChestObj = prizeChestResNodeList[tempModelID].InstanceMainRes(); if (prizeChestObj != null) { prizeChestObj.transform.SetParent(prizeResultObjContainer); prizeChestObj.transform.localPosition = Vector3.zero; tempPriezeChestModel = prizeChestObj; } } else { Debug.LogError(String.Format("not find model ID in prizeChestResNodeList[{0}]", tempModelID)); return; } //播放模型打开动画的光效 SceneEffectParamBase openEffectParam = new SceneEffectParamBase(prizeChestConfig.nOpenEffect, tempPriezeChestModel.transform); SceneEffectManager.Instance.CreateSceneEffect(ref openEffectParam); Data.UISoundConfig.SSchemeUSoundData soundData = new Data.UISoundConfig.SSchemeUSoundData(); if (Data.UISoundConfig.UISoundConfig.Instance.GetData(SoundFilter_AnimStart, SoundKey_AnimStart, ref soundData)) { SoundManager.CreateUISound(soundData.USoundID); } Transform[] tempChestModelChilds = tempPriezeChestModel.transform.GetComponentsInChildren <Transform>(); //挂载摄像机动画 Transform cmdTr = prizeResultObjContainer.parent.FindChild("CamTarget"); if (cmdTr != null) { DestroyObject(cmdTr.gameObject); } GameObject camTarget = new GameObject(); camTarget.name = "CamTarget"; camTarget.transform.SetParent(prizeResultObjContainer.parent); camTarget.transform.localPosition = prizeResultObjContainer.localPosition; camTarget.transform.localEulerAngles = Vector3.zero; LightingEffectManager lem = EntityFactory.EffectGroup.GetComponent <LightingEffectManager>(); if (lem != null) { LightEffectParam param = new LightEffectParam(); param.srcObject = camTarget; param.sourcePos = camTarget.transform.position; param.targetPos = camTarget.transform.position; m_camEffectID = prizeChestConfig.nCamEffectID; lem.AddLighting(prizeChestConfig.nCamEffectID, param); } List <int> prizeIdList = LogicDataCenter.prizeChestDataManager.PrizeIdList; openPrizeCount = 0; prizeCount = Mathf.Clamp(prizeIdList.Count, 0, 7); //增加Tooltip if (continueOpenBtn != null) { continueOpenBtn.interactable = prizeCount > 0 ? false : true; if (!continueOpenBtn.interactable) { UTooltipTrigger tooltip = continueOpenBtn.gameObject.GetComponent <UTooltipTrigger>(); if (tooltip == null) { tooltip = continueOpenBtn.gameObject.AddComponent <UTooltipTrigger>(ETooltipStyle.ETS_Default); } tooltip.SetText(UTooltipParamName.BodyText, openTips); } } foreach (PrizeResultItem item in prizeResultList) { UTooltipTrigger trigger = item.transform.GetComponent <UTooltipTrigger>(); if (trigger != null) { trigger.enabled = false; } } //奖励宝箱模型上挂载光效 for (int i = 0; i < prizeIdList.Count; ++i) { //PrizeID必须大于0,界面大小,图标最多放12个 if (prizeIdList[i] <= 0 || i >= 7) { break; } int nPrizeID = prizeIdList[i]; SSchemeActorPrizeConfig config = null; if (nPrizeID >= RAND_CARD_FIRST_INDEX && nPrizeID < LogicDataCenter.prizeChestDataManager.RandCardIndex) { config = LogicDataCenter.prizeChestDataManager.RandCardResult[nPrizeID]; } else { config = ActorPrizeConfig.Instance.GetActorPrizeConfig(nPrizeID); } if (config == null) { return; } //骨骼上挂载奖励光效 foreach (Transform tr in tempChestModelChilds) { if (tr != null && tr.name.Equals(bonesName[i])) { SceneEffectParamBase effectParam = new SceneEffectParamBase(config.nCakeTrailEffectID, tr, null, true, 2700); SceneEffectManager.Instance.CreateSceneEffect(ref effectParam); CakeTrailEffectParamList.Add(effectParam); } } //奖励UI数据填充 prizeResultList[i].SetData(this, i, prizeIdList[i], config); } //开启动画定时器 TimerManager.SetTimer(this, chestAnimTimer, 4.2f); }