using System; using System.Collections.Generic; using System.Threading.Tasks; using ET; using FairyGUI; using UI.MatchingCompetition; using UnityEngine; namespace GFGGame { class MatchingCompetitionDetailView : BaseWindow { private UI_MatchingCompetitionDetailUI _ui; private GameObject _sceneObject; private int nameIndex = 0; private List nameList = new List() { "饰品","外套","鞋子","袜子","内搭","上衣","下装","手持物","妆容","道具","背景","拍照" }; private List IdList = new List(); 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_MatchingCompetitionDetailUI.PACKAGE_NAME; _ui = UI_MatchingCompetitionDetailUI.Create(); this.viewCom = _ui.target; isReturnView = true; isfullScreen = true; _ui.m_nameList.itemRenderer = ListItemType1Renderer; _ui.m_dressList.itemRenderer = ListItemType2Render; _ui.m_BtnBack.onClick.Add(OnClickBtnBack); _ui.m_btn.onClick.Add(OnClickBtn); } protected override void AddEventListener() { base.AddEventListener(); } protected override void OnShown() { base.OnShown(); if (_sceneObject == null) { _sceneObject = PrefabManager.Instance.InstantiateSync(ResPathUtil.GetPrefabPath("ScenePhotograph")); MyDressUpHelper.dressUpObj.setSceneObj(_sceneObject, false, false); } UpdateDress(); UpdateView(); } protected override void OnHide() { if (_sceneObject != null) { PrefabManager.Instance.Restore(_sceneObject); _sceneObject = null; } base.OnHide(); } protected override void RemoveEventListener() { base.RemoveEventListener(); } private void UpdateView() { } private async void UpdateDress() { //这里要换成获取其他玩家数据 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] == MatchingCompetitionDataManager.Instance.roleID) { 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"); } } private void ListItemType1Renderer(int index, GObject obj) { UI_ComponentName item = UI_ComponentName.Proxy(obj); item.m_name.text = nameList[index]; if (item.target.data == null) { item.target.onClick.Add(OnClickListType1Item); } item.target.data = index; UI_ComponentName.ProxyEnd(); } private void ListItemType2Render(int index, GObject obj) { UI_MatchingDressItem item = UI_MatchingDressItem.Proxy(obj); ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(IdList[index]); item.m_icon.url = ResPathUtil.GetIconPath(itemCfg.res, "png"); item.m_txtTitle.text = itemCfg.name; UI_MatchingDressItem.ProxyEnd(); } private void OnClickListType1Item(EventContext context) { GObject item = context.sender as GObject; int index = (int)item.data; nameIndex = index; _ui.m_dressList.numItems = IdList.Count; _ui.m_dressList.visible = true; _ui.m_nameList.visible = false; } private void OnClickBtn(EventContext context) { _ui.m_nameList.visible = true; _ui.m_dressList.visible = false; } private void OnClickBtnBack() { ViewManager.GoBackFrom(typeof(MatchingCompetitionDetailView).FullName); } } }