MatchingCompetitionDetailView.cs 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Threading.Tasks;
  4. using ET;
  5. using FairyGUI;
  6. using UI.MatchingCompetition;
  7. using UI.DressUp;
  8. using UnityEngine;
  9. namespace GFGGame
  10. {
  11. class MatchingCompetitionDetailView : BaseWindow
  12. {
  13. private UI_MatchingCompetitionDetailUI _ui;
  14. private GameObject _sceneObject;
  15. private int nameIndex = 0;
  16. private List<string> nameList = new List<string>() { "饰品","外套","鞋子","袜子","内搭","上衣","下装","手持物","妆容","道具","背景","拍照" };
  17. private List<int> IdList = new List<int>();
  18. private List<int> AllIdList = new List<int>();
  19. public override void Dispose()
  20. {
  21. if (_sceneObject != null)
  22. {
  23. PrefabManager.Instance.Restore(_sceneObject);
  24. _sceneObject = null;
  25. }
  26. if (_ui != null)
  27. {
  28. _ui.Dispose();
  29. }
  30. _ui = null;
  31. base.Dispose();
  32. }
  33. protected override void OnInit()
  34. {
  35. base.OnInit();
  36. packageName = UI_MatchingCompetitionDetailUI.PACKAGE_NAME;
  37. _ui = UI_MatchingCompetitionDetailUI.Create();
  38. this.viewCom = _ui.target;
  39. isReturnView = true;
  40. isfullScreen = true;
  41. _ui.m_nameList.itemRenderer = ListType1Item;
  42. _ui.m_dressList.itemRenderer = ListItemType2Render;
  43. _ui.m_BtnBack.onClick.Add(OnClickBtnBack);
  44. _ui.m_btn.onClick.Add(OnClickBtn);
  45. }
  46. protected override void OnShown()
  47. {
  48. base.OnShown();
  49. //if (_sceneObject == null)
  50. //{
  51. // _sceneObject = PrefabManager.Instance.InstantiateSync(ResPathUtil.GetPrefabPath("ScenePhotograph"));
  52. // MyDressUpHelper.dressUpObj.setSceneObj(_sceneObject, false, false);
  53. //}
  54. AllIdList = this.viewData as List<int>;
  55. _ui.m_dressList.visible = false;
  56. UpdateDress();
  57. UpdateView();
  58. }
  59. protected override void OnHide()
  60. {
  61. if (_sceneObject != null)
  62. {
  63. PrefabManager.Instance.Restore(_sceneObject);
  64. _sceneObject = null;
  65. }
  66. base.OnHide();
  67. }
  68. protected override void AddEventListener()
  69. {
  70. base.AddEventListener();
  71. EventAgent.AddEventListener(ConstMessage.DOWNLOAD_FINISH, UpdateDress);
  72. }
  73. protected override void RemoveEventListener()
  74. {
  75. base.RemoveEventListener();
  76. EventAgent.RemoveEventListener(ConstMessage.DOWNLOAD_FINISH, UpdateDress);
  77. }
  78. private void UpdateView()
  79. {
  80. _ui.m_nameList.numItems = DressUpMenuItemCfg1Array.Instance.dataArray.Length - 1;
  81. }
  82. private void UpdateDress()
  83. {
  84. _ui.m_playerImage.texture = MatchingCompetitionDataManager.Instance.DetailNtexture;
  85. ////这里要换成获取其他玩家数据,改成用图片
  86. // MatchingCompetitionDataManager.Instance.itemGameObjs.Clear();
  87. // PhotographDataManager.Instance.itemGameObjs.Clear();
  88. // if (_sceneObject == null)
  89. // {
  90. // _sceneObject = PrefabManager.Instance.InstantiateSync(ResPathUtil.GetPrefabPath("ScenePhotograph"));
  91. // }
  92. // PhotographSceneManager.Instance.sceneObject = _sceneObject;
  93. // if (MatchingCompetitionDataManager.Instance.DressUpBgID == 0)
  94. // {
  95. // PhotographSceneManager.Instance.AddBgItem(ItemCfgArray.Instance.GetCfg(180001));
  96. // }
  97. // else
  98. // {
  99. // PhotographSceneManager.Instance.AddBgItem(ItemCfgArray.Instance.GetCfg(MatchingCompetitionDataManager.Instance.DressUpBgID));
  100. // }
  101. // PhotographSceneManager.Instance.AddBodyItem();
  102. // GameObject bodyParent = _sceneObject.transform.Find("Scene/Role").gameObject;
  103. // PhotographDataManager.Instance.dressUpObj.setSceneObj(_sceneObject, false, true, bodyParent, false, null);
  104. // PhotographDataManager.Instance.dressUpObj.PutOnDressUpData(MatchingCompetitionDataManager.Instance.MathingDressDate);
  105. // //对搭配赛特殊处理
  106. // for (int i = 0; i < MatchingCompetitionDataManager.Instance.DressPropIdList.Count; i++)
  107. // {
  108. // if (MatchingCompetitionDataManager.Instance.DressPropIdList[i] == MatchingCompetitionDataManager.Instance.roleID)
  109. // {
  110. // continue;
  111. // }
  112. // else
  113. // {
  114. // ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(MatchingCompetitionDataManager.Instance.DressPropIdList[i]);
  115. // MatchingCompetitionDataManager.Instance.AddSceneItem(itemCfg, true);
  116. // }
  117. // }
  118. // await Task.Delay(100);
  119. // MatchingCompetitionDataManager.Instance.InsertGameObjectList();
  120. // for (int i = 0; i < MatchingCompetitionDataManager.Instance.TransformDataList.Count; i++)
  121. // {
  122. // TransformData itemdata = MatchingCompetitionDataManager.Instance.TransformDataList[i];
  123. // GameObject itemGObj = MatchingCompetitionDataManager.Instance.itemGameObjs[i];
  124. // MatchingCompetitionDataManager.Instance.itemGameObjs[i].transform.position = itemdata.position;
  125. // MatchingCompetitionDataManager.Instance.itemGameObjs[i].transform.Rotate(itemGObj.transform.eulerAngles.x, itemGObj.transform.eulerAngles.y, itemdata.rotationZ);
  126. // MatchingCompetitionDataManager.Instance.itemGameObjs[i].transform.localScale = itemdata.scale;
  127. // PhotographUtil.Instance.ChangeLayer(MatchingCompetitionDataManager.Instance.itemGameObjs[i], i * PhotographDataManager.layerCount, "up");
  128. // }
  129. }
  130. //private void ListItemType1Renderer(int index, GObject obj)
  131. //{
  132. // UI_ComponentName item = UI_ComponentName.Proxy(obj);
  133. // if(index == DressUpMenuItemCfg1Array.Instance.dataArray.Length - 1)
  134. // {
  135. // item.m_name.text = "拍照";
  136. // }
  137. // else
  138. // {
  139. // item.m_name.text = DressUpMenuItemCfg1Array.Instance.dataArray[index].name;
  140. // }
  141. // if (item.target.data == null)
  142. // {
  143. // item.target.onClick.Add(OnClickListType1Item);
  144. // }
  145. // item.target.data = index;
  146. // UI_ComponentName.ProxyEnd();
  147. //}
  148. private void ListType1Item(int index, GObject item)
  149. {
  150. UI_MatchingTypeItem typeItem = UI_MatchingTypeItem.Proxy(item);
  151. DressUpMenuItemCfg1 item1 = DressUpMenuItemCfg1Array.Instance.dataArray[index];
  152. if(item1.id >= 12)
  153. {
  154. item1 = DressUpMenuItemCfg1Array.Instance.dataArray[index + 1];
  155. }
  156. typeItem.m_icon.url = "ui://MatchingCompetition/hz_fenleitu_" + item1.id;
  157. typeItem.m_txtname.text = item1.name;
  158. //typeItem.m_imgTitle.url = "ui://DressUp/hz_iconzi_" + item1.id;
  159. typeItem.m_imgNeed.visible = false;
  160. typeItem.m_imgNew.visible = false;
  161. if (item.data == null)
  162. {
  163. item.onClick.Add(OnClickListType1Item);
  164. }
  165. item.data = item1;
  166. UI_MatchingTypeItem.ProxyEnd();
  167. }
  168. private void ListItemType2Render(int index, GObject obj)
  169. {
  170. UI_MatchingDressItem item = UI_MatchingDressItem.Proxy(obj);
  171. ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(IdList[index]);
  172. SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(IdList[index]);
  173. if (itemCfg != null)
  174. {
  175. item.m_icon.url = ResPathUtil.GetIconPath(itemCfg.res, "png");
  176. item.m_txtTitle.text = itemCfg.name;
  177. }
  178. else if (suitCfg != null)
  179. {
  180. item.m_icon.url = ResPathUtil.GetIconPath(suitCfg.res, "png");
  181. item.m_txtTitle.text = suitCfg.name;
  182. }
  183. UI_MatchingDressItem.ProxyEnd();
  184. }
  185. private void OnClickListType1Item(EventContext context)
  186. {
  187. GObject item = context.sender as GObject;
  188. DressUpMenuItemCfg1 index = (DressUpMenuItemCfg1)item.data;
  189. IdList.Clear();
  190. foreach (var idItem in AllIdList)
  191. {
  192. ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(idItem);
  193. SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(idItem);
  194. if(itemCfg == null && suitCfg == null)
  195. {
  196. continue;
  197. }
  198. else if(itemCfg != null)
  199. {
  200. if (idItem == 10000 || idItem == 20000 || idItem == 30000 || idItem == 50000 || idItem == 60000)
  201. {
  202. continue;
  203. }
  204. if (index.type != 0)
  205. {
  206. if (itemCfg.subType == index.type)
  207. {
  208. IdList.Add(idItem);
  209. }
  210. }
  211. else
  212. {
  213. foreach (var itemSubMenus in index.subMenusArr)
  214. {
  215. if (DressUpMenuItemCfg2Array.Instance.dataArray[(itemSubMenus - 1)].type == itemCfg.subType)
  216. {
  217. IdList.Add(idItem);
  218. }
  219. }
  220. }
  221. }
  222. else if (index.type == 25 && suitCfg != null)
  223. {
  224. IdList.Add(idItem);
  225. }
  226. }
  227. _ui.m_dressList.numItems = IdList.Count;
  228. _ui.m_dressList.visible = true;
  229. _ui.m_nameList.visible = false;
  230. }
  231. private void OnClickBtn(EventContext context)
  232. {
  233. _ui.m_nameList.visible = true;
  234. _ui.m_dressList.visible = false;
  235. }
  236. private void OnClickBtnBack()
  237. {
  238. ViewManager.GoBackFrom(typeof(MatchingCompetitionDetailView).FullName);
  239. }
  240. }
  241. }