using System; using System.Collections.Generic; using System.Threading.Tasks; using ET; using FairyGUI; using UI.MatchingCompetition; using UnityEngine; namespace GFGGame { //搭配赛评选期间 class MatchingCompetitionUpLoadView : BaseWindow { private UI_MatchingCompetitionUpLoadUI _ui; private GameObject _sceneObject; private float countTimeSpeed = 0.0015f; private bool isCountTime = false; public override void Dispose() { if (_sceneObject != null) { PrefabManager.Instance.Restore(_sceneObject); _sceneObject = null; } if (_ui != null) { _ui.Dispose(); } _ui = null; base.Dispose(); } protected override void OnInit() { base.OnInit(); packageName = UI_MatchingCompetitionUpLoadUI.PACKAGE_NAME; _ui = UI_MatchingCompetitionUpLoadUI.Create(); this.viewCom = _ui.target; isReturnView = true; isfullScreen = true; _ui.m_BtnBack.onClick.Add(OnClickBtnBack); _ui.m_btnUploadWorks.onClick.Add(OnClickBtnUpload); _ui.m_btnShop.onClick.Add(OnClickBtnShop); _ui.m_btnMyWorks.onClick.Add(OnClickBtnMyWorks); _ui.m_btnRank.onClick.Add(OnClickBtnRank); _ui.m_btnLook.onClick.Add(OnClickBtnLook); _ui.m_btnExchage.onClick.Add(OnClickBtnExchange); _ui.m_ruleBtn.onClick.Add(MatchingCompetitionDataManager.Instance.OnClickBtnRule); } protected override void AddEventListener() { base.AddEventListener(); } protected override void OnShown() { base.OnShown(); _ui.m_bg.url = ResPathUtil.GetBgImgPath("gzs_fb_bj"); _ui.m_c1.selectedIndex = 1; isCountTime = false; UpdateView(); UpdateHead(); UpdateDress(); Timers.inst.AddUpdate(UpdateTime); } protected override void OnHide() { if (_sceneObject != null) { PrefabManager.Instance.Restore(_sceneObject); _sceneObject = null; } Timers.inst.Remove(UpdateTime); Timers.inst.Remove(UpdateCountTime); base.OnHide(); } protected override void RemoveEventListener() { base.RemoveEventListener(); } private async void UpdateDress() { //这里要换成获取其他玩家数据 if (MatchingCompetitionDataManager.Instance.MathingDressDate.actionId != 0) { _ui.m_bg.visible = false; _ui.m_playerImage.visible = false; MatchingCompetitionDataManager.Instance.itemGameObjs.Clear(); PhotographDataManager.Instance.itemGameObjs.Clear(); if (_sceneObject == null) { _sceneObject = PrefabManager.Instance.InstantiateSync(ResPathUtil.GetPrefabPath("ScenePhotograph")); } PhotographSceneManager.Instance.sceneObject = _sceneObject; if(MatchingCompetitionDataManager.Instance.DressUpBgID == 0) { PhotographSceneManager.Instance.AddBgItem(ItemCfgArray.Instance.GetCfg(180001)); } else { PhotographSceneManager.Instance.AddBgItem(ItemCfgArray.Instance.GetCfg(MatchingCompetitionDataManager.Instance.DressUpBgID)); } PhotographSceneManager.Instance.AddBodyItem(); GameObject bodyParent = _sceneObject.transform.Find("Scene/Role").gameObject; PhotographDataManager.Instance.dressUpObj.setSceneObj(_sceneObject, false, true, bodyParent, false, null); PhotographDataManager.Instance.dressUpObj.PutOnDressUpData(MatchingCompetitionDataManager.Instance.MathingDressDate); //对搭配赛特殊处理 for (int i = 0; i < MatchingCompetitionDataManager.Instance.DressPropIdList.Count; i++) { if (MatchingCompetitionDataManager.Instance.DressPropIdList[i] == 0) { continue; } else { ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(MatchingCompetitionDataManager.Instance.DressPropIdList[i]); MatchingCompetitionDataManager.Instance.AddSceneItem(itemCfg, true); } } await Task.Delay(100); MatchingCompetitionDataManager.Instance.InsertGameObjectList(); for (int i = 0; i < MatchingCompetitionDataManager.Instance.TransformDataList.Count; i++) { TransformData itemdata = MatchingCompetitionDataManager.Instance.TransformDataList[i]; GameObject itemGObj = MatchingCompetitionDataManager.Instance.itemGameObjs[i]; MatchingCompetitionDataManager.Instance.itemGameObjs[i].transform.position = itemdata.position; MatchingCompetitionDataManager.Instance.itemGameObjs[i].transform.Rotate(itemGObj.transform.eulerAngles.x, itemGObj.transform.eulerAngles.y, itemdata.rotationZ); MatchingCompetitionDataManager.Instance.itemGameObjs[i].transform.localScale = itemdata.scale; PhotographUtil.Instance.ChangeLayer(MatchingCompetitionDataManager.Instance.itemGameObjs[i], i * PhotographDataManager.layerCount, "up"); } } else { _ui.m_bg.visible = true; _ui.m_playerImage.visible = true; _ui.m_playerImage.texture = null; } } private void UpdateView() { _ui.m_countTime.fillAmount = 0; _ui.m_countTime.visible = false; } private void UpdateHead() { MatchingPlayerData otherInfo = new MatchingPlayerData(); RoleInfoManager.Instance.UpdateHead(_ui.m_playerHead.m_head, otherInfo.HeadId, otherInfo.HeadBorderId); _ui.m_playerHead.m_nameText.text = otherInfo.OtherPlayerName.ToString(); _ui.m_playerHead.m_countText.text = otherInfo.OtherPlayerPopularity.ToString(); } private void UpdateTime(object param = null) { } private void UpdateCountTime(object param = null) { if(_ui.m_countTime.fillAmount <=0) { _ui.m_countTime.fillAmount = 0; _ui.m_countTime.visible = false; isCountTime = false; Timers.inst.Remove(UpdateCountTime); } _ui.m_countTime.fillAmount -= countTimeSpeed; } private void OnClickBtnBack() { ViewManager.GoBackFrom(typeof(MatchingCompetitionUpLoadView).FullName); } private void OnClickBtnUpload() { //先获取两个玩家信息 ViewManager.Show(); } private void OnClickBtnShop() { ViewManager.Show(new object[] { ConstStoreTabId.STORE_GIFT_BAG, ConstStoreSubId.STORE_GIFT_BAG_ACTIVITY }); } private void OnClickBtnMyWorks() { ViewManager.Show(1); } private void OnClickBtnRank() { ViewManager.Show(); } private void OnClickBtnExchange() { if(isCountTime) { PromptController.Instance.ShowFloatTextPrompt("刷新冷却中,请耐心等待!"); return; } isCountTime = true; _ui.m_countTime.visible = true; _ui.m_countTime.fillAmount = 1.0f; Timers.inst.AddUpdate(UpdateCountTime); } private void OnClickBtnLook() { } } }