Эх сурвалжийг харах

Merge remote-tracking branch 'remotes/origin/master' into dev

hexiaojie 11 сар өмнө
parent
commit
e0b1c45c90
100 өөрчлөгдсөн 6362 нэмэгдсэн , 39 устгасан
  1. 5 0
      GameClient/Assets/Editor/ToolsMenu.cs
  2. 8 8
      GameClient/Assets/Game/HotUpdate/Constant/ConstCardRarity.cs
  3. 6 0
      GameClient/Assets/Game/HotUpdate/Constant/ConstMessage.cs
  4. 4 0
      GameClient/Assets/Game/HotUpdate/Controller/GameController.cs
  5. 647 0
      GameClient/Assets/Game/HotUpdate/Data/MatchingCompetitionDataManager.cs
  6. 11 0
      GameClient/Assets/Game/HotUpdate/Data/MatchingCompetitionDataManager.cs.meta
  7. 159 0
      GameClient/Assets/Game/HotUpdate/Data/MatchingPhotoHelper.cs
  8. 11 0
      GameClient/Assets/Game/HotUpdate/Data/MatchingPhotoHelper.cs.meta
  9. 232 0
      GameClient/Assets/Game/HotUpdate/Data/MatchingTwoDataManager.cs
  10. 11 0
      GameClient/Assets/Game/HotUpdate/Data/MatchingTwoDataManager.cs.meta
  11. 2 0
      GameClient/Assets/Game/HotUpdate/Data/MiniGameDateManager.cs
  12. 30 3
      GameClient/Assets/Game/HotUpdate/Data/PhotographSceneManager.cs
  13. 17 1
      GameClient/Assets/Game/HotUpdate/Data/PoemPhotoDataManager.cs
  14. 70 0
      GameClient/Assets/Game/HotUpdate/Data/VO/MatchingCompetitionData.cs
  15. 11 0
      GameClient/Assets/Game/HotUpdate/Data/VO/MatchingCompetitionData.cs.meta
  16. 26 0
      GameClient/Assets/Game/HotUpdate/DressUp/DressUpObj.cs
  17. 3 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/InstanceZones/UI_InstanceZonesUI.cs
  18. 3 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Main/UI_StoryDialogUI.cs
  19. 8 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition.meta
  20. 74 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Button3.cs
  21. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Button3.cs.meta
  22. 71 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_ComRewardList.cs
  23. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_ComRewardList.cs.meta
  24. 77 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component1.cs
  25. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component1.cs.meta
  26. 74 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component11.cs
  27. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component11.cs.meta
  28. 72 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component12.cs
  29. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component12.cs.meta
  30. 72 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component13.cs
  31. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component13.cs.meta
  32. 71 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component14.cs
  33. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component14.cs.meta
  34. 71 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component15.cs
  35. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component15.cs.meta
  36. 81 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component2.cs
  37. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component2.cs.meta
  38. 87 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component3.cs
  39. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component3.cs.meta
  40. 89 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component4.cs
  41. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component4.cs.meta
  42. 80 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component5.cs
  43. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component5.cs.meta
  44. 86 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component6.cs
  45. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component6.cs.meta
  46. 86 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionDetailUI.cs
  47. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionDetailUI.cs.meta
  48. 104 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionGatheringUI.cs
  49. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionGatheringUI.cs.meta
  50. 77 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionLookUI.cs
  51. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionLookUI.cs.meta
  52. 99 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionRankUI.cs
  53. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionRankUI.cs.meta
  54. 74 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionRewardItem.cs
  55. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionRewardItem.cs.meta
  56. 90 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionRewardUI.cs
  57. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionRewardUI.cs.meta
  58. 86 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionRuleTips.cs
  59. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionRuleTips.cs.meta
  60. 119 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionSelectUI.cs
  61. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionSelectUI.cs.meta
  62. 117 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionUpLoadUI.cs
  63. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionUpLoadUI.cs.meta
  64. 83 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionWorkListUI.cs
  65. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionWorkListUI.cs.meta
  66. 83 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionWorksUI.cs
  67. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionWorksUI.cs.meta
  68. 77 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingDressItem.cs
  69. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingDressItem.cs.meta
  70. 83 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingTypeItem.cs
  71. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingTypeItem.cs.meta
  72. 6 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/poem/UI_PoemPhotoUI.cs
  73. 1 0
      GameClient/Assets/Game/HotUpdate/ServerProxy/CommonSProxy.cs
  74. 271 0
      GameClient/Assets/Game/HotUpdate/ServerProxy/MatchingCompetitionSproxy.cs
  75. 11 0
      GameClient/Assets/Game/HotUpdate/ServerProxy/MatchingCompetitionSproxy.cs.meta
  76. 1 0
      GameClient/Assets/Game/HotUpdate/Views/CommonGame/RewardView.cs
  77. 44 4
      GameClient/Assets/Game/HotUpdate/Views/DressUp/DressUpView.cs
  78. 246 13
      GameClient/Assets/Game/HotUpdate/Views/DressUp/PhotographView.cs
  79. 39 6
      GameClient/Assets/Game/HotUpdate/Views/InstanceZones/InstanceZonesView.cs
  80. 20 4
      GameClient/Assets/Game/HotUpdate/Views/MainUI/MainUIView.cs
  81. 8 0
      GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition.meta
  82. 260 0
      GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionDetailView.cs
  83. 11 0
      GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionDetailView.cs.meta
  84. 170 0
      GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionGatheringView.cs
  85. 11 0
      GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionGatheringView.cs.meta
  86. 51 0
      GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionLookView.cs
  87. 11 0
      GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionLookView.cs.meta
  88. 135 0
      GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionRankView.cs
  89. 11 0
      GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionRankView.cs.meta
  90. 229 0
      GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionRewardView.cs
  91. 11 0
      GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionRewardView.cs.meta
  92. 89 0
      GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionRuleTipsView.cs
  93. 11 0
      GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionRuleTipsView.cs.meta
  94. 408 0
      GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionSelectView.cs
  95. 11 0
      GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionSelectView.cs.meta
  96. 332 0
      GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionUpLoadView.cs
  97. 11 0
      GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionUpLoadView.cs.meta
  98. 108 0
      GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionWorkListView.cs
  99. 11 0
      GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionWorkListView.cs.meta
  100. 101 0
      GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionWorksView.cs

+ 5 - 0
GameClient/Assets/Editor/ToolsMenu.cs

@@ -197,6 +197,11 @@ namespace GFGEditor
         public static void ImportExcel()
         {
             Log.ILog = new UnityLogger();
+            //清除缓存  
+            if (File.Exists(ExcelConfig.excelsCacheFolderPath))
+            {
+                File.Delete(ExcelConfig.excelsCacheFolderPath);
+            }
             ET.Options.Instance = new ET.Options();
             //清除缓存  
             

+ 8 - 8
GameClient/Assets/Game/HotUpdate/Constant/ConstCardRarity.cs

@@ -3,7 +3,7 @@ using UnityEngine;
 
 namespace GFGGame
 {
-    public class ConstCardRarity 
+    public class ConstCardRarity_Type 
     {
 
         public const int Rarity_TIAN = 4;
@@ -22,15 +22,15 @@ namespace GFGGame
 
         public static SortedList CardRarityList()
         {
-            if (ConstCardRarity._cardRarityList == null)
+            if (ConstCardRarity_Type._cardRarityList == null)
             {
-                ConstCardRarity._cardRarityList = new SortedList();
-                ConstCardRarity._cardRarityList.Add(ConstCardRarity.Rarity_HUANG, ConstCardRarity.TITLE_HUANG);
-                ConstCardRarity._cardRarityList.Add(ConstCardRarity.Rarity_XUAN, ConstCardRarity.TITLE_XUAN);
-                ConstCardRarity._cardRarityList.Add(ConstCardRarity.Rarity_DI, ConstCardRarity.TITLE_DI);
-                ConstCardRarity._cardRarityList.Add(ConstCardRarity.Rarity_TIAN, ConstCardRarity.TITLE_TIAN);
+                ConstCardRarity_Type._cardRarityList = new SortedList();
+                ConstCardRarity_Type._cardRarityList.Add(ConstCardRarity_Type.Rarity_HUANG, ConstCardRarity_Type.TITLE_HUANG);
+                ConstCardRarity_Type._cardRarityList.Add(ConstCardRarity_Type.Rarity_XUAN, ConstCardRarity_Type.TITLE_XUAN);
+                ConstCardRarity_Type._cardRarityList.Add(ConstCardRarity_Type.Rarity_DI, ConstCardRarity_Type.TITLE_DI);
+                ConstCardRarity_Type._cardRarityList.Add(ConstCardRarity_Type.Rarity_TIAN, ConstCardRarity_Type.TITLE_TIAN);
             }
-            return ConstCardRarity._cardRarityList;
+            return ConstCardRarity_Type._cardRarityList;
         }
     }
 }

+ 6 - 0
GameClient/Assets/Game/HotUpdate/Constant/ConstMessage.cs

@@ -256,5 +256,11 @@ namespace GFGGame
         public const string COLLEGE_UPGRADE = "COLLEGE_UPGRADE";
         //兑换成功
         public const string EXCHANGE_SUCCESS = "EXCHANGE_SUCCESS";
+        //搭配赛状态改变
+        public const string MATCHING_STATUSCHANGE = "MATCHING_STATUSCHANGE";
+        //爬塔开始挑战
+        public const string FieldWork_STARTCHANGE = "FieldWork_STARTCHANGE";
+        //奖励界面关闭
+        public const string REWARDVIEW_CLOTHER = "REWARDVIEW_CLOTHER";
     }
 }

+ 4 - 0
GameClient/Assets/Game/HotUpdate/Controller/GameController.cs

@@ -226,6 +226,7 @@ namespace GFGGame
             await ActivitySProxy.GetTipsStatus();
             await ActivitySProxy.GetOnceStatus(ActivityDataManager.Instance.activityZCJBId);
             await RoleInfoSProxy.GetThemeID();
+            await MatchingCompetitionSproxy.ReqMatchingCompetitionInfo();
 
             FieldDataManager.Instance.waitToShowFieldFightEndView = false;
             bool result = await FieldSProxy.ReqFieldInstanceInfos();
@@ -262,6 +263,7 @@ namespace GFGGame
             TimeTracingSProxy.ReqGetSuitRewardStatus().Coroutine();
             TimeTracingSProxy.ReqGetDataRecord().Coroutine();
             PoemPhotoSProxy.ReqAllPhotoInfos().Coroutine();
+            MatchingCompetitionSproxy.ReqMatchingPhotoData().Coroutine();
             TravelSProxy.ReqTravelInfo().Coroutine();
             TravelSProxy.ReqTravelGuideInfo().Coroutine();
             PoemGallerySProxy.ReqGalleryTheme().Coroutine();
@@ -366,6 +368,8 @@ namespace GFGGame
             FightDataManager.Instance.Clear();
             MainDataManager.Instance.Clear();
             NewYearRedEnvelopeDataManager.Instance.Clear();
+            MatchingCompetitionDataManager.Instance.MyNtextture = null;
+            MatchingCompetitionDataManager.Instance.MathingDressDate.bgId = 0;
             GameGlobal.zoneScene.GetComponent<SessionComponent>()?.Disconnect();
             GameGlobal.zoneScene.GetComponent<ServerInfosComponent>()?.ServerInfoList?.Clear();
             GameGlobal.zoneScene.GetComponent<AccountInfoComponent>()?.Clear();

+ 647 - 0
GameClient/Assets/Game/HotUpdate/Data/MatchingCompetitionDataManager.cs

@@ -0,0 +1,647 @@
+using ET;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Text.RegularExpressions;
+using UnityEngine;
+using Live2D.Cubism.Rendering;
+using FairyGUI;
+using UI.MatchingCompetition;
+
+namespace GFGGame
+{
+    class MatchingCompetitionDataManager : SingletonBase<MatchingCompetitionDataManager>
+    {
+        ////搭配赛标记
+        //public int type = 2;
+        //位置信息数据索引
+        public int indexRoleData = 0;
+        //人物位置信息
+        public TransformData roleTransFormData = new TransformData();
+        public GameObject roleGameobj;
+        public string roleID = "Role";
+        //*********************搭配数据*********************************
+        //需要传输的数据:MathingDressDate,DressUpBgID,DressPropIdList,TransformDataList,
+        public DressUpData MathingDressDate = DressUpData.CreateDefault();
+        public int DressUpBgID = 0;
+        //*****这两个id放列表的最后面
+        //边框id
+        public int BorderID = 0;
+        //NpcId
+        public int NpcID = 0;
+        //*************=**************
+        //道具数据,一一对应
+        //场景名字,自己搭配的数据
+        public List<string> DressPropNameList = new List<string>();
+        //道具id
+        //public List<int> DressPropIdList = new List<int>();
+        //道具索引
+        public int DressPropIndex = 0;
+        //道具索引字典
+        public Dictionary<string, TransformData> DressPropTransInfoDic = new Dictionary<string, TransformData>();
+        //道具位置信息
+        public List<TransformData> TransformDataList = new List<TransformData>();
+        public List<GameObject> itemGameObjs = new List<GameObject>();
+
+        //所有信息的列表,用于前后端交互
+        public List<CollocationInfo> AllDressIDInfoList = new List<CollocationInfo>();
+        //public List<int> _equipSceneData = new List<int>();//当前穿戴的场景数据(从套装获得)
+        //***************************************************************
+
+        public int MatchingCompetitionSeason = 1;
+        public int MatchingState = 1;
+        public long MatchingEndTimes = 0;
+        public long WorksID = 0;
+        public string TempPictureUrl = "";
+        public int MatchingRemainingTimes = 1;
+        public MyWorksIdInfo myWorks = new MyWorksIdInfo();
+        public List<ItemInfoProto> SpecialBonusList = new List<ItemInfoProto>();
+        /// <summary>
+        /// 搭配赛相册
+        /// </summary>
+        /// <typeparam name="PoemPhotoData"></typeparam>
+        /// <returns></returns>
+        public List<PoemPhotoData> MatchingPhotoInfos = new List<PoemPhotoData>();
+        //角色详情界面图片信息
+        public NTexture DetailNtexture;
+        //自己的搭配图片
+        public NTexture MyNtextture;
+        public byte[] MyBytes;
+        //本期排行榜数据
+        public List<MatchingPhotoWorksData> _currentRankList = new List<MatchingPhotoWorksData>();
+        //往期作品集
+        public List<MatchingWorksData> _BeforeWorksList = new List<MatchingWorksData>();
+        //往期排行榜数据
+        public List<MatchingPhotoWorksData> _BeforeRankList = new List<MatchingPhotoWorksData>();
+
+        //根据时间判断:1:集结期 2:评选期  3;结算期
+        //public int CheckCompetitionState()
+        //{
+        //    long currentTime = TimeHelper.ServerNow();
+        //    DateTime dateTime = DateTimeOffset.FromUnixTimeSeconds(currentTime).DateTime;
+        //    // 获取星期几
+        //    DayOfWeek dayOfWeek = dateTime.DayOfWeek;
+        //    int week = (int)dayOfWeek;
+        //    int hour = dateTime.Hour;
+        //    if(week == 0)
+        //    {
+        //        if(hour >= 21)
+        //        {
+        //            return 3;
+        //        }
+        //        else
+        //        {
+        //            return 2;
+        //        }
+        //    }
+        //    if(week <= 3 && week >= 1)
+        //    {
+        //        if(week == 3 && hour >= 5)
+        //        {
+        //            return 2;
+        //        }
+        //        if(week == 1 && hour < 5)
+        //        {
+        //            return 3;
+        //        }
+        //        return 1;
+        //    }
+        //    else if(week > 3 && week <= 6)
+        //    {
+        //        return 2;
+        //    }
+        //    return -1;
+        //}
+
+        public void ConvertInfoToList()
+        {
+            //将所有需要存储的信息转换成list
+            AllDressIDInfoList.Clear();
+            foreach(var item in MathingDressDate.itemList)
+            {
+                CollocationInfo itemInfo = new CollocationInfo();
+                itemInfo.ItemId = item.ToString();
+                itemInfo.ClientPosition = "";
+                AllDressIDInfoList.Add(itemInfo);
+            }
+            foreach (var item in DressPropTransInfoDic)
+            {
+                CollocationInfo itemInfo = new CollocationInfo();
+                itemInfo.ItemId = item.Key;
+                string transStr = item.Value.position.x.ToString() + "_" + item.Value.position.y.ToString() + "_"
+                    + item.Value.position.z.ToString()
+                   + "_" + item.Value.rotationZ.ToString()
+                   + "_" + item.Value.scale.x.ToString() + "_" +
+                   item.Value.scale.y.ToString() + "_" + item.Value.scale.z.ToString();
+                itemInfo.ClientPosition = transStr;
+                AllDressIDInfoList.Add(itemInfo);
+            }
+            //for(int i = 0;i< DressPropIdList.Count;i++)
+            //{
+            //    CollocationInfo itemInfo = new CollocationInfo();
+            //    itemInfo.ItemId = DressPropIdList[i];
+            //    string transStr = TransformDataList[i].position.x.ToString()+"_" + TransformDataList[i].position.y.ToString() + "_" 
+            //        + TransformDataList[i].position.z.ToString()
+            //       + "_" + TransformDataList[i].rotationZ.ToString()
+            //       + "_" + TransformDataList[i].scale.x.ToString() + "_" + 
+            //       TransformDataList[i].scale.y.ToString() + "_" + TransformDataList[i].scale.z.ToString();
+            //    itemInfo.ClientPosition = transStr;
+            //    AllDressIDInfoList.Add(itemInfo);
+            //}
+            CollocationInfo itemBgInfo = new CollocationInfo();
+            itemBgInfo.ItemId = MatchingCompetitionDataManager.Instance.DressUpBgID.ToString();
+            itemBgInfo.ClientPosition = "";
+            AllDressIDInfoList.Add(itemBgInfo);
+            CollocationInfo itemActionInfo = new CollocationInfo();
+            itemActionInfo.ItemId = MatchingCompetitionDataManager.Instance.MathingDressDate.actionId.ToString();
+            itemActionInfo.ClientPosition = "";
+            AllDressIDInfoList.Add(itemActionInfo);
+        }
+        //解析后台获取的信息
+        public void AnalysisInfoToList()
+        {
+            List<int> dressitemIDList = new List<int>();
+            List<int> propIDList = new List<int>();
+            List<TransformData> transDataList = new List<TransformData>();
+            DressUpBgID = 180001;
+            MathingDressDate.bgId = 180001;
+            MathingDressDate.actionId = 0;
+            DressPropTransInfoDic.Clear();
+            for (int i = 0; i < AllDressIDInfoList.Count; i++)
+            {
+                if(AllDressIDInfoList[i].ItemId == roleID)
+                {
+                    //propIDList.Add(AllDressIDInfoList[i].ItemId);
+                    //transDataList.Add(AnalysisStringToTransform(AllDressIDInfoList[i].ClientPosition));
+                    DressPropTransInfoDic.Add(AllDressIDInfoList[i].ItemId.ToString(), AnalysisStringToTransform(AllDressIDInfoList[i].ClientPosition));
+                }
+                else
+                {
+                    ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(GetIDByString(AllDressIDInfoList[i].ItemId));
+                    if (itemCfg != null && itemCfg.itemType == ConstItemType.DRESS_UP)
+                    {
+                        if(itemCfg.subType == 19 || itemCfg.subType == 17 || itemCfg.subType == 21|| itemCfg.subType == 22)
+                        {
+                            //记录道具和位置信息
+                            //propIDList.Add(GetIDByString(AllDressIDInfoList[i].ItemId));
+                            //transDataList.Add(AnalysisStringToTransform(AllDressIDInfoList[i].ClientPosition));
+                            if(GetIDListByString(AllDressIDInfoList[i].ItemId).Count > 1)
+                            {
+                                DressPropTransInfoDic.Add(AllDressIDInfoList[i].ItemId.ToString(), AnalysisStringToTransform(AllDressIDInfoList[i].ClientPosition));
+                            }                           
+                        }
+                        else if (itemCfg != null && itemCfg.subType == ConstDressUpItemType.BEI_JING)
+                        {
+                            DressUpBgID = itemCfg.id;
+                            MathingDressDate.bgId = itemCfg.id;
+                        }
+                        else
+                        {
+                            dressitemIDList.Add(GetIDByString(AllDressIDInfoList[i].ItemId));
+                        }    
+                    }
+                    else if (itemCfg != null && itemCfg.itemType == ConstItemType.PHOTOGRAPH)
+                    {
+                        //记录道具和位置信息
+                        //propIDList.Add(GetIDByString(AllDressIDInfoList[i].ItemId));
+                        //transDataList.Add(AnalysisStringToTransform(AllDressIDInfoList[i].ClientPosition));
+                        DressPropTransInfoDic.Add(AllDressIDInfoList[i].ItemId.ToString(), AnalysisStringToTransform(AllDressIDInfoList[i].ClientPosition));
+                    }
+                    else if(itemCfg == null)
+                    {
+                        SuitCfg actionId = SuitCfgArray.Instance.GetCfg(GetIDByString(AllDressIDInfoList[i].ItemId));
+                        if(actionId !=null)
+                        {
+                            MathingDressDate.actionId = GetIDByString(AllDressIDInfoList[i].ItemId);
+                        }   
+                    }
+                }
+            }
+            MathingDressDate.itemList = dressitemIDList;
+            //DressPropIdList = propIDList;
+            //TransformDataList = transDataList;
+        }
+        public TransformData AnalysisStringToTransform(string strTrans)
+        {
+            TransformData transData = new TransformData();
+            string[] parts = Regex.Split(strTrans, "_");
+            if(parts.Length > 6)
+            {
+                transData.position.x = float.Parse(parts[0]);
+                transData.position.y = float.Parse(parts[1]);
+                transData.position.z = float.Parse(parts[2]);
+                transData.rotationZ = float.Parse(parts[3]);
+                transData.scale.x = float.Parse(parts[4]);
+                transData.scale.y = float.Parse(parts[5]);
+                transData.scale.z = float.Parse(parts[6]);
+            }
+            return transData;
+        }
+        //存储道具信息
+        public void SetTransformData()
+        {
+            DressPropNameList.Clear();
+            TransformDataList.Clear();
+            DressPropTransInfoDic.Clear();
+            for (int i =0;i<itemGameObjs.Count;i++)
+            {
+                TransformData itemData = new TransformData();
+                if (itemGameObjs[i].name == "Role")
+                {
+                    roleTransFormData.position = itemGameObjs[i].transform.position;
+                    roleTransFormData.rotationZ = itemGameObjs[i].transform.eulerAngles.z;
+                    roleTransFormData.scale = itemGameObjs[i].transform.localScale;
+                    TransformDataList.Add(roleTransFormData);
+                    DressPropNameList.Add(itemGameObjs[i].name);
+                }
+                else
+                {
+                    itemData.position = itemGameObjs[i].transform.position;
+                    itemData.rotationZ = itemGameObjs[i].transform.eulerAngles.z;
+                    itemData.scale = itemGameObjs[i].transform.localScale;
+                    TransformDataList.Add(itemData);
+                    DressPropNameList.Add(itemGameObjs[i].name);
+                }
+                DressPropTransInfoDic.Add(itemGameObjs[i].name, itemData);
+            }
+            //SetNameToIdList();
+        }
+        public int GetIDByString(string name)
+        {
+            int id = 0;
+            //使用正则表达式分割字符串
+            string[] parts = Regex.Split(name, "_");
+            if(parts.Length > 0)
+            {
+                if(parts[0] == "Role")
+                {
+                    return -1;
+                }
+                id = int.Parse(parts[0]);
+            }
+            return id;
+        }
+        public List<int> GetIDListByString(string name)
+        {
+            List<int> idList = new List<int>();
+            string[] parts = Regex.Split(name, "_");
+            foreach(string id in parts)
+            {
+                idList.Add(int.Parse(id));
+            }
+            return idList;
+        }
+        //将名字转换成道具id
+        //public void SetNameToIdList()
+        //{
+        //    //DressPropIdList.Clear();
+        //    int flog_prefix = 0;
+        //    int flog_suffix = 0;
+        //    for (int i = 0; i < DressPropNameList.Count; i++)
+        //    {
+        //        bool containsUnderscore = Regex.IsMatch(DressPropNameList[i], "_");
+        //        if(!containsUnderscore)
+        //        {
+        //            if (DressPropNameList[i] == "Role")
+        //            {
+        //                DressPropIdList.Add(roleID);
+        //            }
+        //            else if (DressPropNameList[i] == "Border")
+        //            {
+        //                if (BorderID != 0)
+        //                {
+        //                    DressPropIdList.Add(BorderID);
+        //                }
+        //            }
+        //            else if (DressPropNameList[i] == "Npc")
+        //            {
+        //                if (NpcID != 0)
+        //                {
+        //                    DressPropIdList.Add(NpcID);
+        //                }
+        //            }
+        //        }
+        //        else
+        //        {
+        //            // 使用正则表达式分割字符串
+        //            string[] parts = Regex.Split(DressPropNameList[i], "_");
+        //            int partID = int.Parse(parts[0]);
+        //            if(flog_prefix == int.Parse(parts[0]))
+        //            {
+        //                if((flog_suffix == 3 && int.Parse(parts[1]) == 1)|| (flog_suffix == 1 && int.Parse(parts[1]) == 3))
+        //                {
+        //                    flog_prefix = 0;
+        //                    flog_suffix = 0;
+        //                    continue;
+        //                }
+        //                if ((flog_suffix == 2 && int.Parse(parts[1]) == 1) || (flog_suffix == 1 && int.Parse(parts[1]) == 2))
+        //                {
+        //                    flog_prefix = 0;
+        //                    flog_suffix = 0;
+        //                    continue;
+        //                }
+        //            }
+        //            flog_prefix = int.Parse(parts[0]);
+        //            flog_suffix = int.Parse(parts[1]);   
+        //            DressPropIdList.Add(partID);
+        //        }
+        //    }
+        //}
+        //将穿戴数据分类
+        //public void ClassifyEquipData()
+        //{
+        //    _equipSceneData.Clear();
+        //    PhotographDataManager.Instance.dressUpObj = new DressUpObj();
+        //    //for (int i = 0; i < MathingDressDate.itemList.Count; i++)
+        //    //{
+        //    //    int itemId = MathingDressDate.itemList[i];
+        //    //    if (DressUpMenuItemCfg1Array.Instance.CheckIsSceneType(itemId, false))
+        //    //    {
+        //    //        if (!_equipSceneData.ContainsKey(itemId))
+        //    //        {
+        //    //            _equipSceneData.Add(itemId, new List<int>());
+        //    //        }
+        //    //        _equipSceneData[itemId].Add(itemId);
+        //    //    }
+        //    //}
+        //    for(int i =0;i<DressPropIdList.Count;i++)
+        //    {
+        //        int itemId = DressPropIdList[i];
+        //        if (DressUpMenuItemCfg1Array.Instance.CheckIsSceneType(itemId, false))
+        //        {
+        //            _equipSceneData.Add(itemId);
+        //        }
+        //    }
+        //}
+        public void InsertGameObjectList()
+        {
+            int i = 0;
+            foreach(var item in DressPropTransInfoDic)
+            {
+                i++;
+                if (item.Key == roleID)
+                {
+                    indexRoleData = i;
+                    break;
+                }
+                indexRoleData = i;
+            }
+            if(itemGameObjs.Count ==0)
+            {
+                itemGameObjs.Add(roleGameobj);
+            }
+            else
+            {
+                if (indexRoleData > itemGameObjs.Count)
+                {
+                    itemGameObjs.Add(roleGameobj);
+                }
+                else
+                {
+                    itemGameObjs.Insert(indexRoleData, roleGameobj);
+                }
+            }  
+        }
+        public void SetNumToRank(int index,UI_Component4 rankCom)
+        {
+            int c1 = 0;
+            int c2 = 0;
+            if(index<=3&& index >=1)
+            {
+                c2 = index;
+            }
+            if (index > 3 && index <= 9)
+            {
+                c1 = 0;
+            }
+            else if(index >9 && index <= 50)
+            {
+                c1 = 1;
+            }
+            else
+            {
+                c1 = 2;
+            }
+            rankCom.m_c1.selectedIndex = c1;
+            rankCom.m_c2.selectedIndex = c2;
+            if(c1 == 0)
+            {
+                rankCom.m_num3.url = string.Format("ui://MatchingCompetition/{0}",index.ToString());
+            }
+            else if(c1 == 1)
+            {
+                int one = index / 10;
+                int two = index % 10;
+                rankCom.m_num1.url = string.Format("ui://MatchingCompetition/{0}", one.ToString());
+                rankCom.m_num2.url = string.Format("ui://MatchingCompetition/{0}", two.ToString());
+            }
+            else
+            {
+                if (index == 0)
+                {
+                    rankCom.m_RankText.text = "--";
+                }
+                else
+                {
+                    for (int i = 11; i < JudgingRoundRewardCfgArray.Instance.dataArray.Length-1; i++)
+                    {
+                        JudgingRoundRewardCfg judgingCfg = JudgingRoundRewardCfgArray.Instance.GetCfg(i);
+                        JudgingRoundRewardCfg judgingNextCfg = JudgingRoundRewardCfgArray.Instance.GetCfg(i+1);
+                        if (index >= judgingCfg.rank && index < judgingNextCfg.rank)
+                        {
+                            rankCom.m_RankText.text = judgingNextCfg.desc;
+                        }
+                        else
+                        {
+                            rankCom.m_RankText.text = index.ToString();
+                        }
+                    }
+                }
+                
+            }
+
+        }
+        public async void AddSceneItem(ItemCfg itemCfg, bool setLayer,int isLeft = 0)
+        {
+            Vector3 pos = Vector3.zero;
+            if (!string.IsNullOrEmpty(itemCfg.resLayer3))
+            {
+                DressPropIndex++;
+                GameObject parentGameObj3 = new GameObject(string.Format("{0}_{1}_{2}", itemCfg.id, 3,DressPropIndex));
+                await PhotographSceneManager.Instance.AddSceneItem(parentGameObj3, itemCfg, 3, setLayer,false,isLeft);
+                if (setLayer)
+                {
+                    if (parentGameObj3.transform.childCount > 0)
+                    {
+                        parentGameObj3.transform.localPosition = -parentGameObj3.transform.GetChild(0).localPosition;
+                        pos = parentGameObj3.transform.localPosition;
+                    }
+                }
+            }
+            if (!string.IsNullOrEmpty(itemCfg.resLayer2))
+            {
+                DressPropIndex++;
+                GameObject parentGameObj2 = new GameObject(string.Format("{0}_{1}_{2}", itemCfg.id, 2,DressPropIndex));
+                await PhotographSceneManager.Instance.AddSceneItem(parentGameObj2, itemCfg, 2, setLayer,false, isLeft);
+                if (setLayer)
+                {
+                    if (parentGameObj2.transform.childCount > 0)
+                    {
+                        parentGameObj2.transform.localPosition = pos == Vector3.zero ? -parentGameObj2.transform.GetChild(0).localPosition : pos;
+                        pos = parentGameObj2.transform.localPosition;
+                    }
+
+                }
+            }
+            if (!string.IsNullOrEmpty(itemCfg.resLayer1))
+            {
+                DressPropIndex++;
+                GameObject parentGameObj1 = new GameObject(string.Format("{0}_{1}_{2}", itemCfg.id, 1, DressPropIndex));
+                await PhotographSceneManager.Instance.AddSceneItem(parentGameObj1, itemCfg, 1, setLayer, false, isLeft);
+
+                if (setLayer)
+                {
+                    if (parentGameObj1.transform.childCount > 0)
+                    {
+                        parentGameObj1.transform.localPosition = pos == Vector3.zero ? -parentGameObj1.transform.GetChild(0).localPosition : pos;
+                        pos = parentGameObj1.transform.localPosition;
+                    }
+
+                }
+            }
+        }
+        public async void AddSceneItemOne(ItemCfg itemCfg, int layer,int index, int isLeft = 0, bool setLayer = true)
+        {
+            Vector3 pos = Vector3.zero;
+            if(DressPropIndex <= index)
+            {
+                DressPropIndex = index + 1;
+            }
+            GameObject parentGameObj3 = new GameObject(string.Format("{0}_{1}_{2}", itemCfg.id, layer, index));
+            await PhotographSceneManager.Instance.AddSceneItem(parentGameObj3, itemCfg, layer, setLayer, false, isLeft);
+            if (setLayer)
+            {
+                if (parentGameObj3.transform.childCount > 0)
+                {
+                    parentGameObj3.transform.localPosition = -parentGameObj3.transform.GetChild(0).localPosition;
+                    pos = parentGameObj3.transform.localPosition;
+                }
+            }
+        }
+
+        public void OnClickBtnRule()
+        {
+            ViewManager.Show<MatchingCompetitionRuleTipsView>();
+        }
+    }
+
+    class MatchingOneDataManager : SingletonBase<MatchingOneDataManager>
+    {
+        //其他玩家信息用于展示
+        public MatchingPhotoWorksData OneRoleInfo = new MatchingPhotoWorksData();
+        //人物位置信息
+        public TransformData roleTransFormData = new TransformData();
+        public GameObject roleGameobj;
+        public string roleID = "Role";
+        //*********************搭配数据*********************************
+        //需要传输的数据:MathingDressDate,DressUpBgID,DressPropIdList,TransformDataList,
+        public DressUpData MathingDressDate = DressUpData.CreateDefault();
+        public int DressUpBgID = 0;
+        //*****这两个id放列表的最后面
+        //边框id
+        public int BorderID = 0;
+        //NpcId
+        public int NpcID = 0;
+        //道具数据,一一对应
+        //道具id
+        //public List<int> DressPropIdList = new List<int>();
+        //道具位置信息
+        public List<TransformData> TransformDataList = new List<TransformData>();
+        //道具索引
+        public int DressPropIndex = 0;
+        //道具索引字典
+        public Dictionary<string, TransformData> DressPropTransInfoDic = new Dictionary<string, TransformData>();
+        public List<GameObject> itemGameObjs = new List<GameObject>();
+        //***************************************************************
+        //解析后台获取的信息
+        public void AnalysisInfoToList()
+        {
+            List<int> dressitemIDList = new List<int>();
+            List<int> propIDList = new List<int>();
+            List<TransformData> transDataList = new List<TransformData>();
+            DressPropTransInfoDic.Clear();
+            for (int i = 0; i < OneRoleInfo.JudgingInfo.CollocationInfoList.Count; i++)
+            {
+                CollocationInfo colloctItemInfo = OneRoleInfo.JudgingInfo.CollocationInfoList[i];
+                if (colloctItemInfo.ItemId == roleID)
+                {
+                    //propIDList.Add(colloctItemInfo.ItemId);
+                    //transDataList.Add(MatchingCompetitionDataManager.Instance.AnalysisStringToTransform(colloctItemInfo.ClientPosition));
+                    DressPropTransInfoDic.Add(colloctItemInfo.ItemId, MatchingCompetitionDataManager.Instance.AnalysisStringToTransform(colloctItemInfo.ClientPosition));
+                }
+                else
+                {
+                    ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(MatchingCompetitionDataManager.Instance.GetIDByString( colloctItemInfo.ItemId));
+                    if (itemCfg != null && itemCfg.itemType == ConstItemType.DRESS_UP)
+                    {
+                        if (itemCfg.subType == 19 || itemCfg.subType == 17 || itemCfg.subType == 21 || itemCfg.subType == 22)
+                        {
+                            //记录道具和位置信息
+                            //propIDList.Add(colloctItemInfo.ItemId);
+                            //transDataList.Add(MatchingCompetitionDataManager.Instance.AnalysisStringToTransform(colloctItemInfo.ClientPosition));
+                            DressPropTransInfoDic.Add(colloctItemInfo.ItemId, MatchingCompetitionDataManager.Instance.AnalysisStringToTransform(colloctItemInfo.ClientPosition));
+                        }
+                        else if (itemCfg != null && itemCfg.subType == ConstDressUpItemType.BEI_JING)
+                        {
+                            DressUpBgID = itemCfg.id;
+                        }
+                        else
+                        {
+                            dressitemIDList.Add(MatchingCompetitionDataManager.Instance.GetIDByString(colloctItemInfo.ItemId));
+                        }
+                    }
+                    else if (itemCfg != null && itemCfg.itemType == ConstItemType.PHOTOGRAPH)
+                    {
+                        //记录道具和位置信息
+                        //propIDList.Add(colloctItemInfo.ItemId);
+                        //transDataList.Add(MatchingCompetitionDataManager.Instance.AnalysisStringToTransform(colloctItemInfo.ClientPosition));
+                        DressPropTransInfoDic.Add(colloctItemInfo.ItemId, MatchingCompetitionDataManager.Instance.AnalysisStringToTransform(colloctItemInfo.ClientPosition));
+                    }
+                }
+            }
+            MathingDressDate.itemList = dressitemIDList;
+            MathingDressDate.actionId = OneRoleInfo.JudgingInfo.ActionId;
+            //DressPropIdList = propIDList;
+            //TransformDataList = transDataList;
+            DressUpBgID = OneRoleInfo.JudgingInfo.BagId;
+        }
+        public void InsertGameObjectList()
+        {
+            int indexRoleData = 0;
+            int i = 0;
+            foreach (var item in DressPropTransInfoDic)
+            {
+                i++;
+                if (item.Key == roleID)
+                {
+                    indexRoleData = i;
+                }
+            }
+            if (itemGameObjs.Count == 0)
+            {
+                itemGameObjs.Add(roleGameobj);
+            }
+            else
+            {
+                if (indexRoleData > itemGameObjs.Count)
+                {
+                    itemGameObjs.Add(roleGameobj);
+                }
+                else
+                {
+                    itemGameObjs.Insert(indexRoleData, roleGameobj);
+                }
+            }
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Data/MatchingCompetitionDataManager.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: cd7570cf08cec3a44b037069506b7277
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 159 - 0
GameClient/Assets/Game/HotUpdate/Data/MatchingPhotoHelper.cs

@@ -0,0 +1,159 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.IO;
+using System.Net;
+using System.Net.Http;
+using System.Threading.Tasks;
+using ET;
+using FairyGUI;
+using UnityEngine;
+using UnityEngine.Networking;
+
+namespace GFGGame
+{
+    public static class MatchingPhotoHelper
+    {
+        //将图片上传到华为云
+        public static async Task<bool> PushToHWCloud(string signUrl, byte[] buffer)
+        {
+
+            HttpContent content = new ByteArrayContent(buffer);
+            HttpClient httpClient = new HttpClient(new HttpClientHandler() { UseCookies = false });
+            HttpResponseMessage response = await httpClient.PutAsync(signUrl, content);
+            response.EnsureSuccessStatusCode();
+            await response.Content.ReadAsStreamAsync();
+            if (response.StatusCode != HttpStatusCode.OK)
+            {
+                ViewManager.Hide<ModalStatusView>();
+                PromptController.Instance.ShowFloatTextPrompt("上传资源失败");
+                return false;
+            }
+            else
+            {
+                return true;
+            }
+
+        }
+
+
+        public static IEnumerator Download(List<MatchingPhotoWorksData> list)
+        {
+            for (int i = 0; i < list.Count; i++)
+            {
+                MatchingPhotoWorksData data = list[i];
+                if (data == null || data.Ntexture != null) continue;
+                int count = 0;
+                yield return DownloadPicture(data, count);
+            }
+            ET.Log.Debug("Download  finish!!!");
+            EventAgent.DispatchEvent(ConstMessage.DOWNLOAD_FINISH);
+        }
+        public static IEnumerator Download(List<MatchingWorksData> list)
+        {
+            for (int i = 0; i < list.Count; i++)
+            {
+                MatchingWorksData data = list[i];
+                if (data == null || data.Ntexture != null) continue;
+                int count = 0;
+                yield return DownloadPicture(data, count);
+            }
+            ET.Log.Debug("Download  finish!!!");
+            EventAgent.DispatchEvent(ConstMessage.DOWNLOAD_FINISH);
+        }
+        public static IEnumerator Download(MatchingPhotoWorksData list)
+        {
+                MatchingPhotoWorksData data = list;
+                yield return DownloadPicture(data, 1);
+            ET.Log.Debug("Download  finish!!!");
+            EventAgent.DispatchEvent(ConstMessage.DOWNLOAD_FINISH);
+        }
+
+        private static IEnumerator DownloadPicture(MatchingPhotoWorksData data, int count)
+        {
+            if (count >= 3)
+            {
+                PromptController.Instance.ShowFloatTextPrompt("下载失败");
+                ET.Log.Error("PoemPhotoData Download  failed!!! data:" + JsonUtility.ToJson(data));
+                data.Ntexture = null;
+                ViewManager.Hide<ModalStatusView>();
+                yield break;
+            }
+            using (UnityWebRequest request = UnityWebRequestTexture.GetTexture(data.JudgingInfo.PictureTempUrl))
+            {
+                yield return request.SendWebRequest();
+                if (request.result == UnityWebRequest.Result.ProtocolError || request.result == UnityWebRequest.Result.ConnectionError)
+                {
+                    ET.Log.Error("Download  failed, error code:" + request.result, ",data:" + JsonUtility.ToJson(data));
+                    count += 1;
+                    yield return DownloadPicture(data, count);
+                }
+                else
+                {
+                    Texture2D texture = (request.downloadHandler as DownloadHandlerTexture).texture;
+                    data.Ntexture = new NTexture(texture);
+                    data.Bytes = texture.EncodeToJPG();
+                }
+            }
+        }
+            private static IEnumerator DownloadPicture(MatchingWorksData data, int count)
+            {
+                if (count >= 3)
+                {
+                    PromptController.Instance.ShowFloatTextPrompt("下载失败");
+                    ET.Log.Error("PoemPhotoData Download  failed!!! data:" + JsonUtility.ToJson(data));
+                    data.Ntexture = null;
+                    ViewManager.Hide<ModalStatusView>();
+                    yield break;
+                }
+                using (UnityWebRequest request = UnityWebRequestTexture.GetTexture(data.WorksInfo.PictureTempUrl))
+                {
+                    yield return request.SendWebRequest();
+                    if (request.result == UnityWebRequest.Result.ProtocolError || request.result == UnityWebRequest.Result.ConnectionError)
+                    {
+                        ET.Log.Error("Download  failed, error code:" + request.result, ",data:" + JsonUtility.ToJson(data));
+                        count += 1;
+                        yield return DownloadPicture(data, count);
+                    }
+                    else
+                    {
+                        Texture2D texture = (request.downloadHandler as DownloadHandlerTexture).texture;
+                        data.Ntexture = new NTexture(texture);
+                        data.Bytes = texture.EncodeToJPG();
+                    }
+                }
+            }
+
+        public static IEnumerator DownloadMyself(string nTextture)
+        {
+            yield return DownloadMyPicture(nTextture, 1);
+            ET.Log.Debug("Download  finish!!!");
+            EventAgent.DispatchEvent(ConstMessage.DOWNLOAD_FINISH);
+        }
+
+        private static IEnumerator DownloadMyPicture(string nTextture, int count)
+        {
+            if (count >= 3)
+            {
+                PromptController.Instance.ShowFloatTextPrompt("下载失败");
+                ViewManager.Hide<ModalStatusView>();
+                yield break;
+            }
+            using (UnityWebRequest request = UnityWebRequestTexture.GetTexture(nTextture))
+            {
+                yield return request.SendWebRequest();
+                if (request.result == UnityWebRequest.Result.ProtocolError || request.result == UnityWebRequest.Result.ConnectionError)
+                {
+                    count += 1;
+                    yield return DownloadMyPicture(nTextture, count);
+                }
+                else
+                {
+                    Texture2D texture = (request.downloadHandler as DownloadHandlerTexture).texture;
+                    MatchingCompetitionDataManager.Instance.MyNtextture = new NTexture(texture);
+                    MatchingCompetitionDataManager.Instance.MyBytes = texture.EncodeToJPG();
+                }
+            }
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Data/MatchingPhotoHelper.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: e2b8e8c1cd96fc04ba17eb83d7c4f2ab
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 232 - 0
GameClient/Assets/Game/HotUpdate/Data/MatchingTwoDataManager.cs

@@ -0,0 +1,232 @@
+using ET;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Text.RegularExpressions;
+using UnityEngine;
+using Live2D.Cubism.Rendering;
+using FairyGUI;
+using UI.MatchingCompetition;
+
+namespace GFGGame
+{
+    class MatchingLeftDataManager : SingletonBase<MatchingLeftDataManager>
+    {
+        //其他玩家信息用于展示
+        public MatchingPhotoWorksData LeftRoleInfo = new MatchingPhotoWorksData();
+        //人物位置信息
+        public TransformData roleTransFormData = new TransformData();
+        public GameObject roleGameobj;
+        public string roleID = "Role";
+        //*********************搭配数据*********************************
+        //需要传输的数据:MathingDressDate,DressUpBgID,DressPropIdList,TransformDataList,
+        public DressUpData MathingDressDate = DressUpData.CreateDefault();
+        public int DressUpBgID = 0;
+        //*****这两个id放列表的最后面
+        //边框id
+        public int BorderID = 0;
+        //NpcId
+        public int NpcID = 0;
+        //道具数据,一一对应
+        //道具id
+        //public List<int> DressPropIdList = new List<int>();
+        //道具位置信息
+        //public List<TransformData> TransformDataList = new List<TransformData>();
+        //道具索引
+        public int DressPropIndex = 0;
+        //道具索引字典
+        public Dictionary<string, TransformData> DressPropTransInfoDic = new Dictionary<string, TransformData>();
+        public List<GameObject> itemGameObjs = new List<GameObject>();
+        //***************************************************************
+        //解析后台获取的信息
+        public void AnalysisInfoToList()
+        {
+            List<int> dressitemIDList = new List<int>();
+            List<int> propIDList = new List<int>();
+            List<TransformData> transDataList = new List<TransformData>();
+            DressPropTransInfoDic.Clear();
+            for (int i = 0; i < LeftRoleInfo.JudgingInfo.CollocationInfoList.Count; i++)
+            {
+                CollocationInfo colloctItemInfo = LeftRoleInfo.JudgingInfo.CollocationInfoList[i];
+                if (colloctItemInfo.ItemId == roleID)
+                {
+                    //propIDList.Add(colloctItemInfo.ItemId);
+                    //transDataList.Add(MatchingCompetitionDataManager.Instance.AnalysisStringToTransform(colloctItemInfo.ClientPosition));
+                    DressPropTransInfoDic.Add(colloctItemInfo.ItemId, MatchingCompetitionDataManager.Instance.AnalysisStringToTransform(colloctItemInfo.ClientPosition));
+                }
+                else
+                {
+                    ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(MatchingCompetitionDataManager.Instance.GetIDByString( colloctItemInfo.ItemId));
+                    if (itemCfg != null && itemCfg.itemType == ConstItemType.DRESS_UP)
+                    {
+                        if (itemCfg.subType == 19 || itemCfg.subType == 17 || itemCfg.subType == 21 || itemCfg.subType == 22)
+                        {
+                            //记录道具和位置信息
+                            //propIDList.Add(colloctItemInfo.ItemId);
+                            //transDataList.Add(MatchingCompetitionDataManager.Instance.AnalysisStringToTransform(colloctItemInfo.ClientPosition));
+                            DressPropTransInfoDic.Add(colloctItemInfo.ItemId, MatchingCompetitionDataManager.Instance.AnalysisStringToTransform(colloctItemInfo.ClientPosition));
+                        }
+                        else if (itemCfg != null && itemCfg.subType == ConstDressUpItemType.BEI_JING)
+                        {
+                            DressUpBgID = itemCfg.id;
+                        }
+                        else
+                        {
+                            dressitemIDList.Add(MatchingCompetitionDataManager.Instance.GetIDByString(colloctItemInfo.ItemId));
+                        }
+                    }
+                    else if (itemCfg != null && itemCfg.itemType == ConstItemType.PHOTOGRAPH)
+                    {
+                        //记录道具和位置信息
+                        //propIDList.Add(colloctItemInfo.ItemId);
+                        //transDataList.Add(MatchingCompetitionDataManager.Instance.AnalysisStringToTransform(colloctItemInfo.ClientPosition));
+                        DressPropTransInfoDic.Add(colloctItemInfo.ItemId, MatchingCompetitionDataManager.Instance.AnalysisStringToTransform(colloctItemInfo.ClientPosition));
+                    }
+                }
+            }
+            MathingDressDate.itemList = dressitemIDList;
+            MathingDressDate.actionId = LeftRoleInfo.JudgingInfo.ActionId;
+            //DressPropIdList = propIDList;
+            //TransformDataList = transDataList;
+            DressUpBgID = LeftRoleInfo.JudgingInfo.BagId;
+        }
+        public void InsertGameObjectList()
+        {
+            int indexRoleData = 0;
+            int i = 0;
+            foreach (var item in DressPropTransInfoDic)
+            {
+                i++;
+                if (item.Key == roleID)
+                {
+                    indexRoleData = i;
+                }
+            }
+            if (itemGameObjs.Count == 0)
+            {
+                itemGameObjs.Add(roleGameobj);
+            }
+            else
+            {
+                if(indexRoleData > itemGameObjs.Count)
+                {
+                    itemGameObjs.Add(roleGameobj);
+                }
+                else
+                {
+                    itemGameObjs.Insert(indexRoleData, roleGameobj);
+                } 
+            }
+        }
+    }
+
+    class MatchingRightDataManager : SingletonBase<MatchingRightDataManager>
+    {
+        //其他玩家信息用于展示
+        public MatchingPhotoWorksData RightRoleInfo = new MatchingPhotoWorksData();
+        //人物位置信息
+        public TransformData roleTransFormData = new TransformData();
+        public GameObject roleGameobj;
+        public string roleID = "Role";
+        //*********************搭配数据*********************************
+        //需要传输的数据:MathingDressDate,DressUpBgID,DressPropIdList,TransformDataList,
+        public DressUpData MathingDressDate = DressUpData.CreateDefault();
+        public int DressUpBgID = 0;
+        //*****这两个id放列表的最后面
+        //边框id
+        public int BorderID = 0;
+        //NpcId
+        public int NpcID = 0;
+        //道具数据,一一对应
+        //道具id
+        //public List<int> DressPropIdList = new List<int>();
+        //道具位置信息
+       // public List<TransformData> TransformDataList = new List<TransformData>();
+        //道具索引
+        public int DressPropIndex = 0;
+        //道具索引字典
+        public Dictionary<string, TransformData> DressPropTransInfoDic = new Dictionary<string, TransformData>();
+        public List<GameObject> itemGameObjs = new List<GameObject>();
+        //***************************************************************
+        //解析后台获取的信息
+        public void AnalysisInfoToList()
+        {
+            List<int> dressitemIDList = new List<int>();
+            List<int> propIDList = new List<int>();
+            List<TransformData> transDataList = new List<TransformData>();
+            DressPropTransInfoDic.Clear();
+            for (int i = 0; i < RightRoleInfo.JudgingInfo.CollocationInfoList.Count; i++)
+            {
+                CollocationInfo colloctItemInfo = RightRoleInfo.JudgingInfo.CollocationInfoList[i];
+                if (colloctItemInfo.ItemId == roleID)
+                {
+                    //propIDList.Add(colloctItemInfo.ItemId);
+                    //transDataList.Add(MatchingCompetitionDataManager.Instance.AnalysisStringToTransform(colloctItemInfo.ClientPosition));
+                    DressPropTransInfoDic.Add(colloctItemInfo.ItemId, MatchingCompetitionDataManager.Instance.AnalysisStringToTransform(colloctItemInfo.ClientPosition));
+                }
+                else
+                {
+                    ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(MatchingCompetitionDataManager.Instance.GetIDByString(colloctItemInfo.ItemId));
+                    if (itemCfg != null && itemCfg.itemType == ConstItemType.DRESS_UP)
+                    {
+                        if (itemCfg.subType == 19 || itemCfg.subType == 17 || itemCfg.subType == 21 || itemCfg.subType == 22)
+                        {
+                            //记录道具和位置信息
+                            //propIDList.Add(colloctItemInfo.ItemId);
+                            //transDataList.Add(MatchingCompetitionDataManager.Instance.AnalysisStringToTransform(colloctItemInfo.ClientPosition));
+                            DressPropTransInfoDic.Add(colloctItemInfo.ItemId, MatchingCompetitionDataManager.Instance.AnalysisStringToTransform(colloctItemInfo.ClientPosition));
+                        }
+                        else if (itemCfg != null && itemCfg.subType == ConstDressUpItemType.BEI_JING)
+                        {
+                            DressUpBgID = itemCfg.id;
+                        }
+                        else
+                        {
+                            dressitemIDList.Add(MatchingCompetitionDataManager.Instance.GetIDByString(colloctItemInfo.ItemId));
+                        }
+                    }
+                    else if (itemCfg != null && itemCfg.itemType == ConstItemType.PHOTOGRAPH)
+                    {
+                        //记录道具和位置信息
+                        //propIDList.Add(colloctItemInfo.ItemId);
+                        //transDataList.Add(MatchingCompetitionDataManager.Instance.AnalysisStringToTransform(colloctItemInfo.ClientPosition));
+                        DressPropTransInfoDic.Add(colloctItemInfo.ItemId, MatchingCompetitionDataManager.Instance.AnalysisStringToTransform(colloctItemInfo.ClientPosition));
+                    }
+                }
+            }
+            MathingDressDate.itemList = dressitemIDList;
+            MathingDressDate.actionId = RightRoleInfo.JudgingInfo.ActionId;
+            //DressPropIdList = propIDList;
+            //TransformDataList = transDataList;
+            DressUpBgID = RightRoleInfo.JudgingInfo.BagId;
+        }
+        public void InsertGameObjectList()
+        {
+            int indexRoleData = 0;
+            int i = 0;
+            foreach (var item in DressPropTransInfoDic)
+            {
+                i++;
+                if (item.Key == roleID)
+                {
+                    indexRoleData = i;
+                }
+            }
+            if (itemGameObjs.Count == 0)
+            {
+                itemGameObjs.Add(roleGameobj);
+            }
+            else
+            {
+                if (indexRoleData > itemGameObjs.Count)
+                {
+                    itemGameObjs.Add(roleGameobj);
+                }
+                else
+                {
+                    itemGameObjs.Insert(indexRoleData, roleGameobj);
+                }
+            }
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Data/MatchingTwoDataManager.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: f840fc6b2d52a1d4fbbc79221ec6e67f
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 2 - 0
GameClient/Assets/Game/HotUpdate/Data/MiniGameDateManager.cs

@@ -10,6 +10,8 @@ namespace GFGGame
     {
         public List<ItemInfoProto> itemList = new List<ItemInfoProto>();
         public List<GameInfoProto> gameinfoList = new List<GameInfoProto>();
+        //记录合成游戏的矩阵信息
+        private List<List<int>> idList = new List<List<int>>();
 
         public bool CHECK_TIPS = false; //提示弹窗是否打开
 

+ 30 - 3
GameClient/Assets/Game/HotUpdate/Data/PhotographSceneManager.cs

@@ -57,17 +57,44 @@ namespace GFGGame
             tf.localPosition = new Vector2(-spr.bounds.center.x, -spr.bounds.center.y);
             SetBoxCollider2DToGameObject(tf.gameObject);
             AddItemGameObjectToList(tf.parent.gameObject, true);
-
         }
-        public void AddBodyItem()
+        public void AddBodyItem(int isLeft = 0)
         {
             GameObject bodyParent = sceneObject.transform.Find("Scene/Role").gameObject;
+
+            if (isLeft == 1)
+            {
+                MatchingLeftDataManager.Instance.roleGameobj = bodyParent;
+            }
+            else if (isLeft == 2)
+            {
+                MatchingRightDataManager.Instance.roleGameobj = bodyParent;
+            }
+            else
+            {
+                MatchingCompetitionDataManager.Instance.roleGameobj = bodyParent;
+                MatchingOneDataManager.Instance.roleGameobj = bodyParent;
+            }
+
             UpdatePhotographBody(sceneObject, bodyParent);
             AddItemGameObjectToList(bodyParent, false);
         }
 
-        public async Task AddSceneItem(GameObject parentGameObj, ItemCfg itemCfg, int layer, bool setLayer, bool isOnlyEff = false)
+        public async Task AddSceneItem(GameObject parentGameObj, ItemCfg itemCfg, int layer, bool setLayer, bool isOnlyEff = false,int isLeft = 0)
         {
+            if(isLeft == 1)
+            {
+                MatchingLeftDataManager.Instance.itemGameObjs.Add(parentGameObj);
+            }
+            else if(isLeft == 2)
+            {
+                MatchingRightDataManager.Instance.itemGameObjs.Add(parentGameObj);
+            }
+            else
+            {
+                MatchingCompetitionDataManager.Instance.itemGameObjs.Add(parentGameObj);
+                MatchingOneDataManager.Instance.itemGameObjs.Add(parentGameObj);
+            }
 
             await AddItemToScene(sceneObject, parentGameObj, itemCfg.id, layer);
 

+ 17 - 1
GameClient/Assets/Game/HotUpdate/Data/PoemPhotoDataManager.cs

@@ -39,7 +39,11 @@ namespace GFGGame
             {
                 poemPhotoDatas = WsqsPhotoInfos;
             }
-            
+            else if (sourceType == 2)
+            {
+                poemPhotoDatas = MatchingCompetitionDataManager.Instance.MatchingPhotoInfos;
+            }
+
             poemPhotoDatas.Add(photoData);
             poemPhotoDatas.SortInfos();
         }
@@ -55,6 +59,10 @@ namespace GFGGame
             {
                 poemPhotoDatas = WsqsPhotoInfos;
             }
+            else if (sourceType == 2)
+            {
+                poemPhotoDatas = MatchingCompetitionDataManager.Instance.MatchingPhotoInfos;
+            }
 
             for (int i = 0; i < pictureIds.Count; i++)
             {
@@ -82,6 +90,10 @@ namespace GFGGame
             {
                 poemPhotoDatas = WsqsPhotoInfos;
             }
+            else if(sourceType == 2)
+            {
+                poemPhotoDatas = MatchingCompetitionDataManager.Instance.MatchingPhotoInfos;
+            }
             for (int i = 0; i < poemPhotoDatas.Count; i++)
             {
                 if (poemPhotoDatas[i].PictureId == pictureId)
@@ -106,6 +118,10 @@ namespace GFGGame
             {
                 poemPhotoDatas = WsqsPhotoInfos;
             }
+            else if (sourceType == 2)
+            {
+                poemPhotoDatas = MatchingCompetitionDataManager.Instance.MatchingPhotoInfos;
+            }
             for (int i = 0; i < poemPhotoDatas.Count; i++)
             {
                 if (poemPhotoDatas[i].PictureId == pictureId)

+ 70 - 0
GameClient/Assets/Game/HotUpdate/Data/VO/MatchingCompetitionData.cs

@@ -0,0 +1,70 @@
+using ET;
+using System.Collections.Generic;
+using System;
+using UnityEngine;
+using FairyGUI;
+
+namespace GFGGame
+{
+    public class MatchingPlayerData
+    {
+        public int roleID = 0;
+        public int HeadId = 0;
+        public int HeadBorderId = 0;
+        public string OtherPlayerName = "其他玩家";
+        public int Rank = 10;
+        //搭配数据
+        public int bgID = 0;
+        public int actionID = 0;
+        public List<int> DressIDList = new List<int>();
+        //搭配道具ID
+        public List<int> PropIDList = new List<int>();
+        //搭配道具位置信息
+        public List<string> DressTransformInfoList = new List<string>();
+        /// <summary>
+        /// 点赞投票次数
+        /// </summary>
+        public int OtherPlayerPopularity = 100;
+        /// <summary>
+        /// 个人相册_照片数据
+        /// </summary>
+        public byte[] Bytes;
+        /// <summary>
+        /// 作品资源
+        /// </summary>
+        public NTexture Ntexture = null;
+    }
+    //道具的位置信息
+    public class TransformData
+    {
+        public Vector3 position = new Vector3(0,0,0);
+        public float rotationZ = 0f;
+        public Vector3 scale = new Vector3(1,1,1);
+    }
+    //搭配赛作品信息
+    public class MatchingPhotoWorksData
+    {
+        public JudgingRoundRoleInfo JudgingInfo;
+        /// <summary>
+        /// 照片数据
+        /// </summary>
+        public byte[] Bytes;
+        /// <summary>
+        /// 照片资源
+        /// </summary>
+        public NTexture Ntexture;//个人相册数据
+    }
+    //搭配赛作品集信息
+    public class MatchingWorksData
+    {
+        public WorksCollectionInfo WorksInfo;
+        /// <summary>
+        /// 照片数据
+        /// </summary>
+        public byte[] Bytes;
+        /// <summary>
+        /// 照片资源
+        /// </summary>
+        public NTexture Ntexture;//个人相册数据
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Data/VO/MatchingCompetitionData.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: d9dd1adaa5f34404c9a5f1b6f0bcba1f
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 26 - 0
GameClient/Assets/Game/HotUpdate/DressUp/DressUpObj.cs

@@ -450,6 +450,19 @@ namespace GFGGame
             {
                 _dressUpData.itemList.Add(itemId);
                 Update(itemId);
+
+                if (actionId != 0)
+                {
+                    ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemId);
+                    Transform effGameobj = _sceneObj.transform.Find(string.Format("Role/Body_eff/{0}", itemCfg.res));
+                    if (effGameobj != null)
+                    {
+                        if (effGameobj.gameObject != null)
+                        {
+                            effGameobj.gameObject.SetActive(true);
+                        }
+                    }
+                }
             }
         }
 
@@ -471,6 +484,19 @@ namespace GFGGame
                 _dressUpData.itemList.Remove(itemId);
                 var handler = DressUpUtil.RemoveItemAsync(itemId, _sceneObj, _roleObj);
                 TryAddHandler(handler);
+
+                if (actionId != 0)
+                {
+                    ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemId);
+                    Transform effGameobj = _sceneObj.transform.Find(string.Format("Role/Body_eff/{0}", itemCfg.res));
+                    if (effGameobj != null)
+                    {
+                        if (effGameobj.gameObject != null)
+                        {
+                            effGameobj.gameObject.SetActive(false);
+                        }
+                    }
+                }
             }
         }
 

+ 3 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/InstanceZones/UI_InstanceZonesUI.cs

@@ -14,6 +14,7 @@ namespace UI.InstanceZones
         public UI_ButtonModle9 m_btnStudio;
         public UI_ButtonModle9 m_btnTravel;
         public UI_ButtonModle9 m_btnPoem;
+        public GButton m_btnPoemGudie;
         public UI_ButtonModle9 m_btnField;
         public UI_ButtonModle9 m_btnArena;
         public GGraph m_eff;
@@ -74,6 +75,7 @@ namespace UI.InstanceZones
             m_btnStudio = (UI_ButtonModle9)UI_ButtonModle9.Create(comp.GetChild("btnStudio"));
             m_btnTravel = (UI_ButtonModle9)UI_ButtonModle9.Create(comp.GetChild("btnTravel"));
             m_btnPoem = (UI_ButtonModle9)UI_ButtonModle9.Create(comp.GetChild("btnPoem"));
+            m_btnPoemGudie = (GButton)comp.GetChild("btnPoemGudie");
             m_btnField = (UI_ButtonModle9)UI_ButtonModle9.Create(comp.GetChild("btnField"));
             m_btnArena = (UI_ButtonModle9)UI_ButtonModle9.Create(comp.GetChild("btnArena"));
             m_eff = (GGraph)comp.GetChild("eff");
@@ -94,6 +96,7 @@ namespace UI.InstanceZones
             m_btnTravel = null;
             m_btnPoem.Dispose();
             m_btnPoem = null;
+            m_btnPoemGudie = null;
             m_btnField.Dispose();
             m_btnField = null;
             m_btnArena.Dispose();

+ 3 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Main/UI_StoryDialogUI.cs

@@ -13,6 +13,7 @@ namespace UI.Main
         public GGraph m_mask2;
         public GGraph m_btnNext;
         public GGraph m_effect;
+        public GGraph m_roleLive;
         public UI_CompDialogText m_dialogText;
         public UI_CompDialogName m_dialogName;
         public UI_CompDialogHead m_dialogHead;
@@ -86,6 +87,7 @@ namespace UI.Main
             m_mask2 = (GGraph)comp.GetChild("mask2");
             m_btnNext = (GGraph)comp.GetChild("btnNext");
             m_effect = (GGraph)comp.GetChild("effect");
+            m_roleLive = (GGraph)comp.GetChild("roleLive");
             m_dialogText = (UI_CompDialogText)UI_CompDialogText.Create(comp.GetChild("dialogText"));
             m_dialogName = (UI_CompDialogName)UI_CompDialogName.Create(comp.GetChild("dialogName"));
             m_dialogHead = (UI_CompDialogHead)UI_CompDialogHead.Create(comp.GetChild("dialogHead"));
@@ -115,6 +117,7 @@ namespace UI.Main
             m_mask2 = null;
             m_btnNext = null;
             m_effect = null;
+            m_roleLive = null;
             m_dialogText.Dispose();
             m_dialogText = null;
             m_dialogName.Dispose();

+ 8 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 8ee0cb0210c41f54c93b13126104b2c0
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 74 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Button3.cs

@@ -0,0 +1,74 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.MatchingCompetition
+{
+    public partial class UI_Button3
+    {
+        public GButton target;
+        public Controller m_c1;
+        public GTextField m_numText;
+        public const string URL = "ui://ri3cveycp3ft26";
+        public const string PACKAGE_NAME = "MatchingCompetition";
+        public const string RES_NAME = "Button3";
+        private static UI_Button3 _proxy;
+
+        public static UI_Button3 Create(GObject gObject = null)
+        {
+            var ui = new UI_Button3();
+            if(gObject == null)
+            	ui.target =  (GButton)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GButton)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_Button3 Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_Button3();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GButton)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GButton)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_c1 = comp.GetController("c1");
+            m_numText = (GTextField)comp.GetChild("numText");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_c1 = null;
+            m_numText = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Button3.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 067132d85af996149865ff282cf07482
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 71 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_ComRewardList.cs

@@ -0,0 +1,71 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.MatchingCompetition
+{
+    public partial class UI_ComRewardList
+    {
+        public GComponent target;
+        public GList m_listReward;
+        public const string URL = "ui://ri3cveycjw093y";
+        public const string PACKAGE_NAME = "MatchingCompetition";
+        public const string RES_NAME = "ComRewardList";
+        private static UI_ComRewardList _proxy;
+
+        public static UI_ComRewardList Create(GObject gObject = null)
+        {
+            var ui = new UI_ComRewardList();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_ComRewardList Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_ComRewardList();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_listReward = (GList)comp.GetChild("listReward");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_listReward = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_ComRewardList.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: fa1731df43f00fa49ac2735e20488e07
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 77 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component1.cs

@@ -0,0 +1,77 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.MatchingCompetition
+{
+    public partial class UI_Component1
+    {
+        public GComponent target;
+        public GComponent m_head;
+        public GTextField m_nameText;
+        public GTextField m_countText;
+        public const string URL = "ui://ri3cveycp3ft1e";
+        public const string PACKAGE_NAME = "MatchingCompetition";
+        public const string RES_NAME = "Component1";
+        private static UI_Component1 _proxy;
+
+        public static UI_Component1 Create(GObject gObject = null)
+        {
+            var ui = new UI_Component1();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_Component1 Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_Component1();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_head = (GComponent)comp.GetChild("head");
+            m_nameText = (GTextField)comp.GetChild("nameText");
+            m_countText = (GTextField)comp.GetChild("countText");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_head = null;
+            m_nameText = null;
+            m_countText = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component1.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a79eec4a7762b0444b5c8ae370345a3b
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 74 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component11.cs

@@ -0,0 +1,74 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.MatchingCompetition
+{
+    public partial class UI_Component11
+    {
+        public GComponent target;
+        public GComponent m_head;
+        public GTextField m_nameText;
+        public const string URL = "ui://ri3cveycp3ft1t";
+        public const string PACKAGE_NAME = "MatchingCompetition";
+        public const string RES_NAME = "Component11";
+        private static UI_Component11 _proxy;
+
+        public static UI_Component11 Create(GObject gObject = null)
+        {
+            var ui = new UI_Component11();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_Component11 Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_Component11();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_head = (GComponent)comp.GetChild("head");
+            m_nameText = (GTextField)comp.GetChild("nameText");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_head = null;
+            m_nameText = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component11.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a8fa39f44c964c840bebec59b9fdbb5f
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 72 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component12.cs

@@ -0,0 +1,72 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.MatchingCompetition
+{
+    public partial class UI_Component12
+    {
+        public GComponent target;
+        public UI_Component14 m_playerImage;
+        public const string URL = "ui://ri3cveycp3ft20";
+        public const string PACKAGE_NAME = "MatchingCompetition";
+        public const string RES_NAME = "Component12";
+        private static UI_Component12 _proxy;
+
+        public static UI_Component12 Create(GObject gObject = null)
+        {
+            var ui = new UI_Component12();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_Component12 Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_Component12();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_playerImage = (UI_Component14)UI_Component14.Create(comp.GetChild("playerImage"));
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_playerImage.Dispose();
+            m_playerImage = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component12.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 6511b27d31207cb42aa42d6152d23e8d
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 72 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component13.cs

@@ -0,0 +1,72 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.MatchingCompetition
+{
+    public partial class UI_Component13
+    {
+        public GComponent target;
+        public UI_Component15 m_playerImage;
+        public const string URL = "ui://ri3cveycp3ft24";
+        public const string PACKAGE_NAME = "MatchingCompetition";
+        public const string RES_NAME = "Component13";
+        private static UI_Component13 _proxy;
+
+        public static UI_Component13 Create(GObject gObject = null)
+        {
+            var ui = new UI_Component13();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_Component13 Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_Component13();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_playerImage = (UI_Component15)UI_Component15.Create(comp.GetChild("playerImage"));
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_playerImage.Dispose();
+            m_playerImage = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component13.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 9fd081abf7cb9384894f8bdd71fb938d
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 71 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component14.cs

@@ -0,0 +1,71 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.MatchingCompetition
+{
+    public partial class UI_Component14
+    {
+        public GComponent target;
+        public GLoader m_playerImage;
+        public const string URL = "ui://ri3cveycp3ft22";
+        public const string PACKAGE_NAME = "MatchingCompetition";
+        public const string RES_NAME = "Component14";
+        private static UI_Component14 _proxy;
+
+        public static UI_Component14 Create(GObject gObject = null)
+        {
+            var ui = new UI_Component14();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_Component14 Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_Component14();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_playerImage = (GLoader)comp.GetChild("playerImage");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_playerImage = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component14.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: fd2fa51f05cbb0c489f18cdb4dc69e47
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 71 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component15.cs

@@ -0,0 +1,71 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.MatchingCompetition
+{
+    public partial class UI_Component15
+    {
+        public GComponent target;
+        public GLoader m_playerImage;
+        public const string URL = "ui://ri3cveycp3ft23";
+        public const string PACKAGE_NAME = "MatchingCompetition";
+        public const string RES_NAME = "Component15";
+        private static UI_Component15 _proxy;
+
+        public static UI_Component15 Create(GObject gObject = null)
+        {
+            var ui = new UI_Component15();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_Component15 Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_Component15();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_playerImage = (GLoader)comp.GetChild("playerImage");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_playerImage = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component15.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 31c6db636ea693647b997880c0069bfc
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 81 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component2.cs

@@ -0,0 +1,81 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.MatchingCompetition
+{
+    public partial class UI_Component2
+    {
+        public GComponent target;
+        public GComponent m_head;
+        public GTextField m_nameText;
+        public GTextField m_countText;
+        public UI_Component4 m_RankIndex;
+        public const string URL = "ui://ri3cveycp3ft1h";
+        public const string PACKAGE_NAME = "MatchingCompetition";
+        public const string RES_NAME = "Component2";
+        private static UI_Component2 _proxy;
+
+        public static UI_Component2 Create(GObject gObject = null)
+        {
+            var ui = new UI_Component2();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_Component2 Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_Component2();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_head = (GComponent)comp.GetChild("head");
+            m_nameText = (GTextField)comp.GetChild("nameText");
+            m_countText = (GTextField)comp.GetChild("countText");
+            m_RankIndex = (UI_Component4)UI_Component4.Create(comp.GetChild("RankIndex"));
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_head = null;
+            m_nameText = null;
+            m_countText = null;
+            m_RankIndex.Dispose();
+            m_RankIndex = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component2.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a0aa5bb67e35f7147af26f049d1ae7cf
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 87 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component3.cs

@@ -0,0 +1,87 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.MatchingCompetition
+{
+    public partial class UI_Component3
+    {
+        public GComponent target;
+        public Controller m_c1;
+        public Controller m_c2;
+        public GComponent m_head;
+        public GTextField m_nameText;
+        public GTextField m_countText;
+        public UI_Component4 m_RankIndex;
+        public const string URL = "ui://ri3cveycp3ft1i";
+        public const string PACKAGE_NAME = "MatchingCompetition";
+        public const string RES_NAME = "Component3";
+        private static UI_Component3 _proxy;
+
+        public static UI_Component3 Create(GObject gObject = null)
+        {
+            var ui = new UI_Component3();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_Component3 Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_Component3();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_c1 = comp.GetController("c1");
+            m_c2 = comp.GetController("c2");
+            m_head = (GComponent)comp.GetChild("head");
+            m_nameText = (GTextField)comp.GetChild("nameText");
+            m_countText = (GTextField)comp.GetChild("countText");
+            m_RankIndex = (UI_Component4)UI_Component4.Create(comp.GetChild("RankIndex"));
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_c1 = null;
+            m_c2 = null;
+            m_head = null;
+            m_nameText = null;
+            m_countText = null;
+            m_RankIndex.Dispose();
+            m_RankIndex = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component3.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 5011103b29517c646aa4812ecb13c0fa
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 89 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component4.cs

@@ -0,0 +1,89 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.MatchingCompetition
+{
+    public partial class UI_Component4
+    {
+        public GComponent target;
+        public Controller m_c1;
+        public Controller m_c2;
+        public GLoader m_numBg;
+        public GLoader m_num1;
+        public GLoader m_num2;
+        public GLoader m_num3;
+        public GTextField m_RankText;
+        public const string URL = "ui://ri3cveycp3ft1m";
+        public const string PACKAGE_NAME = "MatchingCompetition";
+        public const string RES_NAME = "Component4";
+        private static UI_Component4 _proxy;
+
+        public static UI_Component4 Create(GObject gObject = null)
+        {
+            var ui = new UI_Component4();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_Component4 Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_Component4();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_c1 = comp.GetController("c1");
+            m_c2 = comp.GetController("c2");
+            m_numBg = (GLoader)comp.GetChild("numBg");
+            m_num1 = (GLoader)comp.GetChild("num1");
+            m_num2 = (GLoader)comp.GetChild("num2");
+            m_num3 = (GLoader)comp.GetChild("num3");
+            m_RankText = (GTextField)comp.GetChild("RankText");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_c1 = null;
+            m_c2 = null;
+            m_numBg = null;
+            m_num1 = null;
+            m_num2 = null;
+            m_num3 = null;
+            m_RankText = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component4.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 70892d86f164cf340a1a8bb62d43de8c
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 80 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component5.cs

@@ -0,0 +1,80 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.MatchingCompetition
+{
+    public partial class UI_Component5
+    {
+        public GComponent target;
+        public GLoader m_playerImage;
+        public GTextField m_seasonText;
+        public GTextField m_seasonName;
+        public GTextField m_openTime;
+        public const string URL = "ui://ri3cveycp3ft1o";
+        public const string PACKAGE_NAME = "MatchingCompetition";
+        public const string RES_NAME = "Component5";
+        private static UI_Component5 _proxy;
+
+        public static UI_Component5 Create(GObject gObject = null)
+        {
+            var ui = new UI_Component5();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_Component5 Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_Component5();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_playerImage = (GLoader)comp.GetChild("playerImage");
+            m_seasonText = (GTextField)comp.GetChild("seasonText");
+            m_seasonName = (GTextField)comp.GetChild("seasonName");
+            m_openTime = (GTextField)comp.GetChild("openTime");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_playerImage = null;
+            m_seasonText = null;
+            m_seasonName = null;
+            m_openTime = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component5.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 68be4fe9df3495b479aa3237171df703
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 86 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component6.cs

@@ -0,0 +1,86 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.MatchingCompetition
+{
+    public partial class UI_Component6
+    {
+        public GComponent target;
+        public Controller m_c1;
+        public GLoader m_playerImage;
+        public GComponent m_head;
+        public GTextField m_nameText;
+        public GTextField m_countText;
+        public GTextField m_descText;
+        public const string URL = "ui://ri3cveycp3ft1q";
+        public const string PACKAGE_NAME = "MatchingCompetition";
+        public const string RES_NAME = "Component6";
+        private static UI_Component6 _proxy;
+
+        public static UI_Component6 Create(GObject gObject = null)
+        {
+            var ui = new UI_Component6();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_Component6 Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_Component6();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_c1 = comp.GetController("c1");
+            m_playerImage = (GLoader)comp.GetChild("playerImage");
+            m_head = (GComponent)comp.GetChild("head");
+            m_nameText = (GTextField)comp.GetChild("nameText");
+            m_countText = (GTextField)comp.GetChild("countText");
+            m_descText = (GTextField)comp.GetChild("descText");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_c1 = null;
+            m_playerImage = null;
+            m_head = null;
+            m_nameText = null;
+            m_countText = null;
+            m_descText = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component6.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 455552bbf7282bc47a9e370f70898d40
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 86 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionDetailUI.cs

@@ -0,0 +1,86 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.MatchingCompetition
+{
+    public partial class UI_MatchingCompetitionDetailUI
+    {
+        public GComponent target;
+        public GLoader m_defulatBg;
+        public GLoader m_playerImage;
+        public GLoader m_btn;
+        public GButton m_BtnBack;
+        public GList m_nameList;
+        public GList m_dressList;
+        public const string URL = "ui://ri3cveycp3ft2b";
+        public const string PACKAGE_NAME = "MatchingCompetition";
+        public const string RES_NAME = "MatchingCompetitionDetailUI";
+        private static UI_MatchingCompetitionDetailUI _proxy;
+
+        public static UI_MatchingCompetitionDetailUI Create(GObject gObject = null)
+        {
+            var ui = new UI_MatchingCompetitionDetailUI();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_MatchingCompetitionDetailUI Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_MatchingCompetitionDetailUI();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_defulatBg = (GLoader)comp.GetChild("defulatBg");
+            m_playerImage = (GLoader)comp.GetChild("playerImage");
+            m_btn = (GLoader)comp.GetChild("btn");
+            m_BtnBack = (GButton)comp.GetChild("BtnBack");
+            m_nameList = (GList)comp.GetChild("nameList");
+            m_dressList = (GList)comp.GetChild("dressList");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_defulatBg = null;
+            m_playerImage = null;
+            m_btn = null;
+            m_BtnBack = null;
+            m_nameList = null;
+            m_dressList = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionDetailUI.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 481020c89153f1f4dae777dbe6376ae4
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 104 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionGatheringUI.cs

@@ -0,0 +1,104 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.MatchingCompetition
+{
+    public partial class UI_MatchingCompetitionGatheringUI
+    {
+        public GComponent target;
+        public Controller m_c1;
+        public GLoader m_bg;
+        public GGraph m_suitShow;
+        public GLoader m_playerImage;
+        public GLoader m_ruleBtn;
+        public GTextField m_titleText;
+        public GTextField m_timeText;
+        public GTextField m_suitName;
+        public GGroup m_desc;
+        public GButton m_btnUploadWorks;
+        public GButton m_btnShop;
+        public GButton m_BtnBack;
+        public const string URL = "ui://ri3cveychtuj0";
+        public const string PACKAGE_NAME = "MatchingCompetition";
+        public const string RES_NAME = "MatchingCompetitionGatheringUI";
+        private static UI_MatchingCompetitionGatheringUI _proxy;
+
+        public static UI_MatchingCompetitionGatheringUI Create(GObject gObject = null)
+        {
+            var ui = new UI_MatchingCompetitionGatheringUI();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_MatchingCompetitionGatheringUI Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_MatchingCompetitionGatheringUI();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_c1 = comp.GetController("c1");
+            m_bg = (GLoader)comp.GetChild("bg");
+            m_suitShow = (GGraph)comp.GetChild("suitShow");
+            m_playerImage = (GLoader)comp.GetChild("playerImage");
+            m_ruleBtn = (GLoader)comp.GetChild("ruleBtn");
+            m_titleText = (GTextField)comp.GetChild("titleText");
+            m_timeText = (GTextField)comp.GetChild("timeText");
+            m_suitName = (GTextField)comp.GetChild("suitName");
+            m_desc = (GGroup)comp.GetChild("desc");
+            m_btnUploadWorks = (GButton)comp.GetChild("btnUploadWorks");
+            m_btnShop = (GButton)comp.GetChild("btnShop");
+            m_BtnBack = (GButton)comp.GetChild("BtnBack");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_c1 = null;
+            m_bg = null;
+            m_suitShow = null;
+            m_playerImage = null;
+            m_ruleBtn = null;
+            m_titleText = null;
+            m_timeText = null;
+            m_suitName = null;
+            m_desc = null;
+            m_btnUploadWorks = null;
+            m_btnShop = null;
+            m_BtnBack = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionGatheringUI.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a6703ee592196254d8acf350b6aa1ab4
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 77 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionLookUI.cs

@@ -0,0 +1,77 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.MatchingCompetition
+{
+    public partial class UI_MatchingCompetitionLookUI
+    {
+        public GComponent target;
+        public GLoader m_bg;
+        public GLoader m_playerImage;
+        public GButton m_BtnBack;
+        public const string URL = "ui://ri3cveycp3ft1r";
+        public const string PACKAGE_NAME = "MatchingCompetition";
+        public const string RES_NAME = "MatchingCompetitionLookUI";
+        private static UI_MatchingCompetitionLookUI _proxy;
+
+        public static UI_MatchingCompetitionLookUI Create(GObject gObject = null)
+        {
+            var ui = new UI_MatchingCompetitionLookUI();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_MatchingCompetitionLookUI Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_MatchingCompetitionLookUI();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_bg = (GLoader)comp.GetChild("bg");
+            m_playerImage = (GLoader)comp.GetChild("playerImage");
+            m_BtnBack = (GButton)comp.GetChild("BtnBack");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_bg = null;
+            m_playerImage = null;
+            m_BtnBack = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionLookUI.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 7be58668262c0fe41a999ba071782162
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 99 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionRankUI.cs

@@ -0,0 +1,99 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.MatchingCompetition
+{
+    public partial class UI_MatchingCompetitionRankUI
+    {
+        public GComponent target;
+        public Controller m_c1;
+        public GLoader m_bg;
+        public GLoader m_playerImage;
+        public GLoader m_ruleBtn;
+        public GTextField m_titleText;
+        public GButton m_btnBefore;
+        public GList m_RankList;
+        public UI_Component3 m_playerHead;
+        public GButton m_btnLook;
+        public GButton m_BtnBack;
+        public const string URL = "ui://ri3cveycp3ft1g";
+        public const string PACKAGE_NAME = "MatchingCompetition";
+        public const string RES_NAME = "MatchingCompetitionRankUI";
+        private static UI_MatchingCompetitionRankUI _proxy;
+
+        public static UI_MatchingCompetitionRankUI Create(GObject gObject = null)
+        {
+            var ui = new UI_MatchingCompetitionRankUI();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_MatchingCompetitionRankUI Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_MatchingCompetitionRankUI();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_c1 = comp.GetController("c1");
+            m_bg = (GLoader)comp.GetChild("bg");
+            m_playerImage = (GLoader)comp.GetChild("playerImage");
+            m_ruleBtn = (GLoader)comp.GetChild("ruleBtn");
+            m_titleText = (GTextField)comp.GetChild("titleText");
+            m_btnBefore = (GButton)comp.GetChild("btnBefore");
+            m_RankList = (GList)comp.GetChild("RankList");
+            m_playerHead = (UI_Component3)UI_Component3.Create(comp.GetChild("playerHead"));
+            m_btnLook = (GButton)comp.GetChild("btnLook");
+            m_BtnBack = (GButton)comp.GetChild("BtnBack");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_c1 = null;
+            m_bg = null;
+            m_playerImage = null;
+            m_ruleBtn = null;
+            m_titleText = null;
+            m_btnBefore = null;
+            m_RankList = null;
+            m_playerHead.Dispose();
+            m_playerHead = null;
+            m_btnLook = null;
+            m_BtnBack = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionRankUI.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 0c6bcfb194cdd8b44accf42448276f7a
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 74 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionRewardItem.cs

@@ -0,0 +1,74 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.MatchingCompetition
+{
+    public partial class UI_MatchingCompetitionRewardItem
+    {
+        public GComponent target;
+        public GList m_rewardList;
+        public GTextField m_rankIndex;
+        public const string URL = "ui://ri3cveycp3ft29";
+        public const string PACKAGE_NAME = "MatchingCompetition";
+        public const string RES_NAME = "MatchingCompetitionRewardItem";
+        private static UI_MatchingCompetitionRewardItem _proxy;
+
+        public static UI_MatchingCompetitionRewardItem Create(GObject gObject = null)
+        {
+            var ui = new UI_MatchingCompetitionRewardItem();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_MatchingCompetitionRewardItem Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_MatchingCompetitionRewardItem();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_rewardList = (GList)comp.GetChild("rewardList");
+            m_rankIndex = (GTextField)comp.GetChild("rankIndex");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_rewardList = null;
+            m_rankIndex = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionRewardItem.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: f82f187c94760ab4bb972e122d5d37be
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 90 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionRewardUI.cs

@@ -0,0 +1,90 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.MatchingCompetition
+{
+    public partial class UI_MatchingCompetitionRewardUI
+    {
+        public GComponent target;
+        public GGraph m_mask;
+        public GGraph m_holderBgCom;
+        public GGraph m_holderTitle;
+        public GGroup m_downTipsText;
+        public UI_ComRewardList m_comList;
+        public GGroup m_grp;
+        public Transition m_openViewAction;
+        public const string URL = "ui://ri3cveycjw093x";
+        public const string PACKAGE_NAME = "MatchingCompetition";
+        public const string RES_NAME = "MatchingCompetitionRewardUI";
+        private static UI_MatchingCompetitionRewardUI _proxy;
+
+        public static UI_MatchingCompetitionRewardUI Create(GObject gObject = null)
+        {
+            var ui = new UI_MatchingCompetitionRewardUI();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_MatchingCompetitionRewardUI Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_MatchingCompetitionRewardUI();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_mask = (GGraph)comp.GetChild("mask");
+            m_holderBgCom = (GGraph)comp.GetChild("holderBgCom");
+            m_holderTitle = (GGraph)comp.GetChild("holderTitle");
+            m_downTipsText = (GGroup)comp.GetChild("downTipsText");
+            m_comList = (UI_ComRewardList)UI_ComRewardList.Create(comp.GetChild("comList"));
+            m_grp = (GGroup)comp.GetChild("grp");
+            m_openViewAction = comp.GetTransition("openViewAction");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_mask = null;
+            m_holderBgCom = null;
+            m_holderTitle = null;
+            m_downTipsText = null;
+            m_comList.Dispose();
+            m_comList = null;
+            m_grp = null;
+            m_openViewAction = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionRewardUI.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: b5c5269a03a26f94698d3db4ed300df9
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 86 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionRuleTips.cs

@@ -0,0 +1,86 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.MatchingCompetition
+{
+    public partial class UI_MatchingCompetitionRuleTips
+    {
+        public GComponent target;
+        public Controller m_c1;
+        public GTextField m_titleText;
+        public GButton m_btnReward;
+        public GButton m_btnRule;
+        public GList m_rewardList;
+        public GTextField m_descText;
+        public const string URL = "ui://ri3cveycp3ft28";
+        public const string PACKAGE_NAME = "MatchingCompetition";
+        public const string RES_NAME = "MatchingCompetitionRuleTips";
+        private static UI_MatchingCompetitionRuleTips _proxy;
+
+        public static UI_MatchingCompetitionRuleTips Create(GObject gObject = null)
+        {
+            var ui = new UI_MatchingCompetitionRuleTips();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_MatchingCompetitionRuleTips Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_MatchingCompetitionRuleTips();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_c1 = comp.GetController("c1");
+            m_titleText = (GTextField)comp.GetChild("titleText");
+            m_btnReward = (GButton)comp.GetChild("btnReward");
+            m_btnRule = (GButton)comp.GetChild("btnRule");
+            m_rewardList = (GList)comp.GetChild("rewardList");
+            m_descText = (GTextField)comp.GetChild("descText");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_c1 = null;
+            m_titleText = null;
+            m_btnReward = null;
+            m_btnRule = null;
+            m_rewardList = null;
+            m_descText = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionRuleTips.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 2076a5d2f8489244598c0c60dcdfb331
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 119 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionSelectUI.cs

@@ -0,0 +1,119 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.MatchingCompetition
+{
+    public partial class UI_MatchingCompetitionSelectUI
+    {
+        public GComponent target;
+        public GLoader m_bg;
+        public UI_Component12 m_playerShow1;
+        public UI_Component13 m_playerShow2;
+        public GLoader m_ruleBtn;
+        public GTextField m_titleText;
+        public UI_Component11 m_player1;
+        public UI_Component11 m_player2;
+        public UI_Button3 m_select1;
+        public GTextField m_selectText1;
+        public UI_Button3 m_select2;
+        public GTextField m_selectText2;
+        public GTextField m_timeText;
+        public GButton m_BtnBack;
+        public Transition m_t0;
+        public Transition m_t1;
+        public const string URL = "ui://ri3cveycp3ft1s";
+        public const string PACKAGE_NAME = "MatchingCompetition";
+        public const string RES_NAME = "MatchingCompetitionSelectUI";
+        private static UI_MatchingCompetitionSelectUI _proxy;
+
+        public static UI_MatchingCompetitionSelectUI Create(GObject gObject = null)
+        {
+            var ui = new UI_MatchingCompetitionSelectUI();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_MatchingCompetitionSelectUI Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_MatchingCompetitionSelectUI();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_bg = (GLoader)comp.GetChild("bg");
+            m_playerShow1 = (UI_Component12)UI_Component12.Create(comp.GetChild("playerShow1"));
+            m_playerShow2 = (UI_Component13)UI_Component13.Create(comp.GetChild("playerShow2"));
+            m_ruleBtn = (GLoader)comp.GetChild("ruleBtn");
+            m_titleText = (GTextField)comp.GetChild("titleText");
+            m_player1 = (UI_Component11)UI_Component11.Create(comp.GetChild("player1"));
+            m_player2 = (UI_Component11)UI_Component11.Create(comp.GetChild("player2"));
+            m_select1 = (UI_Button3)UI_Button3.Create(comp.GetChild("select1"));
+            m_selectText1 = (GTextField)comp.GetChild("selectText1");
+            m_select2 = (UI_Button3)UI_Button3.Create(comp.GetChild("select2"));
+            m_selectText2 = (GTextField)comp.GetChild("selectText2");
+            m_timeText = (GTextField)comp.GetChild("timeText");
+            m_BtnBack = (GButton)comp.GetChild("BtnBack");
+            m_t0 = comp.GetTransition("t0");
+            m_t1 = comp.GetTransition("t1");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_bg = null;
+            m_playerShow1.Dispose();
+            m_playerShow1 = null;
+            m_playerShow2.Dispose();
+            m_playerShow2 = null;
+            m_ruleBtn = null;
+            m_titleText = null;
+            m_player1.Dispose();
+            m_player1 = null;
+            m_player2.Dispose();
+            m_player2 = null;
+            m_select1.Dispose();
+            m_select1 = null;
+            m_selectText1 = null;
+            m_select2.Dispose();
+            m_select2 = null;
+            m_selectText2 = null;
+            m_timeText = null;
+            m_BtnBack = null;
+            m_t0 = null;
+            m_t1 = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionSelectUI.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 36b41a5d950f11c4e8afd2538061fd37
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 117 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionUpLoadUI.cs

@@ -0,0 +1,117 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.MatchingCompetition
+{
+    public partial class UI_MatchingCompetitionUpLoadUI
+    {
+        public GComponent target;
+        public Controller m_c1;
+        public GLoader m_bg;
+        public GLoader m_playerImage;
+        public GButton m_BtnBack;
+        public GButton m_btnLook;
+        public GLoader m_ruleBtn;
+        public GTextField m_titleText;
+        public GTextField m_timeText;
+        public GButton m_btnRank;
+        public GButton m_btnUploadWorks;
+        public GButton m_btnShop;
+        public GButton m_btnMyWorks;
+        public GButton m_beforeWork;
+        public UI_Component1 m_playerHead;
+        public GButton m_btnExchage;
+        public GLoader m_countTime;
+        public const string URL = "ui://ri3cveycp3ft1c";
+        public const string PACKAGE_NAME = "MatchingCompetition";
+        public const string RES_NAME = "MatchingCompetitionUpLoadUI";
+        private static UI_MatchingCompetitionUpLoadUI _proxy;
+
+        public static UI_MatchingCompetitionUpLoadUI Create(GObject gObject = null)
+        {
+            var ui = new UI_MatchingCompetitionUpLoadUI();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_MatchingCompetitionUpLoadUI Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_MatchingCompetitionUpLoadUI();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_c1 = comp.GetController("c1");
+            m_bg = (GLoader)comp.GetChild("bg");
+            m_playerImage = (GLoader)comp.GetChild("playerImage");
+            m_BtnBack = (GButton)comp.GetChild("BtnBack");
+            m_btnLook = (GButton)comp.GetChild("btnLook");
+            m_ruleBtn = (GLoader)comp.GetChild("ruleBtn");
+            m_titleText = (GTextField)comp.GetChild("titleText");
+            m_timeText = (GTextField)comp.GetChild("timeText");
+            m_btnRank = (GButton)comp.GetChild("btnRank");
+            m_btnUploadWorks = (GButton)comp.GetChild("btnUploadWorks");
+            m_btnShop = (GButton)comp.GetChild("btnShop");
+            m_btnMyWorks = (GButton)comp.GetChild("btnMyWorks");
+            m_beforeWork = (GButton)comp.GetChild("beforeWork");
+            m_playerHead = (UI_Component1)UI_Component1.Create(comp.GetChild("playerHead"));
+            m_btnExchage = (GButton)comp.GetChild("btnExchage");
+            m_countTime = (GLoader)comp.GetChild("countTime");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_c1 = null;
+            m_bg = null;
+            m_playerImage = null;
+            m_BtnBack = null;
+            m_btnLook = null;
+            m_ruleBtn = null;
+            m_titleText = null;
+            m_timeText = null;
+            m_btnRank = null;
+            m_btnUploadWorks = null;
+            m_btnShop = null;
+            m_btnMyWorks = null;
+            m_beforeWork = null;
+            m_playerHead.Dispose();
+            m_playerHead = null;
+            m_btnExchage = null;
+            m_countTime = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionUpLoadUI.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: bb8da60488bac444394c45bc05a7326f
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 83 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionWorkListUI.cs

@@ -0,0 +1,83 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.MatchingCompetition
+{
+    public partial class UI_MatchingCompetitionWorkListUI
+    {
+        public GComponent target;
+        public GLoader m_bg;
+        public GGraph m_suitShow;
+        public GTextField m_titleText;
+        public GList m_workList;
+        public GButton m_BtnBack;
+        public const string URL = "ui://ri3cveycp3ft1p";
+        public const string PACKAGE_NAME = "MatchingCompetition";
+        public const string RES_NAME = "MatchingCompetitionWorkListUI";
+        private static UI_MatchingCompetitionWorkListUI _proxy;
+
+        public static UI_MatchingCompetitionWorkListUI Create(GObject gObject = null)
+        {
+            var ui = new UI_MatchingCompetitionWorkListUI();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_MatchingCompetitionWorkListUI Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_MatchingCompetitionWorkListUI();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_bg = (GLoader)comp.GetChild("bg");
+            m_suitShow = (GGraph)comp.GetChild("suitShow");
+            m_titleText = (GTextField)comp.GetChild("titleText");
+            m_workList = (GList)comp.GetChild("workList");
+            m_BtnBack = (GButton)comp.GetChild("BtnBack");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_bg = null;
+            m_suitShow = null;
+            m_titleText = null;
+            m_workList = null;
+            m_BtnBack = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionWorkListUI.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 65b16f241c6272e489dd213b6b0672fa
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 83 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionWorksUI.cs

@@ -0,0 +1,83 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.MatchingCompetition
+{
+    public partial class UI_MatchingCompetitionWorksUI
+    {
+        public GComponent target;
+        public GLoader m_bg;
+        public GTextField m_titleText;
+        public GList m_worksList;
+        public GTextField m_descText;
+        public GButton m_BtnBack;
+        public const string URL = "ui://ri3cveycp3ft1n";
+        public const string PACKAGE_NAME = "MatchingCompetition";
+        public const string RES_NAME = "MatchingCompetitionWorksUI";
+        private static UI_MatchingCompetitionWorksUI _proxy;
+
+        public static UI_MatchingCompetitionWorksUI Create(GObject gObject = null)
+        {
+            var ui = new UI_MatchingCompetitionWorksUI();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_MatchingCompetitionWorksUI Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_MatchingCompetitionWorksUI();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_bg = (GLoader)comp.GetChild("bg");
+            m_titleText = (GTextField)comp.GetChild("titleText");
+            m_worksList = (GList)comp.GetChild("worksList");
+            m_descText = (GTextField)comp.GetChild("descText");
+            m_BtnBack = (GButton)comp.GetChild("BtnBack");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_bg = null;
+            m_titleText = null;
+            m_worksList = null;
+            m_descText = null;
+            m_BtnBack = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionWorksUI.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 581147c30ec0e4d4fb350a110d6bde0b
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 77 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingDressItem.cs

@@ -0,0 +1,77 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.MatchingCompetition
+{
+    public partial class UI_MatchingDressItem
+    {
+        public GComponent target;
+        public GImage m_iconSelected;
+        public GTextField m_txtTitle;
+        public GLoader m_icon;
+        public const string URL = "ui://ri3cveycp3ft2r";
+        public const string PACKAGE_NAME = "MatchingCompetition";
+        public const string RES_NAME = "MatchingDressItem";
+        private static UI_MatchingDressItem _proxy;
+
+        public static UI_MatchingDressItem Create(GObject gObject = null)
+        {
+            var ui = new UI_MatchingDressItem();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_MatchingDressItem Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_MatchingDressItem();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_iconSelected = (GImage)comp.GetChild("iconSelected");
+            m_txtTitle = (GTextField)comp.GetChild("txtTitle");
+            m_icon = (GLoader)comp.GetChild("icon");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_iconSelected = null;
+            m_txtTitle = null;
+            m_icon = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingDressItem.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 4592105d72afffe49b8dd23b0858bef9
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 83 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingTypeItem.cs

@@ -0,0 +1,83 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.MatchingCompetition
+{
+    public partial class UI_MatchingTypeItem
+    {
+        public GComponent target;
+        public Controller m_itemType;
+        public GLoader m_icon;
+        public GImage m_imgNeed;
+        public GImage m_imgNew;
+        public GTextField m_txtname;
+        public const string URL = "ui://ri3cveycn3um2w";
+        public const string PACKAGE_NAME = "MatchingCompetition";
+        public const string RES_NAME = "MatchingTypeItem";
+        private static UI_MatchingTypeItem _proxy;
+
+        public static UI_MatchingTypeItem Create(GObject gObject = null)
+        {
+            var ui = new UI_MatchingTypeItem();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_MatchingTypeItem Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_MatchingTypeItem();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_itemType = comp.GetController("itemType");
+            m_icon = (GLoader)comp.GetChild("icon");
+            m_imgNeed = (GImage)comp.GetChild("imgNeed");
+            m_imgNew = (GImage)comp.GetChild("imgNew");
+            m_txtname = (GTextField)comp.GetChild("txtname");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_itemType = null;
+            m_icon = null;
+            m_imgNeed = null;
+            m_imgNew = null;
+            m_txtname = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingTypeItem.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 6abf72f0918c15e4dba4412e7ba420ae
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 6 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/poem/UI_PoemPhotoUI.cs

@@ -13,6 +13,7 @@ namespace UI.Poem
         public GButton m_btnback;
         public GList m_list;
         public GList m_listTravel;
+        public GList m_listCompetion;
         public GLoader m_icon;
         public GList m_typeList;
         public GButton m_btnConfirmDelete;
@@ -22,6 +23,7 @@ namespace UI.Poem
         public GTextField m_txtCount;
         public GButton m_btnChooseAll;
         public GButton m_btnRule;
+        public GTextField m_descText;
         public const string URL = "ui://iyz778gkv4825";
         public const string PACKAGE_NAME = "Poem";
         public const string RES_NAME = "PoemPhotoUI";
@@ -75,6 +77,7 @@ namespace UI.Poem
             m_btnback = (GButton)comp.GetChild("btnback");
             m_list = (GList)comp.GetChild("list");
             m_listTravel = (GList)comp.GetChild("listTravel");
+            m_listCompetion = (GList)comp.GetChild("listCompetion");
             m_icon = (GLoader)comp.GetChild("icon");
             m_typeList = (GList)comp.GetChild("typeList");
             m_btnConfirmDelete = (GButton)comp.GetChild("btnConfirmDelete");
@@ -84,6 +87,7 @@ namespace UI.Poem
             m_txtCount = (GTextField)comp.GetChild("txtCount");
             m_btnChooseAll = (GButton)comp.GetChild("btnChooseAll");
             m_btnRule = (GButton)comp.GetChild("btnRule");
+            m_descText = (GTextField)comp.GetChild("descText");
         }
         public void Dispose(bool disposeTarget = false)
         {
@@ -93,6 +97,7 @@ namespace UI.Poem
             m_btnback = null;
             m_list = null;
             m_listTravel = null;
+            m_listCompetion = null;
             m_icon = null;
             m_typeList = null;
             m_btnConfirmDelete = null;
@@ -102,6 +107,7 @@ namespace UI.Poem
             m_txtCount = null;
             m_btnChooseAll = null;
             m_btnRule = null;
+            m_descText = null;
             if(disposeTarget && target != null)
             {
                 target.RemoveFromParent();

+ 1 - 0
GameClient/Assets/Game/HotUpdate/ServerProxy/CommonSProxy.cs

@@ -72,6 +72,7 @@ namespace GFGGame
                     await NewYearRedEnvelopeSProxy.ReqGetRedPacketInfo();
                     await ActivityGetYuanXiaoProxy.ReqGetActivityGameInfos();
                     await ActivityFYJYProxy.ReqGetActivityGameInfos();
+                    await MatchingCompetitionSproxy.ReqMatchingCompetitionInfo();
                     ActivityDataManager.Instance.todayActivityTips = GameGlobal.myNumericComponent.GetAsInt(NumericType.IsPropYchmActivity);
                     ActivityDataManager.Instance.todayMonthlyCardTips = GameGlobal.myNumericComponent.GetAsInt(NumericType.IsPropCzykActivity);
                     EventAgent.DispatchEvent(ConstMessage.RESET_DAILY_DATA);

+ 271 - 0
GameClient/Assets/Game/HotUpdate/ServerProxy/MatchingCompetitionSproxy.cs

@@ -0,0 +1,271 @@
+using ET;
+using GFGGame;
+using FairyGUI;
+using UnityEngine;
+using UnityEngine.Networking;
+using System.Collections.Generic;
+
+namespace ET
+{
+    public class M2C_NoticeMatchingStateHandler : AMHandler<S2C_PushJudgingRoundInfo>
+    {
+        protected override async ETTask Run(Session session, S2C_PushJudgingRoundInfo message)
+        {
+            MatchingCompetitionDataManager.Instance.MatchingCompetitionSeason = message.JudgingRoundOpenId;
+            MatchingCompetitionDataManager.Instance.MatchingEndTimes = message.PhaseEndTime;
+            MatchingCompetitionDataManager.Instance.MatchingState = message.PhaseType;
+            //await MatchingCompetitionSproxy.ReqMatchingCompetitionInfo();
+            await ETTask.CompletedTask;
+        }
+    }
+}
+namespace GFGGame
+{
+    public class MatchingCompetitionSproxy
+    {
+        //获取搭配评选赛信息
+        public static async ETTask<bool> ReqMatchingCompetitionInfo()
+        {
+            S2C_GetJudgingRoundInfo response = (S2C_GetJudgingRoundInfo)await MessageHelper.SendToServer(new C2S_GetJudgingRoundInfo { });
+            if (!(response is { Error: ErrorCode.ERR_Success })) return false;
+            MatchingCompetitionDataManager.Instance.MatchingCompetitionSeason = response.JudgingRoundOpenId;
+            MatchingCompetitionDataManager.Instance.MatchingState = response.PhaseType;
+            MatchingCompetitionDataManager.Instance.MatchingEndTimes = response.PhaseEndTime;
+            MatchingCompetitionDataManager.Instance.MatchingRemainingTimes = response.Num;
+            if(response.MyWorks != null)
+            {
+                MatchingCompetitionDataManager.Instance.myWorks = response.MyWorks;
+                MatchingCompetitionDataManager.Instance.WorksID = response.MyWorks.WorksId;
+                MatchingCompetitionDataManager.Instance.AllDressIDInfoList = response.MyWorks.CollocationInfoList;
+            }
+            else
+            {
+                MatchingCompetitionDataManager.Instance.myWorks.Score = 0;
+                MatchingCompetitionDataManager.Instance.AllDressIDInfoList = new List<CollocationInfo>();
+            }
+            if(response.MyWorks != null && response.MyWorks.PictureTempUrl != "")
+            {
+                Timers.inst.StartCoroutine(MatchingPhotoHelper.DownloadMyself(response.MyWorks.PictureTempUrl));
+            }
+            MatchingCompetitionDataManager.Instance.AnalysisInfoToList();
+            return true;
+        }
+        //获取搭配作品信息
+        //public static async ETTask<bool> ReqMatchingCompetitionDressData()
+        //{
+        //    var response = (S2C_RequestUpLoadJudgingRoundWorks)await MessageHelper.SendToServer(new C2S_RequestUpLoadJudgingRoundWorks {});
+        //    if (!(response is { Error: ErrorCode.ERR_Success })) return false;
+        //    return true;
+        //}
+        //获取一个热门推荐的玩家
+        public static async ETTask<bool> ReqGetOnePlayers()
+        {
+            var response = (S2C_GetOnePlayers)await MessageHelper.SendToServer(new C2S_GetOnePlayers { });
+            if (!(response is { Error: ErrorCode.ERR_Success })) return false;
+            MatchingOneDataManager.Instance.OneRoleInfo.JudgingInfo = response.JudgingRoundRole;
+            if (response.JudgingRoundRole == null)
+            {
+                return false;
+            }
+            Timers.inst.StartCoroutine(MatchingPhotoHelper.Download(MatchingOneDataManager.Instance.OneRoleInfo));
+            MatchingOneDataManager.Instance.AnalysisInfoToList();
+            return true;
+        }
+        //上传作品信息
+        public static async ETTask<object[]> UpLoadMatchingCompetitionDressData()
+        {
+            MatchingCompetitionDataManager.Instance.ConvertInfoToList();
+            var response = (S2C_RequestUpLoadJudgingRoundWorks)await MessageHelper.SendToServer(new C2S_RequestUpLoadJudgingRoundWorks
+            {
+                PictureType = 1,
+                BagId = MatchingCompetitionDataManager.Instance.DressUpBgID,
+                ActionId = MatchingCompetitionDataManager.Instance.MathingDressDate.actionId,
+                CollocationInfoList = MatchingCompetitionDataManager.Instance.AllDressIDInfoList
+            });
+            if (!(response is { Error: ErrorCode.ERR_Success })) return null;
+            MatchingCompetitionDataManager.Instance.WorksID = response.WorksId;
+            MatchingCompetitionDataManager.Instance.TempPictureUrl = response.TempPictureUrl;
+            return new object[] { response.TempPictureUrl, response.WorksId };
+        }
+        //通知服务端上传成功
+        public static async ETTask<bool> UploadSuccess()
+        {
+            var response = (S2C_NoticeJudgingRoundWorksUploaded)await MessageHelper.SendToServer(new C2S_NoticeJudgingRoundWorksUploaded
+            {
+                WorksId = MatchingCompetitionDataManager.Instance.WorksID
+            }) ;
+            if (!(response is { Error: ErrorCode.ERR_Success })) return false;
+            
+            return true;
+        }
+
+        //获取两个评选推荐的玩家
+        public static async ETTask<bool> ReqGetTwoPlayers()
+        {
+            var response = (S2C_GetTwoPlayers)await MessageHelper.SendToServer(new C2S_GetTwoPlayers { });
+            if (!(response is { Error: ErrorCode.ERR_Success })) return false;
+            if(response.JudgingRoundRoleInfoList == null || response.JudgingRoundRoleInfoList.Count < 2)
+            {
+                return false;
+            }
+            MatchingLeftDataManager.Instance.LeftRoleInfo.JudgingInfo = response.JudgingRoundRoleInfoList[0];
+            if(response.JudgingRoundRoleInfoList[0] != null)
+            {
+                Timers.inst.StartCoroutine(MatchingPhotoHelper.Download(MatchingLeftDataManager.Instance.LeftRoleInfo));
+            }
+            MatchingLeftDataManager.Instance.AnalysisInfoToList();
+
+            MatchingRightDataManager.Instance.RightRoleInfo.JudgingInfo = response.JudgingRoundRoleInfoList[1];
+            if (response.JudgingRoundRoleInfoList[1] != null)
+            {
+                Timers.inst.StartCoroutine(MatchingPhotoHelper.Download(MatchingRightDataManager.Instance.RightRoleInfo));
+            }
+            MatchingRightDataManager.Instance.AnalysisInfoToList();
+            return true;
+        }
+        //选择搭配作品
+        public static async ETTask<bool> ReqCheckMatchingCompetitionWork(long workID,long anotherWorkId )
+        {
+            var response = (S2C_SelFavoriteWorks)await MessageHelper.SendToServer(new C2S_SelFavoriteWorks
+            {
+                WorksId = workID,
+                AnotherWorksId = anotherWorkId
+            }) ;
+            if (!(response is { Error: ErrorCode.ERR_Success })) return false;
+            if (response.JudgingRoundRoleInfoList == null || response.JudgingRoundRoleInfoList.Count < 2)
+            {
+                return false;
+            }
+            MatchingCompetitionDataManager.Instance.MatchingRemainingTimes = response.Num;
+            MatchingCompetitionDataManager.Instance.SpecialBonusList = response.SpecialBonusList;
+            if (MatchingLeftDataManager.Instance.LeftRoleInfo.JudgingInfo.WorksId == workID)
+            {
+                MatchingLeftDataManager.Instance.LeftRoleInfo.JudgingInfo = response.JudgingRoundRoleInfoList[0];
+                MatchingRightDataManager.Instance.RightRoleInfo.JudgingInfo = response.JudgingRoundRoleInfoList[1];
+            }
+            else
+            {
+                MatchingLeftDataManager.Instance.LeftRoleInfo.JudgingInfo = response.JudgingRoundRoleInfoList[1];
+                MatchingRightDataManager.Instance.RightRoleInfo.JudgingInfo = response.JudgingRoundRoleInfoList[0];
+            }
+            BonusController.TryShowBonusList(ItemUtil.CreateItemDataList(response.BonusList));
+            return true;
+        }
+        //获取当前排行榜
+        public static async ETTask<bool> ReqCurrentRank()
+        {
+            var response = (S2C_GetCurJudgingRoundRankList)await MessageHelper.SendToServer(new C2S_GetCurJudgingRoundRankList { });
+            if (!(response is { Error: ErrorCode.ERR_Success })) return false;
+            MatchingCompetitionDataManager.Instance._currentRankList.Clear();
+            foreach (var item in response.JudgingRoundRoleInfoList)
+            {
+                MatchingPhotoWorksData data = new MatchingPhotoWorksData();
+                data.JudgingInfo = item;
+                MatchingCompetitionDataManager.Instance._currentRankList.Add(data);
+            }
+            Timers.inst.StartCoroutine(MatchingPhotoHelper.Download(MatchingCompetitionDataManager.Instance._currentRankList));
+            return true;
+        }
+        //获取往期作品集
+        public static async ETTask<bool> ReqBeforeWorks()
+        {
+            var response = (S2C_GetPreviousWorksCollection)await MessageHelper.SendToServer(new C2S_GetPreviousWorksCollection { });
+            if (!(response is { Error: ErrorCode.ERR_Success })) return false;
+            MatchingCompetitionDataManager.Instance._BeforeWorksList.Clear();
+            foreach (var item in response.WorksCollectionList)
+            {
+                MatchingWorksData data = new MatchingWorksData();
+                data.WorksInfo = item;
+                MatchingCompetitionDataManager.Instance._BeforeWorksList.Add(data);
+            }
+            Timers.inst.StartCoroutine(MatchingPhotoHelper.Download(MatchingCompetitionDataManager.Instance._BeforeWorksList));
+            return true;
+        }
+        //获取往期作品排行榜
+        public static async ETTask<bool> ReqBeforeRank(int id)
+        {
+            var response = (S2C_GetOldJudgingRoundRankList)await MessageHelper.SendToServer(new C2S_GetOldJudgingRoundRankList { JudgingRoundOpenId = id});
+            if (!(response is { Error: ErrorCode.ERR_Success })) return false;
+            MatchingCompetitionDataManager.Instance._BeforeRankList.Clear();
+            foreach (var item in response.JudgingRoundRoleInfoList)
+            {
+                MatchingPhotoWorksData data = new MatchingPhotoWorksData();
+                data.JudgingInfo = item;
+                MatchingCompetitionDataManager.Instance._BeforeRankList.Add(data);
+            }
+            Timers.inst.StartCoroutine(MatchingPhotoHelper.Download(MatchingCompetitionDataManager.Instance._BeforeRankList));
+            return true;
+        }
+
+        //搭配赛相册系协议
+        public static async ETTask<bool> ReqMatchingPhotoData()
+        {
+            var response = (S2C_GetJudgingRoundWorksList)await MessageHelper.SendToServer(new C2S_GetJudgingRoundWorksList { });
+            if (!(response is { Error: ErrorCode.ERR_Success })) return false;
+            MatchingCompetitionDataManager.Instance.MatchingPhotoInfos.Clear();
+            foreach (var item in response.JudgingRoundRoleInfoList)
+            {
+                PoemPhotoData photoData = new PoemPhotoData();
+                photoData.PictureId = item.WorksId;
+                photoData.CreationTime = item.CreationTime;
+                photoData.ToppingStatus = item.ToppingStatus;
+                photoData.PictureTempUrl = item.PictureTempUrl;
+                MatchingCompetitionDataManager.Instance.MatchingPhotoInfos.Add(photoData);
+            }
+            Timers.inst.StartCoroutine(PictureStorageHelper.Download(MatchingCompetitionDataManager.Instance.MatchingPhotoInfos));
+            return true;
+        }
+        //修改图片锁定状态
+        public static async ETTask<bool> ReqChangeLockingState(long pictureId, bool state, int sourceType)
+        {
+            S2C_UpJudgingRoundWorksLockingStatus response = null;
+            response = (S2C_UpJudgingRoundWorksLockingStatus)await MessageHelper.SendToServer(new C2S_UpJudgingRoundWorksLockingStatus() { WorksId = pictureId, Status = state });
+            if (response != null)
+            {
+                if (response.Error == ErrorCode.ERR_Success)
+                {
+                    PoemPhotoDataManager.Instance.ChangeLockingState(response.WorksId, response.Status, sourceType);
+                    EventAgent.DispatchEvent(ConstMessage.POEM_PHOTO_INFOS_CHANGE);
+
+                    return true;
+                }
+            }
+            return false;
+        }
+
+        //修改图片置顶状态
+        public static async ETTask<bool> ReqChangeToppingState(long pictureId, bool state, int sourceType)
+        {
+            S2C_UpJudgingRoundWorksToppingStatus response = null;
+            response = (S2C_UpJudgingRoundWorksToppingStatus)await MessageHelper.SendToServer(new C2S_UpJudgingRoundWorksToppingStatus() { WorksId = pictureId, Status = state });
+            if (response != null)
+            {
+                if (response.Error == ErrorCode.ERR_Success)
+                {
+
+                    PoemPhotoDataManager.Instance.ChangeToppingState(response.WorksId, response.Status, sourceType);
+                    EventAgent.DispatchEvent(ConstMessage.POEM_PHOTO_INFOS_CHANGE);
+                    return true;
+                }
+            }
+            return false;
+        }
+        //批量删除玩家相册
+        public static async ETTask<bool> ReqRemovedPhoto(List<long> pictureIds, int sourceType)
+        {
+            S2C_RemovedJudgingRoundWorks response = null;
+            response = (S2C_RemovedJudgingRoundWorks)await MessageHelper.SendToServer(new C2S_RemovedJudgingRoundWorks() { WorksIds = pictureIds });
+            if (response != null)
+            {
+                if (response.Error == ErrorCode.ERR_Success)
+                {
+                    PoemPhotoDataManager.Instance.Remove(response.WorksIds, sourceType);
+                    EventAgent.DispatchEvent(ConstMessage.POEM_PHOTO_INFOS_CHANGE);
+
+                    return true;
+                }
+            }
+            return false;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/ServerProxy/MatchingCompetitionSproxy.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: bf4e3f984eddf8343aade28bac547be1
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 1 - 0
GameClient/Assets/Game/HotUpdate/Views/CommonGame/RewardView.cs

@@ -139,6 +139,7 @@ namespace GFGGame
             }
             base.OnHide();
             //_effects.Clear();
+            EventAgent.DispatchEvent(ConstMessage.REWARDVIEW_CLOTHER);
             GetSuitItemController.TryShow(0);
         }
         private void RenderListRewardItem(int index, GObject obj)

+ 44 - 4
GameClient/Assets/Game/HotUpdate/Views/DressUp/DressUpView.cs

@@ -4,6 +4,7 @@ using UnityEngine;
 using System.Collections.Generic;
 using ET;
 using System;
+using System.Collections;
 
 namespace GFGGame
 {
@@ -184,7 +185,15 @@ namespace GFGGame
             currentIndex = CustomSuitDataManager.currentIndex;
             _ui.m_comboBox.items = CustomSuitDataManager.GetSuitPosItems();
             _ui.m_comboBox.selectedIndex = currentIndex;
-            MyDressUpHelper.PutOnSuitSavedByPos(currentIndex);
+            if(this.viewData != null && (int)this.viewData == 2)
+            {
+                MyDressUpHelper.dressUpObj.PutOnDressUpData(MatchingCompetitionDataManager.Instance.MathingDressDate);
+            }
+            else
+            {
+                MyDressUpHelper.PutOnSuitSavedByPos(currentIndex);
+            }
+            
             UpdateStepBtn(true);
 
             Timers.inst.AddUpdate(CheckGuide);
@@ -250,7 +259,6 @@ namespace GFGGame
         {
             if (!MyDressUpHelper.OnClickBtnNextStep()) return;
             UpdateStepBtn(false);
-
         }
         private void OnComboBoxChanged()
         {
@@ -324,11 +332,12 @@ namespace GFGGame
             if (_currentMenuType == ConstDressUpItemType.TAO_ZHUANG)
             {
                 partsListScrollingPosY = _ui.m_partsList.m_list.scrollPane.scrollingPosY;
-
+                MatchingCompetitionDataManager.Instance.DressPropTransInfoDic.Clear();
                 OnBtnNormalClick(context);
             }
             else if (_currentMenuType == ConstDressUpItemType.DONG_ZUO)
             {
+                MatchingCompetitionDataManager.Instance.DressPropTransInfoDic.Clear();
                 MyDressUpHelper.dressUpObj.PutOnOrTakeOffAction(id);
             }
             else
@@ -464,6 +473,7 @@ namespace GFGGame
         {
             MyDressUpHelper.dressUpObj.TakeOffAll();
             MyDressUpHelper.dressUpObj.AddOrRemove(ConstItemID.DEFULT_BG, false);
+            MatchingCompetitionDataManager.Instance.DressPropTransInfoDic.Clear();
             UpdateBtnAction();
             _ui.m_partsList.m_list.numItems = _currentList3.Count;
             _ui.m_partsList2.m_list.numItems = _currentList4.Count;
@@ -503,7 +513,14 @@ namespace GFGGame
         {
             _currentList2 = null;
             currentListType = DressUpListType.List1;
-            _ui.m_comListType1.m_listType.numItems = DressUpMenuItemCfg1Array.Instance.dataArray.Length;
+            if (this.viewData == null || (int)this.viewData != 2)
+            {
+                _ui.m_comListType1.m_listType.numItems = DressUpMenuItemCfg1Array.Instance.dataArray.Length;
+            }
+            else
+            {
+                _ui.m_comListType1.m_listType.numItems = DressUpMenuItemCfg1Array.Instance.dataArray.Length - 2;
+            }
             GTween.To(_ui.target.width, listType1X, 0.5f)
                 .SetTarget(_ui.m_comListType1.target)
                 .OnUpdate((GTweener t) =>
@@ -717,6 +734,13 @@ namespace GFGGame
         {
             UI_TypeItem typeItem = UI_TypeItem.Proxy(item);
             DressUpMenuItemCfg1 item1 = DressUpMenuItemCfg1Array.Instance.dataArray[index];
+            if(this.viewData != null && (int)this.viewData == 2)
+            {
+                if(index == DressUpMenuItemCfg1Array.Instance.dataArray.Length - 2)
+                {
+                    item1 = DressUpMenuItemCfg1Array.Instance.dataArray[index+1];
+                }
+            }
             typeItem.m_icon.url = "ui://DressUp/hz_fenleitu_" + item1.id;
             typeItem.m_txtname.text = item1.name;
             //typeItem.m_imgTitle.url = "ui://DressUp/hz_iconzi_" + item1.id;
@@ -1092,9 +1116,25 @@ namespace GFGGame
             {
                 return;
             }
+            if (this.viewData != null && (int)this.viewData == 2)
+            {
+                ViewManager.Show<LoadingView>();
+                LoadingView.Instance.SetDesc("正在摆放道具...");
+                Timers.inst.StartCoroutine(UpdateLoadProgress());
+            }
             _ui.target.visible = false;
             this._sceneObject.gameObject.SetActive(false);
         }
+        private IEnumerator UpdateLoadProgress()
+        {
+            yield return new WaitForEndOfFrame();
+            LoadingView.Instance.SetProgress(100, () =>
+            {
+                ViewManager.Hide<LoadingView>();
+            }
+            );
+
+        }
         private void UpdateScene()
         {
             _ui.target.visible = true;

+ 246 - 13
GameClient/Assets/Game/HotUpdate/Views/DressUp/PhotographView.cs

@@ -4,10 +4,12 @@ using System;
 using System.Collections;
 using System.Collections.Generic;
 using System.Drawing;
+using System.Linq;
 using UI.DressUp;
 using UnityEditor;
 using UnityEngine;
 using UnityEngine.EventSystems;
+using System.Threading.Tasks;
 
 namespace GFGGame
 {
@@ -111,7 +113,7 @@ namespace GFGGame
 
         }
 
-        protected override void OnShown()
+        protected override async void OnShown()
         {
             base.OnShown();
             Input.multiTouchEnabled = true;
@@ -125,6 +127,7 @@ namespace GFGGame
             _equipSceneData = PhotographDataManager.Instance._equipSceneData;
 
             PhotographDataManager.Instance.itemGameObjs.Clear();
+            MatchingCompetitionDataManager.Instance.DressPropTransInfoDic.Clear();
             _itemGameObjs = PhotographDataManager.Instance.itemGameObjs;
             if (_sceneObject == null)
             {
@@ -138,6 +141,7 @@ namespace GFGGame
 
             _ui.m_ComSelectRes.m_comBtnTab.m_c1.selectedIndex = 0;
 
+            MatchingCompetitionDataManager.Instance.itemGameObjs.Clear();
             RefreshList(EnumPhotographType.BG);
             SetUIView();
             PhotographSceneManager.Instance.AddBgItem(ItemCfgArray.Instance.GetCfg(MyDressUpHelper.dressUpObj.bgId));
@@ -149,6 +153,16 @@ namespace GFGGame
             _ui.m_txtCount.text = string.Format("{0}/{1}", PoemGalleryDataManager.Instance.MyWorksCountOfTheme, GlobalCfgArray.globalCfg.maxGalleryWorksCount);
 
             Timers.inst.AddUpdate(CheckGuide);
+            //Timers.inst.Add(0.5f, 1, UpdateSceneTransform);
+            if(this.viewData != null && (int)this.viewData == 2)
+            {
+                if (MyDressUpHelper.dressUpObj.bgId != 0)
+                {
+                    MatchingCompetitionDataManager.Instance.DressUpBgID = MyDressUpHelper.dressUpObj.bgId;
+                    MatchingCompetitionDataManager.Instance.MathingDressDate.bgId = MatchingCompetitionDataManager.Instance.DressUpBgID;
+                }
+                //await UpdateSceneTransform();
+            }  
         }
 
         /************************************************************UI界面*********************************************************/
@@ -255,21 +269,37 @@ namespace GFGGame
             switch (type)
             {
                 case EnumPhotographType.BG:
-
+                    MatchingCompetitionDataManager.Instance.DressUpBgID = itemCfg.id;
+                    MatchingCompetitionDataManager.Instance.MathingDressDate.bgId = itemCfg.id;
                     PhotographSceneManager.Instance.AddBgItem(itemCfg);
                     break;
 
                 case EnumPhotographType.BORDER:
+                    if (itemCfg.id != ConstItemID.BORDERID)
+                    {
+                        MatchingCompetitionDataManager.Instance.BorderID = itemCfg.id;
+                    }
+                    else
+                    {
+                        MatchingCompetitionDataManager.Instance.BorderID = 0;
+                    }  
                     PhotographSceneManager.Instance.AddBorderItem(itemCfg);
                     break;
 
                 case EnumPhotographType.NPC:
-
+                    MatchingCompetitionDataManager.Instance.NpcID = itemCfg.id;
                     PhotographSceneManager.Instance.AddNpcItem(itemCfg);
                     break;
 
                 case EnumPhotographType.SCENE:
-                    AddSceneItem(itemCfg, true);
+                    if (this.viewData == null || (int)this.viewData != 2)
+                    {
+                        AddSceneItem(itemCfg, true);
+                    }
+                    else
+                    {
+                        MatchingCompetitionDataManager.Instance.AddSceneItem(itemCfg, true);
+                    }
                     break;
                 case EnumPhotographType.EFFECT:
 
@@ -279,15 +309,111 @@ namespace GFGGame
         //添加初始场景道具
         private void UpdateScene()
         {
-            ICollection keys = _equipSceneData.Keys;
-            foreach (int key in keys)
+            if (this.viewData == null || (int)this.viewData != 2)
+            {
+                ICollection keys = _equipSceneData.Keys;
+                foreach (int key in keys)
+                {
+                    for (int i = 0; i < _equipSceneData[key].Count; i++)
+                    {
+                        ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(key);
+                        AddSceneItem(itemCfg, false);
+                    }
+                }
+            }
+            else
             {
-                for (int i = 0; i < _equipSceneData[key].Count; i++)
+                ICollection keys = _equipSceneData.Keys;
+                foreach (int key in keys)
+                {
+                    for (int i = 0; i < _equipSceneData[key].Count; i++)
+                    {
+                        bool isAdd = false;
+                        foreach (var item in MatchingCompetitionDataManager.Instance.DressPropTransInfoDic)
+                        {
+                            if (MatchingCompetitionDataManager.Instance.GetIDByString(item.Key).ToString() == _equipSceneData[key][0].ToString())
+                            {
+                                isAdd = true;
+                                break;
+                            }                            
+                        }
+                        if(!isAdd)
+                        {
+                            MatchingCompetitionDataManager.Instance.DressPropTransInfoDic.Add(key.ToString(), new TransformData());
+                        }
+                    }
+                }
+                //对搭配赛特殊处理
+                foreach(var item in MatchingCompetitionDataManager.Instance.DressPropTransInfoDic)
                 {
-                    ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(key);
+                    if(item.Key == MatchingCompetitionDataManager.Instance.roleID)
+                    {
+                        continue;
+                    }
+                    else
+                    {
+                        List<int> idList = MatchingCompetitionDataManager.Instance.GetIDListByString(item.Key);
+                        ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(idList[0]);
+                        if (itemCfg.itemType == ConstItemType.PHOTOGRAPH && itemCfg.subType == ConstItemSubType.PHOTOGRAPH_BOREDR)
+                        {
+                            PhotographSceneManager.Instance.AddBorderItem(itemCfg);
+                        }
+                        else if(itemCfg.itemType == ConstItemType.PHOTOGRAPH && itemCfg.subType == ConstItemSubType.PHOTOGRAPH_NPC)
+                        {
+                            PhotographSceneManager.Instance.AddNpcItem(itemCfg);
+                        }
+                        else
+                        {
+                            if(idList.Count > 1)
+                            {
+                                MatchingCompetitionDataManager.Instance.AddSceneItemOne(itemCfg, idList[1],idList[2]);
+                            }
+                            else
+                            {
+                                MatchingCompetitionDataManager.Instance.AddSceneItem(itemCfg, false);
+                            }
+                           
+                        }                
+                    }
+                }
 
-                    AddSceneItem(itemCfg, false);
+            }
+        }
+        public async Task UpdateSceneTransform()
+        {
+            //int time = 5 * (MatchingCompetitionDataManager.Instance.TransformDataList.Count+1);
+            if (MatchingCompetitionDataManager.Instance.DressUpBgID == 0)
+            {
+                PhotographSceneManager.Instance.AddBgItem(ItemCfgArray.Instance.GetCfg(180001));
+            }
+            else
+            {
+                PhotographSceneManager.Instance.AddBgItem(ItemCfgArray.Instance.GetCfg(MatchingCompetitionDataManager.Instance.DressUpBgID));  
+            }
+            await Task.Delay(100);
+            if (MatchingCompetitionDataManager.Instance.BorderID != 0)
+            {
+                GameObject borderGameObj = PhotographSceneManager.Instance.sceneObject.transform.Find("Border").gameObject;
+                MatchingCompetitionDataManager.Instance.itemGameObjs.Add(borderGameObj);
+            }
+            if (MatchingCompetitionDataManager.Instance.NpcID != 0)
+            {
+                GameObject NpcGameObj = PhotographSceneManager.Instance.sceneObject.transform.Find("Scene/Npc").gameObject;
+                MatchingCompetitionDataManager.Instance.itemGameObjs.Add(NpcGameObj);
+            }
+            MatchingCompetitionDataManager.Instance.InsertGameObjectList();
+            for (int i = 0; i < MatchingCompetitionDataManager.Instance.itemGameObjs.Count; i++)
+            {
+                GameObject itemGObj = MatchingCompetitionDataManager.Instance.itemGameObjs[i];
+                TransformData itemdata = new TransformData();
+                if (MatchingCompetitionDataManager.Instance.DressPropTransInfoDic.ContainsKey(itemGObj.name))
+                {
+                    itemdata = MatchingCompetitionDataManager.Instance.DressPropTransInfoDic[itemGObj.name];
                 }
+                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");
             }
         }
 
@@ -564,6 +690,7 @@ namespace GFGGame
             }
             else
             {
+                MatchingCompetitionDataManager.Instance.DressPropTransInfoDic.Remove(memoryHitGameObj.name);
                 GameObject.DestroyImmediate(memoryHitGameObj);
             }
             _itemGameObjs.Remove(memoryHitGameObj);
@@ -666,12 +793,117 @@ namespace GFGGame
                     }
                 });
             }
+            else if (_ui.m_c1.selectedIndex == 2)
+            {
+                MatchingCompetitionDataManager.Instance.itemGameObjs = _itemGameObjs.ToList();
+                if(MatchingCompetitionDataManager.Instance.BorderID != 0)
+                {
+                    GameObject borderGameObj = PhotographSceneManager.Instance.sceneObject.transform.Find("Border").gameObject;
+                    MatchingCompetitionDataManager.Instance.itemGameObjs.Add(borderGameObj);
+                }
+                if(MatchingCompetitionDataManager.Instance.NpcID != 0)
+                {
+                    GameObject NpcGameObj = PhotographSceneManager.Instance.sceneObject.transform.Find("Scene/Npc").gameObject;
+                    MatchingCompetitionDataManager.Instance.itemGameObjs.Add(NpcGameObj);
+                }
+                MatchingCompetitionDataManager.Instance.MathingDressDate = MyDressUpHelper.dressUpObj.DressUpDataClone();
+                MatchingCompetitionDataManager.Instance.SetTransformData();
+
+                if(MatchingCompetitionDataManager.Instance.WorksID == 0)
+                {
+                    OnUpLoad(tex);
+                }
+                else
+                {
+                    AlertUI.Show("作品已保存,是否确认上传并替换作品?")
+                    .SetLeftButton(true, "否").SetRightButton(true, "是", async (object data) =>
+                    {
+                        ViewManager.Show<ModalStatusView>("上传中...");
+                        //await MatchingCompetitionSproxy.ReqMatchingCompetitionInfo();
+                        object[] rsp = await MatchingCompetitionSproxy.UpLoadMatchingCompetitionDressData();
+                        if (rsp == null) return;
+                        byte[] bytes = tex.EncodeToJPG();
+                        MatchingCompetitionDataManager.Instance.MyNtextture = new NTexture(tex);
+                        if (rsp[0] == null)
+                        {
+                            ViewManager.Hide<ModalStatusView>();
+                            PromptController.Instance.ShowFloatTextPrompt("网络异常,上传失败!");
+                            return;
+                        }
+                        bool pushResult = await PictureStorageHelper.PushToHWCloud(rsp[0].ToString(), bytes);
+                        if (!pushResult)
+                        {
+                            ViewManager.Hide<ModalStatusView>();
+                            PromptController.Instance.ShowFloatTextPrompt("网络异常,上传失败!");
+                            return;
+                        }
+
+                        bool result = await MatchingCompetitionSproxy.UploadSuccess();
+                        if (result)
+                        {
+                            ViewManager.Hide<ModalStatusView>();
+                            PromptController.Instance.ShowFloatTextPrompt("上传成功!");
+                            this.Hide();
+                            EventAgent.DispatchEvent(ConstMessage.CLOSE_PHOTOGRAPHVIEW);
+                            ViewManager.GoBackFrom(typeof(DressUpView).FullName);
+                        }
+                        ViewManager.Hide<ModalStatusView>();
+                    });
+                }
+
+            }
         }
-        private void OnClickBtnBack()
+        private async void OnUpLoad(Texture2D tex)
         {
-            this.Hide();
+            ViewManager.Show<ModalStatusView>("上传中...");
+            object[] rsp = await MatchingCompetitionSproxy.UpLoadMatchingCompetitionDressData();
+            if (rsp == null) return;
+            byte[] bytes = tex.EncodeToJPG();
+            MatchingCompetitionDataManager.Instance.MyNtextture = new NTexture(tex);
+            if (rsp[0] == null)
+            {
+                ViewManager.Hide<ModalStatusView>();
+                PromptController.Instance.ShowFloatTextPrompt("网络异常,上传失败!");
+                return;
+            }
+            bool pushResult = await PictureStorageHelper.PushToHWCloud(rsp[0].ToString(), bytes);
+            if (!pushResult)
+            {
+                ViewManager.Hide<ModalStatusView>();
+                PromptController.Instance.ShowFloatTextPrompt("网络异常,上传失败!");
+                return;
+            }
+
+            bool result = await MatchingCompetitionSproxy.UploadSuccess();
+            if (result)
+            {
+                ViewManager.Hide<ModalStatusView>();
+                PromptController.Instance.ShowFloatTextPrompt("上传成功!");
+                this.Hide();
+                EventAgent.DispatchEvent(ConstMessage.CLOSE_PHOTOGRAPHVIEW);
+                ViewManager.GoBackFrom(typeof(DressUpView).FullName);
+            }
+            ViewManager.Hide<ModalStatusView>();
+        }
+        private void OnClickBtnBack()
+        {           
             //ViewManager.Show<DressUpView>();
-            EventAgent.DispatchEvent(ConstMessage.CLOSE_PHOTOGRAPHVIEW);
+            if (_ui.m_c1.selectedIndex == 2)
+            {
+                AlertUI.Show("返回将清空搭配道具,是否确定返回?")
+                .SetLeftButton(true, "否").SetRightButton(true, "是", async (object data) =>
+                {
+                    this.Hide();
+                    EventAgent.DispatchEvent(ConstMessage.CLOSE_PHOTOGRAPHVIEW);
+                    ViewManager.GoBackFrom(typeof(PhotographView).FullName);
+                });
+             }
+            else
+            {
+                this.Hide();
+                EventAgent.DispatchEvent(ConstMessage.CLOSE_PHOTOGRAPHVIEW);
+            }
+            
         }
         protected override void OnHide()
         {
@@ -681,7 +913,7 @@ namespace GFGGame
                 PrefabManager.Instance.Restore(_sceneObject);
                 _sceneObject = null;
             }
-
+            MatchingCompetitionDataManager.Instance.DressPropIndex = 0;
             _equipSceneData.Clear();
             hitGameObj = null;
             memoryHitGameObj = null;
@@ -692,6 +924,7 @@ namespace GFGGame
             rotationGesture = null;
             _ui.m_c1.selectedIndex = 0;
             Timers.inst.Remove(CheckGuide);
+            //Timers.inst.Remove(UpdateSceneTransform);
         }
 
         private void CheckGuide(object param)

+ 39 - 6
GameClient/Assets/Game/HotUpdate/Views/InstanceZones/InstanceZonesView.cs

@@ -52,6 +52,7 @@ namespace GFGGame
             _ui.m_btnStudio.target.onClick.Add(OnClickBtnStudio);
             _ui.m_btnTravel.target.onClick.Add(OnClickBtnTravel);
             _ui.m_btnPoem.target.onClick.Add(OnClickBtnPoem);
+            _ui.m_btnPoemGudie.onClick.Add(OnClickBtnPoem);
             _ui.m_btnField.target.onClick.Add(OnTimeTracingClick);
             _ui.m_btnArena.target.onClick.Add(OnClickBtnArena);
             _ui.m_btnBack.onClick.Add(OnClickBtnBack);
@@ -97,8 +98,10 @@ namespace GFGGame
                 || GuideDataManager.IsGuideFinish(ConstGuideId.STUDIO_PROPERTY) <= 0
                 || GuideDataManager.IsGuideFinish(ConstGuideId.STUDIO_FILING) <= 0
                 || GuideDataManager.IsGuideFinish(ConstGuideId.POEM) <= 0
-                || GuideDataManager.IsGuideFinish("ClothingSelectView") <= 0)
-                //|| GuideDataManager.IsGuideFinish(ConstGuideId.FIELD) <= 0)
+                || GuideDataManager.IsGuideFinish("ClothingSelectView") <= 0
+                || (GuideDataManager.IsGuideFinish("DAPEISAI_1") <=0 && MatchingCompetitionDataManager.Instance.MatchingState == 1 && MatchingCompetitionDataManager.Instance.MatchingCompetitionSeason != 0 && InstanceZonesDataManager.CheckLevelPass(100003004))
+                || (GuideDataManager.IsGuideFinish("DAPEISAI_2") <= 0 && MatchingCompetitionDataManager.Instance.MatchingState == 2 && MatchingCompetitionDataManager.Instance.MatchingCompetitionSeason != 0 && InstanceZonesDataManager.CheckLevelPass(100003004)))
+            //|| GuideDataManager.IsGuideFinish(ConstGuideId.FIELD) <= 0)
             {
                 UpdateToCheckGuide(null);
             }
@@ -118,7 +121,7 @@ namespace GFGGame
 
         private void CheckFunOpen()
         {
-            _ui.m_btnPoem.m_loaLockIcon.visible = !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(PoemPhotoView).Name, false);
+            _ui.m_btnPoem.m_loaLockIcon.visible = !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(MatchingCompetitionGatheringView).Name, false);
             _ui.m_btnStudio.m_loaLockIcon.visible = !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(StudioView).Name, false);
             _ui.m_btnTravel.m_loaLockIcon.visible = !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(TravelView).Name, false);
             _ui.m_btnField.m_loaLockIcon.visible = !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(TimeTracingShowView).Name, false);
@@ -140,9 +143,32 @@ namespace GFGGame
             ViewManager.Show<TravelView>();
         }
 
-        private void OnClickBtnPoem()
+        private async void OnClickBtnPoem()
         {
-            ViewManager.Show<PoemPhotoView>();
+            if (MatchingCompetitionDataManager.Instance.MatchingCompetitionSeason > 0)
+            {
+                if (MatchingCompetitionDataManager.Instance.MatchingState == 1)
+                {
+                    ViewManager.Show<MatchingCompetitionGatheringView>();
+                }
+                else
+                {
+                    bool result = await MatchingCompetitionSproxy.ReqGetOnePlayers();
+                    if (result)
+                    {
+                        ViewManager.Show<MatchingCompetitionUpLoadView>();
+                    }
+                    else
+                    {
+                        await MatchingCompetitionSproxy.ReqMatchingCompetitionInfo();
+                        //PromptController.Instance.ShowFloatTextPrompt("暂无玩家数据!");
+                    }
+                }
+            }
+            else
+            {
+                PromptController.Instance.ShowFloatTextPrompt("美人图未开启!");
+            }
         }
 
         private void OnClickBtnField()
@@ -179,7 +205,14 @@ namespace GFGGame
             GuideController.TryGuide(_ui.m_btnStudio.target, ConstGuideId.STUDIO_FILING, 3, "工作室有新的任务啦。");
             //GuideController.TryGuide(_ui.m_btnField.target, ConstGuideId.FIELD, 2, "外出进行历史考察,会有意想不到的收获哦。");
             GuideController.TryGuide(_ui.m_btnStudio.target, ConstGuideId.STUDIO_PROPERTY, 2, "");
-            //GuideController.TryGuide(_ui.m_btnPoem.target, ConstGuideId.POEM, 1, "在“拍照”中保存的图片都会保存到这里。");
+            if(MatchingCompetitionDataManager.Instance.MatchingState == 1 && MatchingCompetitionDataManager.Instance.MatchingCompetitionSeason != 0 && InstanceZonesDataManager.CheckLevelPass(100003004))
+            {
+                GuideController.TryGuide(_ui.m_btnPoemGudie, "DAPEISAI_1", 1, "进入搭配赛,进行搭配!");
+            }
+            else if(MatchingCompetitionDataManager.Instance.MatchingState == 2 && MatchingCompetitionDataManager.Instance.MatchingCompetitionSeason != 0 && InstanceZonesDataManager.CheckLevelPass(100003004))
+            {
+                GuideController.TryGuide(_ui.m_btnPoemGudie, "DAPEISAI_2", 1, "进入搭配赛,进行评选!");
+            }
             GuideController.TryGuide(_ui.m_btnArena.target, ConstGuideId.ARENA_OPEN, 3, "在这里可以与其他小伙伴比拼搭配哦~");
             GuideController.TryGuide(_ui.m_btnBack, ConstGuideId.ENTER_CHAPTER_5, 1, "", -1, false);
             GuideController.TryGuide(_ui.m_btnField.target, "TimeTracingShowView", 3, "合成副本可获得奖励和服装哦~");

+ 20 - 4
GameClient/Assets/Game/HotUpdate/Views/MainUI/MainUIView.cs

@@ -39,6 +39,7 @@ namespace GFGGame
         private GButton _btnBag;
         private GButton _btnActivityDay7;
         private GButton _btnGallery;
+        private GButton _btnPoem;
         private List<EffectUI> _effectUIList = new List<EffectUI>();
         private UI_ButtonModle1[] _btns;
         private bool firstIn;
@@ -98,6 +99,7 @@ namespace GFGGame
             _btnTuJian = _ui.m_list.GetChild("btnTuJian").asButton;
             _btnBag = _ui.m_list.GetChild("btnBag").asButton;
             _btnGallery = _ui.m_list.GetChild("btnGallery").asButton;
+            _btnPoem = _ui.m_list.GetChild("btnPoem").asButton;
 
             _btnActivityDay7 = _ui.m_btnActivityDay7.target;
 
@@ -140,6 +142,7 @@ namespace GFGGame
             _ui.m_btnSevenReward.target.onClick.Add(OnClickSevenReward);
             _ui.m_btnPearRebate.target.onClick.Add(OnClickPearRabate);
             _btnGallery.onClick.Add(OnClickGallery);
+            _btnPoem.onClick.Add(OnClickPoem);
 
             _ui.m_comListAd.m_listAd.itemRenderer = RenderListAdItem;
             _ui.m_comListAd.m_listAd.SetVirtualAndLoop();
@@ -514,6 +517,10 @@ namespace GFGGame
         {
             ViewManager.Show<PoemGalleryView>();
         }
+        private void OnClickPoem()
+        {
+            ViewManager.Show<PoemPhotoView>();
+        }
 
         private void OnClickBtnLeague()
         {
@@ -728,7 +735,7 @@ namespace GFGGame
                 {
                     _ui.m_btnGiftBag1.m_txtTime.text =
                         TimeUtil.GetTimeLeft(TimeInfo.Instance.ServerNow(), list[0].EndTime);
-                    _ui.m_btnGiftBag1.target.visible = true;
+                    _ui.m_btnGiftBag1.target.visible = false;
                 }
             }
 
@@ -771,7 +778,7 @@ namespace GFGGame
             if(zcjbCfg != null)
             {
                 _ui.m_btnActivityZCJB.m_iconMain.url = ResPathUtil.GetActivityPath(zcjbCfg.res, "png");
-            }   
+            }  
         }
 
         private void UpdateOpenServerActivity()
@@ -831,7 +838,7 @@ namespace GFGGame
             _ui.m_btnSevenReward.target.visible = !ActivityDataManager.Instance.AllSevenDayBonusGot();
             _ui.m_btnPearRebate.target.visible = ActivityDataManager.Instance.CheckPearRebateTips(6000);
 
-            _ui.m_btnGiftBag1.target.visible = ActivityDataManager.Instance.CheckPearRebateTips(6002);
+            _ui.m_btnGiftBag1.target.visible = false;//ActivityDataManager.Instance.CheckPearRebateTips(6002);
             var activityInfo = ActivityGlobalDataManager.Instance.GetActivityInfo(6002);
             long endTime = 0;
             if (activityInfo != null)
@@ -1117,6 +1124,7 @@ namespace GFGGame
             _ui.m_btnSevenReward.target.visible = !ActivityDataManager.Instance.AllSevenDayBonusGot();
             UpdateSevenIcon();
 
+            _btnPoem.visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(PoemPhotoView).Name, false);
             _btnGongGao.visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(NoticeView).Name, false);
             _btnHaoYou.visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(FriendView).Name, false);
             _btnYouJian.visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(MailView).Name, false);
@@ -1510,9 +1518,13 @@ namespace GFGGame
             //直购648弹窗
             if (GameGlobal.AutoZGTHTips)
             {
+                if(TimeHelper.ServerNow() > 1724637600000)
+                {
+                    return;
+                }
                 GameGlobal.AutoZGTHTips = false;
                 long tips;
-                if(!ActivityDataManager.Instance.TipsStatusDic.TryGetValue(6002, out tips))
+                if (!ActivityDataManager.Instance.TipsStatusDic.TryGetValue(6002, out tips))
                 {
                     if (ActivityDataManager.Instance.CheckPearRebateTips(6002))
                     {
@@ -1530,6 +1542,10 @@ namespace GFGGame
             //直购特惠弹窗
             if (GameGlobal.AutoZGTHDCTips)
             {
+                if (TimeHelper.ServerNow() > 1724637600000)
+                {
+                    return;
+                }
                 GameGlobal.AutoZGTHDCTips = false;
                 long tips;
                 if (!ActivityDataManager.Instance.TipsStatusDic.TryGetValue(6001, out tips))

+ 8 - 0
GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 39fd3a8c0b9ba9643b509701937843c2
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 260 - 0
GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionDetailView.cs

@@ -0,0 +1,260 @@
+using System;
+using System.Collections.Generic;
+using System.Threading.Tasks;
+using ET;
+using FairyGUI;
+using UI.MatchingCompetition;
+using UI.DressUp;
+using UnityEngine;
+
+namespace GFGGame
+{
+    class MatchingCompetitionDetailView : BaseWindow
+    {
+        private UI_MatchingCompetitionDetailUI _ui;
+        private GameObject _sceneObject;
+        private int nameIndex = 0;
+        private List<string> nameList = new List<string>() { "饰品","外套","鞋子","袜子","内搭","上衣","下装","手持物","妆容","道具","背景","拍照" };
+        private List<int> IdList = new List<int>();
+        private List<int> AllIdList = new List<int>();
+        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 = ListType1Item;
+            _ui.m_dressList.itemRenderer = ListItemType2Render;
+            _ui.m_BtnBack.onClick.Add(OnClickBtnBack);
+            _ui.m_btn.onClick.Add(OnClickBtn);
+        }
+        protected override void OnShown()
+        {
+            base.OnShown();
+            //if (_sceneObject == null)
+            //{
+            //    _sceneObject = PrefabManager.Instance.InstantiateSync(ResPathUtil.GetPrefabPath("ScenePhotograph"));
+            //    MyDressUpHelper.dressUpObj.setSceneObj(_sceneObject, false, false);
+            //}
+            AllIdList = this.viewData as List<int>;
+            _ui.m_dressList.visible = true;
+            _ui.m_nameList.visible = false;
+            UpdateDress();
+            UpdateView();
+        }
+
+        protected override void OnHide()
+        {
+            if (_sceneObject != null)
+            {
+                PrefabManager.Instance.Restore(_sceneObject);
+                _sceneObject = null;
+            }
+            base.OnHide();
+        }
+
+        protected override void AddEventListener()
+        {
+            base.AddEventListener();
+            EventAgent.AddEventListener(ConstMessage.DOWNLOAD_FINISH, UpdateDress);
+        }
+        protected override void RemoveEventListener()
+        {
+            base.RemoveEventListener();
+            EventAgent.RemoveEventListener(ConstMessage.DOWNLOAD_FINISH, UpdateDress);
+        }
+        private void UpdateView()
+        {
+            //_ui.m_nameList.numItems = DressUpMenuItemCfg1Array.Instance.dataArray.Length - 1;
+            AllIdList.Remove(10000);
+            AllIdList.Remove(20000);
+            AllIdList.Remove(30000);
+            AllIdList.Remove(50000);
+            AllIdList.Remove(60000);
+            AllIdList.Remove(-1);
+            AllIdList.Remove(0);
+            AllIdList.Remove(-3);
+            _ui.m_dressList.numItems = AllIdList.Count;
+        }
+        private void UpdateDress()
+        {
+            _ui.m_playerImage.texture = MatchingCompetitionDataManager.Instance.DetailNtexture;
+            ////这里要换成获取其他玩家数据,改成用图片
+            //    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);
+        //    if(index == DressUpMenuItemCfg1Array.Instance.dataArray.Length - 1)
+        //    {
+        //        item.m_name.text = "拍照";
+        //    }
+        //    else
+        //    {
+        //        item.m_name.text = DressUpMenuItemCfg1Array.Instance.dataArray[index].name;
+        //    }
+            
+        //    if (item.target.data == null)
+        //    {
+        //        item.target.onClick.Add(OnClickListType1Item);
+        //    }
+        //    item.target.data = index;
+        //    UI_ComponentName.ProxyEnd();
+        //}
+        private void ListType1Item(int index, GObject item)
+        {
+            UI_MatchingTypeItem typeItem = UI_MatchingTypeItem.Proxy(item);
+            DressUpMenuItemCfg1 item1 = DressUpMenuItemCfg1Array.Instance.dataArray[index];
+            if(item1.id >= 12)
+            {
+                item1 = DressUpMenuItemCfg1Array.Instance.dataArray[index + 1];
+            }
+            typeItem.m_icon.url = "ui://MatchingCompetition/hz_fenleitu_" + item1.id;
+            typeItem.m_txtname.text = item1.name;
+            //typeItem.m_imgTitle.url = "ui://DressUp/hz_iconzi_" + item1.id;
+            typeItem.m_imgNeed.visible = false;
+            typeItem.m_imgNew.visible = false;
+            if (item.data == null)
+            {
+                item.onClick.Add(OnClickListType1Item);
+            }
+            item.data = item1;
+            UI_MatchingTypeItem.ProxyEnd();
+        }
+        private void ListItemType2Render(int index, GObject obj)
+        {
+            UI_MatchingDressItem item = UI_MatchingDressItem.Proxy(obj);
+            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(AllIdList[index]);
+            SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(AllIdList[index]);
+            if (itemCfg != null)
+            {
+                item.m_icon.url = ResPathUtil.GetIconPath(itemCfg.res, "png");
+                item.m_txtTitle.text = itemCfg.name;
+            }
+            if (suitCfg != null)
+            {
+                item.m_icon.url = ResPathUtil.GetIconPath(suitCfg.res, "png");
+                item.m_txtTitle.text = suitCfg.name;
+            }
+            UI_MatchingDressItem.ProxyEnd();
+        }
+        private void OnClickListType1Item(EventContext context)
+        {
+            GObject item = context.sender as GObject;
+            DressUpMenuItemCfg1 index = (DressUpMenuItemCfg1)item.data;
+            IdList.Clear();
+            foreach (var idItem in AllIdList)
+            {
+                ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(idItem);
+                SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(idItem);
+                if(itemCfg == null && suitCfg == null)
+                {
+                        continue;                  
+                }
+                else if(itemCfg != null)
+                {
+                    if (idItem == 10000 || idItem == 20000 || idItem == 30000 || idItem == 50000 || idItem == 60000)
+                    {
+                        continue;
+                    }
+                    if (index.type != 0)
+                    {
+                        if (itemCfg.subType == index.type)
+                        {
+                            IdList.Add(idItem);
+                        }
+                    }
+                    else
+                    {
+                        foreach (var itemSubMenus in index.subMenusArr)
+                        {
+                            if (DressUpMenuItemCfg2Array.Instance.dataArray[(itemSubMenus - 1)].type == itemCfg.subType)
+                            {
+                                IdList.Add(idItem);
+                            }
+                        }
+                    }
+                }
+                else if (index.type == 25 && suitCfg != null)
+                {
+                    IdList.Add(idItem);
+                }
+            }
+            _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);
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionDetailView.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 68290f9885d151546bbc8d5e33839426
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 170 - 0
GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionGatheringView.cs

@@ -0,0 +1,170 @@
+using System;
+using System.Collections.Generic;
+using ET;
+using FairyGUI;
+using UI.MatchingCompetition;
+using UnityEngine;
+
+namespace GFGGame
+{
+    //搭配赛集合期间
+    class MatchingCompetitionGatheringView : BaseWindow
+    {
+        private UI_MatchingCompetitionGatheringUI _ui;
+        private ValueBarController _valueBarController;
+        private int SuitID;
+        private EffectUI _effectUI1;
+
+        public override void Dispose()
+        {
+            EffectUIPool.Recycle(_effectUI1);
+            _effectUI1 = null;
+
+            if (_valueBarController != null)
+            {
+                _valueBarController.Dispose();
+                _valueBarController = null;
+            }
+            if (_ui != null)
+            {
+                _ui.Dispose();
+            }
+            _ui = null;
+            base.Dispose();
+        }
+
+        protected override void OnInit()
+        {
+            base.OnInit();
+            packageName = UI_MatchingCompetitionGatheringUI.PACKAGE_NAME;
+            _ui = UI_MatchingCompetitionGatheringUI.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_ruleBtn.onClick.Add(MatchingCompetitionDataManager.Instance.OnClickBtnRule);
+        }
+        protected override void AddEventListener()
+        {
+            base.AddEventListener();
+            EventAgent.AddEventListener(ConstMessage.DOWNLOAD_FINISH, UpdateView);
+        }
+        protected override void RemoveEventListener()
+        {
+            base.RemoveEventListener();
+            EventAgent.RemoveEventListener(ConstMessage.DOWNLOAD_FINISH, UpdateView);
+        }
+        protected override void OnShown()
+        {
+            base.OnShown();
+            _ui.m_bg.url = ResPathUtil.GetBgImgPath("pxs_bj");
+            _ui.m_c1.selectedIndex = 1;
+            JudgingRoundOpenCfg judgingCfg = JudgingRoundOpenCfgArray.Instance.dataArray[MatchingCompetitionDataManager.Instance.MatchingCompetitionSeason - 1];
+            SuitID = judgingCfg.ShowSuit;
+            _ui.m_titleText.text = judgingCfg.Name;
+            SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(SuitID);
+            _ui.m_suitName.text = suitCfg.name;
+            UpdateView();
+            Timers.inst.AddUpdate(UpdateTime);
+            Timers.inst.AddUpdate(CheckGuide);
+        }
+
+        protected override void OnHide()
+        {
+            DressUpObjUI dressUpObjUI = _ui.m_suitShow.data as DressUpObjUI;
+            if (dressUpObjUI != null)
+            {
+                dressUpObjUI.Dispose();
+            }
+            _ui.m_suitShow.data = null;
+            base.OnHide();
+            Timers.inst.Remove(UpdateTime);
+            Timers.inst.Remove(CheckGuide);
+        }
+
+        private void UpdateView()
+        {
+            if(MatchingCompetitionDataManager.Instance.WorksID == 0)
+            {
+                MatchingCompetitionDataManager.Instance.MyNtextture = null;
+            }
+            if (MatchingCompetitionDataManager.Instance.MyNtextture == null)
+            {
+                _ui.m_playerImage.texture = null;
+                _ui.m_desc.visible = true;
+                DressUpObjUI dressUpObjUI;
+                if (_ui.m_suitShow.data == null)
+                {
+                    _ui.m_suitShow.data = new DressUpObjUI("SceneSuitFoster");
+                }
+                bool showAction = SuitCfgArray.Instance.CheckSuitHasAction(SuitID) && DressUpMenuSuitDataManager.CheckSuitHasActionRes(SuitID);
+                dressUpObjUI = _ui.m_suitShow.data as DressUpObjUI;
+                dressUpObjUI.ResetSceneObj(100, false, true, null, false);
+                dressUpObjUI.dressUpObj.PutOnSuitCfg(SuitID, showAction, new int[] { ConstDressUpItemType.BEI_JING }, false, false);
+                dressUpObjUI.UpdateWrapper(_ui.m_suitShow);
+            }
+            else
+            {
+                DressUpObjUI dressUpObjUI = _ui.m_suitShow.data as DressUpObjUI;
+                if (dressUpObjUI != null)
+                {
+                    dressUpObjUI.Dispose();
+                }
+                _ui.m_desc.visible = false;
+                _ui.m_suitShow.data = null;
+                _ui.m_playerImage.texture = MatchingCompetitionDataManager.Instance.MyNtextture;
+            }
+        }
+        private void UpdateTime(object param = null)
+        {
+            long endTime = MatchingCompetitionDataManager.Instance.MatchingEndTimes;
+            long curTime = TimeHelper.ServerNow();
+            if (MatchingCompetitionDataManager.Instance.MatchingState != 1)
+            {
+                Timers.inst.Remove(UpdateTime);
+                PromptController.Instance.ShowFloatTextPrompt("投稿时间已到!");
+                ViewManager.GoBackFrom(typeof(MatchingCompetitionGatheringView).FullName);
+                return;
+            }
+            if (endTime < curTime + 1)
+            {
+                Timers.inst.Remove(UpdateTime);
+                return;
+            }
+            TimeUtil.FormattingTime(curTime, endTime, out int num, out string str);
+            _ui.m_timeText.text = "投稿剩余时间:" + TimeUtil.FormattingTimeTo_DDHHmm(endTime - curTime);
+        }
+        private void OnClickBtnBack()
+        {
+            ViewManager.GoBackFrom(typeof(MatchingCompetitionGatheringView).FullName);
+        }
+        private void OnClickBtnUpload()
+        {
+            ViewManager.Show<DressUpView>(2, false);
+        }
+        private void OnClickBtnShop()
+        {
+            ViewManager.Show<StoreView>(new object[] { ConstStoreTabId.STORE_EXCHANGE, 3 });
+        }
+        private void CheckGuide(object param)
+        {
+            if (GuideDataManager.IsGuideFinish("DAPEISAI_1") <= 0 && MatchingCompetitionDataManager.Instance.MatchingState == 1)
+            {
+                UpdateToCheckGuide(null);
+            }
+            else
+            {
+                Timers.inst.Remove(CheckGuide);
+            }
+        }
+        protected override void UpdateToCheckGuide(object param)
+        {
+            if (!ViewManager.CheckIsTopView(this.viewCom)) return;
+            GuideController.TryGuide(_ui.m_btnUploadWorks, "DAPEISAI_1", 2, "进行搭配!");
+            GuideController.TryCompleteGuide("DAPEISAI_1", 2);
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionGatheringView.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 51052747b3b1fb546b8fbe7b25db49aa
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 51 - 0
GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionLookView.cs

@@ -0,0 +1,51 @@
+using System;
+using System.Collections.Generic;
+using System.Threading.Tasks;
+using ET;
+using FairyGUI;
+using UI.MatchingCompetition;
+using UnityEngine;
+
+namespace GFGGame
+{
+    class MatchingCompetitionLookView : BaseWindow
+    {
+        private UI_MatchingCompetitionLookUI _ui;
+        public override void Dispose()
+        {
+            if (_ui != null)
+            {
+                _ui.Dispose();
+            }
+            _ui = null;
+            base.Dispose();
+        }
+
+        protected override void OnInit()
+        {
+            base.OnInit();
+            packageName = UI_MatchingCompetitionLookUI.PACKAGE_NAME;
+            _ui = UI_MatchingCompetitionLookUI.Create();
+            this.viewCom = _ui.target;
+            isReturnView = true;
+            isfullScreen = true;
+
+            _ui.m_BtnBack.onClick.Add(OnClickBtnBack);
+        }
+        protected override void OnShown()
+        {
+            base.OnShown();
+            _ui.m_bg.url = ResPathUtil.GetBgImgPath("pxs_bj");
+            _ui.m_playerImage.texture = MatchingCompetitionDataManager.Instance.MyNtextture;
+        }
+
+        protected override void OnHide()
+        {
+            base.OnHide();
+        }
+        private void OnClickBtnBack()
+        {
+            ViewManager.GoBackFrom(typeof(MatchingCompetitionLookView).FullName);
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionLookView.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: e8223ccf06ac74941ad032194f64ec27
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 135 - 0
GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionRankView.cs

@@ -0,0 +1,135 @@
+using System;
+using System.Collections.Generic;
+using ET;
+using FairyGUI;
+using UI.MatchingCompetition;
+using UnityEngine;
+
+namespace GFGGame
+{
+    class MatchingCompetitionRankView : BaseWindow
+    {
+        private UI_MatchingCompetitionRankUI _ui;
+        private int _currentIndex = 0;
+        public override void Dispose()
+        {
+            if (_ui != null)
+            {
+                _ui.Dispose();
+            }
+            _ui = null;
+            base.Dispose();
+        }
+
+        protected override void OnInit()
+        {
+            base.OnInit();
+            packageName = UI_MatchingCompetitionRankUI.PACKAGE_NAME;
+            _ui = UI_MatchingCompetitionRankUI.Create();
+            this.viewCom = _ui.target;
+            isReturnView = true;
+            isfullScreen = true;
+
+            _ui.m_RankList.itemRenderer = RenderRankList;
+            _ui.m_BtnBack.onClick.Add(OnClickBtnBack);
+            _ui.m_btnBefore.onClick.Add(OnClickBtnBefore);
+            _ui.m_btnLook.onClick.Add(OnClickBtnLook);
+            _ui.m_ruleBtn.onClick.Add(MatchingCompetitionDataManager.Instance.OnClickBtnRule);
+        }
+        protected override void OnShown()
+        {
+            base.OnShown();
+            _ui.m_bg.url = ResPathUtil.GetBgImgPath("pxs_bj");
+            _ui.m_titleText.text = JudgingRoundOpenCfgArray.Instance.dataArray[MatchingCompetitionDataManager.Instance.MatchingCompetitionSeason - 1].Name;
+            UpdateView();
+            UpdateHead();
+        }
+
+        protected override void OnHide()
+        {
+            base.OnHide();
+        }
+        protected override void AddEventListener()
+        {
+            base.AddEventListener();
+            EventAgent.AddEventListener(ConstMessage.DOWNLOAD_FINISH, UpdateView);
+        }
+        protected override void RemoveEventListener()
+        {
+            base.RemoveEventListener();
+            EventAgent.RemoveEventListener(ConstMessage.DOWNLOAD_FINISH, UpdateView);
+        }
+        private void UpdateView()
+        {
+            if(MatchingCompetitionDataManager.Instance._currentRankList.Count > 0)
+            {
+                MatchingPhotoWorksData otherInfo = MatchingCompetitionDataManager.Instance._currentRankList[0];
+                _ui.m_playerImage.texture = otherInfo.Ntexture;
+            }
+            else
+            {
+                _ui.m_playerImage.texture = null;
+            }
+            _currentIndex = 0;
+            _ui.m_RankList.numItems = MatchingCompetitionDataManager.Instance._currentRankList.Count;
+        }
+        private void UpdateHead()
+        {
+            RoleInfoManager.Instance.UpdateHead(_ui.m_playerHead.m_head, RoleDataManager.headId, RoleDataManager.headBorderId);
+            _ui.m_playerHead.m_nameText.text = RoleDataManager.roleName.ToString();
+            _ui.m_playerHead.m_countText.text = MatchingCompetitionDataManager.Instance.myWorks.Score.ToString();
+            MatchingCompetitionDataManager.Instance.SetNumToRank(MatchingCompetitionDataManager.Instance.myWorks.Rank,_ui.m_playerHead.m_RankIndex);
+        }
+        private void RenderRankList(int index, GObject obj)
+        {
+            UI_Component3 item = UI_Component3.Proxy(obj);
+            MatchingPhotoWorksData otherdata = MatchingCompetitionDataManager.Instance._currentRankList[index];
+            JudgingRoundRoleInfo otherInfo = otherdata.JudgingInfo;
+            otherInfo.Rank = index + 1;
+            RoleInfoManager.Instance.UpdateHead(item.m_head, otherInfo.HeadItemId, otherInfo.HeadBorderItemId);
+            item.m_nameText.text = otherInfo.RoleName.ToString();
+            item.m_countText.text = otherInfo.Score.ToString();
+            MatchingCompetitionDataManager.Instance.SetNumToRank(otherInfo.Rank, item.m_RankIndex);
+            if(item.target.data == null)
+            {
+                item.target.onClick.Add(OnClickBtnItem);
+            }
+            item.target.data = index;
+            UI_Component3.ProxyEnd();
+        }
+        private void OnClickBtnItem(EventContext context)
+        {
+            GObject item = context.sender as GObject;
+            int index = (int)item.data; 
+            _currentIndex = index;
+            MatchingPhotoWorksData otherInfo = MatchingCompetitionDataManager.Instance._currentRankList[index];
+            _ui.m_playerImage.texture = otherInfo.Ntexture;
+        }
+        private void OnClickBtnBack()
+        {
+            ViewManager.GoBackFrom(typeof(MatchingCompetitionRankView).FullName);
+        }
+        private async void OnClickBtnBefore()
+        {
+            bool result = await MatchingCompetitionSproxy.ReqBeforeWorks();
+            if(result)
+            {
+                ViewManager.Show<MatchingCompetitionWorksView>();
+            }
+            else
+            {
+                PromptController.Instance.ShowFloatTextPrompt("暂无往期数据!");
+            }
+        }
+        private void OnClickBtnLook()
+        {
+            List<int> AllIdList = new List<int>();
+            foreach (var info in MatchingCompetitionDataManager.Instance._currentRankList[_currentIndex].JudgingInfo.CollocationInfoList)
+            {
+                AllIdList.Add(MatchingCompetitionDataManager.Instance.GetIDByString(info.ItemId));
+            }
+            MatchingCompetitionDataManager.Instance.DetailNtexture = MatchingCompetitionDataManager.Instance._currentRankList[_currentIndex].Ntexture;
+            ViewManager.Show<MatchingCompetitionDetailView>(AllIdList);
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionRankView.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 3483b8ceae478b24d9ed420e6cc6fcd5
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 229 - 0
GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionRewardView.cs

@@ -0,0 +1,229 @@
+using System.Collections;
+using UnityEngine;
+using UI.MatchingCompetition;
+using FairyGUI;
+using System.Collections.Generic;
+using System;
+
+namespace GFGGame
+{
+    public class MatchingCompetitionRewardView : BaseWindow
+    {
+        private UI_MatchingCompetitionRewardUI _ui;
+        private List<ItemData> _listItemDatas;
+
+        private Action onSuccess = null;
+
+        private List<EffectUI> _effects = new List<EffectUI>();
+
+        private const int maxHeight = 1030;
+
+        private EffectUI _effectUI1;
+        private EffectUI _effectUI2;
+        private int counTime = 0;  //定时器计数
+
+        public override void Dispose()
+        {
+            if (_ui != null)
+            {
+                _ui.Dispose();
+                _ui = null;
+            }
+            base.Dispose();
+
+        }
+
+        protected override void OnInit()
+        {
+            base.OnInit();
+            _ui = UI_MatchingCompetitionRewardUI.Create();
+            this.viewCom = _ui.target;
+            //this.viewCom.Center();
+            //this.modal = true;
+            //viewAnimationType = EnumViewAnimationType.ZOOM_CENTER;
+            isfullScreen = true;
+
+            _ui.m_comList.m_listReward.itemRenderer = RenderListRewardItem;
+            _ui.m_mask.onClick.Add(this.Hide);
+        }
+        protected override void OnShown()
+        {
+            base.OnShown();
+            _ui.m_mask.touchable = false;
+            if ((this.viewData as object[]).Length > 0)
+            {
+                _listItemDatas = (this.viewData as object[])[0] as List<ItemData>;
+                onSuccess = (this.viewData as object[])[1] as Action;
+            }
+            else
+            {
+                _listItemDatas = this.viewData as List<ItemData>;
+            }
+
+            List<ItemData> suitPart = new List<ItemData>(); ;
+            for (int i = _listItemDatas.Count - 1; i >= 0; i--)
+            {
+                SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(_listItemDatas[i].id);
+                if (suitCfg != null)
+                {
+                    for (int j = 0; j < suitCfg.partsArr.Length; j++)
+                    {
+                        suitPart.Add(ItemUtil.createItemData(suitCfg.partsArr[j], _listItemDatas[i].num));
+                    }
+                    _listItemDatas.RemoveAt(i);
+                }
+            }
+            _listItemDatas.AddRange(suitPart);
+            //_ui.m_listReward.SetVirtual();  //有虚拟列表的时候,没有办法居中显示列表
+
+            _ui.m_downTipsText.visible = false;
+            _ui.m_comList.m_listReward.numItems = 0;
+            counTime = 0;
+            Timers.inst.Add(0.1f, 3, OnTimerUpdate, 1);
+            Timers.inst.Add(0.5f, 1, OnTimerClick);
+        }
+
+        private void OnTimerClick(object param)
+        {
+            _ui.m_mask.touchable = true;
+        }
+
+        private void OnTimerUpdate(object param)
+        {
+            counTime += 1;
+            if (counTime == 1)
+            {
+                _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holderTitle, "ui_hd", "GXHD_Text");
+                _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_holderBgCom, "ui_hd", "TC_Quad_ALL");
+            }
+            else if (counTime == 2)
+            {
+                _ui.m_comList.m_listReward.numItems = _listItemDatas.Count;
+
+                _ui.m_comList.m_listReward.ResizeToFit();
+                if (_ui.m_comList.m_listReward.height > maxHeight)
+                {
+                    _ui.m_comList.m_listReward.height = maxHeight;
+                }
+            }
+            else if (counTime == 3)
+            {
+                _ui.m_downTipsText.visible = true;
+                Timers.inst.Remove(OnTimerUpdate);
+            }
+        }
+
+        protected override void OnHide()
+        {
+            EffectUIPool.Recycle(_effectUI1);
+            _effectUI1 = null;
+            EffectUIPool.Recycle(_effectUI2);
+            _effectUI2 = null;
+
+            Timers.inst.Remove(OnTimerUpdate);
+            Timers.inst.Remove(OnTimerClick);
+            _ui.m_mask.touchable = true;
+            for (int i = 0; i < _effects.Count; i++)
+            {
+                if (_effects[i] != null)
+                {
+                    EffectUIPool.Recycle(_effects[i]);
+                    _effects[i] = null;
+                }
+            }
+            _effects.Clear();
+
+            if (onSuccess != null)
+            {
+                onSuccess();
+            }
+            base.OnHide();
+            //_effects.Clear();
+            //EventAgent.DispatchEvent(ConstMessage.REWARDVIEW_CLOTHER);
+            GetSuitItemController.TryShow(0);
+        }
+        private void RenderListRewardItem(int index, GObject obj)
+        {
+            // obj.data = _listItemDatas[index];
+            UI.CommonGame.UI_ComItem item = UI.CommonGame.UI_ComItem.Proxy(obj);
+            string name = "";
+            string iconRes = "";
+            string ext = "png";
+            int rarity = 0;
+            int id = 0;
+            bool isSuit = false;
+
+            SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(_listItemDatas[index].id);
+            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(_listItemDatas[index].id);
+
+            if (suitCfg != null)
+            {
+                name = suitCfg.name;
+                iconRes = suitCfg.res;
+                rarity = suitCfg.rarity;
+                id = suitCfg.id;
+                isSuit = true;
+            }
+            else
+            {
+                name = itemCfg.name;
+                ext = ItemUtil.GetItemResExt(itemCfg.itemType, itemCfg.subType, true);
+                iconRes = itemCfg.res;
+                id = itemCfg.id;
+                isSuit = false;
+                //if (itemCfg.itemType == ConstItemType.DRESS_UP)
+                rarity = itemCfg.rarity;
+            }
+
+            item.m_txtName.text = name;
+            // item.m_txtCount.text = _listItemDatas[index].num==1?"": string.Format("{0}", _listItemDatas[index].num);
+            item.m_txtCount.text = string.Format("{0}", _listItemDatas[index].num);
+            item.m_loaIcon.url = ResPathUtil.GetIconPath(iconRes, ext);
+            if (rarity > 0)
+            {
+                item.m_QualityType.selectedIndex = rarity - 1;
+            }
+            else
+            {
+                item.m_QualityType.selectedIndex = 0;
+            }
+
+            RarityIconController.UpdateRarityIcon(item.m_loaRarity, id, false, isSuit);
+
+            item.m_imgOnceBonus.visible = _listItemDatas[index].isOnceBonus;
+            //特效("ui_ck", "ui_ck_zl");
+            int childIndex = _ui.m_comList.m_listReward.ItemIndexToChildIndex(index);
+            if (_effects.Count <= childIndex)
+            {
+                EffectUI _effectUI = EffectUIPool.CreateEffectUI(item.m_holderReware, "ui_hd", "GXHD_WuPin", 120);
+                _effects.Add(_effectUI);
+            }
+
+            if (item.target.data == null)
+            {
+                item.target.onClick.Add(OnClickListReward);
+            }
+            item.target.data = _listItemDatas[index];
+            UI.CommonGame.UI_ComItem.ProxyEnd();
+        }
+
+        private void OnClickListReward(EventContext context)
+        {
+            if (this.ShowTips)
+            {
+                ItemData data = (context.sender as GObject).data as ItemData;
+                GoodsItemTipsController.ShowItemTips(data.id);
+            }
+        }
+
+        private bool _showTips = true;
+        /// <summary>
+        /// 是否展示物品详情,默认展示
+        /// </summary>
+        private bool ShowTips
+        {
+            get { return _showTips; }
+            set { _showTips = value; }
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionRewardView.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 2006751c01500084daa70311f2396e6b
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 89 - 0
GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionRuleTipsView.cs

@@ -0,0 +1,89 @@
+using System;
+using System.Collections.Generic;
+using ET;
+using FairyGUI;
+using UI.MatchingCompetition;
+using UnityEngine;
+
+namespace GFGGame
+{
+    class MatchingCompetitionRuleTipsView : BaseWindow
+    {
+        private UI_MatchingCompetitionRuleTips _ui;
+        private int Season = 1;
+        public override void Dispose()
+        {
+            if (_ui != null)
+            {
+                _ui.Dispose();
+            }
+            _ui = null;
+            base.Dispose();
+        }
+
+        protected override void OnInit()
+        {
+            base.OnInit();
+            packageName = UI_MatchingCompetitionRuleTips.PACKAGE_NAME;
+            _ui = UI_MatchingCompetitionRuleTips.Create();
+            this.viewCom = _ui.target;
+            modal = true;
+            this.viewCom.Center();
+            viewAnimationType = EnumViewAnimationType.ZOOM_CENTER;
+
+            _ui.m_rewardList.itemRenderer =  RewardItemRender;
+        }
+        protected override void AddEventListener()
+        {
+            base.AddEventListener();
+        }
+        protected override void OnShown()
+        {
+            base.OnShown();
+            Season = MatchingCompetitionDataManager.Instance.MatchingCompetitionSeason;
+            _ui.m_rewardList.numItems = JudgingRoundRewardCfgArray.Instance.dataArray.Length;
+            string desc = TextDescCfgArray.Instance.GetCfg(300033).text;
+            _ui.m_descText.text = desc;
+        }
+
+        protected override void OnHide()
+        {
+            base.OnHide();
+        }
+
+        protected override void RemoveEventListener()
+        {
+            base.RemoveEventListener();
+        }
+        private void RewardItemRender(int index, GObject obj)
+        {
+            UI_MatchingCompetitionRewardItem item = UI_MatchingCompetitionRewardItem.Proxy(obj);
+            JudgingRoundRewardCfg judginRewardCfg = JudgingRoundRewardCfgArray.Instance.dataArray[index];
+            if (index < 10)
+            {
+                item.m_rankIndex.text = "第" + judginRewardCfg.desc + "名";
+            }
+            else
+            {
+                item.m_rankIndex.text = judginRewardCfg.desc;
+            }
+            if (item.m_rewardList.data == null)
+            {
+                item.m_rewardList.itemRenderer = SpecialRewardRender;
+            }
+            item.m_rewardList.data = judginRewardCfg.RewardArr;
+            item.m_rewardList.numItems = judginRewardCfg.RewardArr.Length;
+            UI_MatchingCompetitionRewardItem.ProxyEnd();
+        }
+        private static void SpecialRewardRender(int index, GObject obj)
+        {
+            var item = (int[][])obj.parent.data;
+            var itemInfo = item[index];
+            var itemData = ItemUtil.createItemData(itemInfo);
+            var itemView = new ItemView(obj as GComponent);
+            obj.data ??= itemView;
+            itemView.SetData(itemData);
+            itemView.ChangeTxtCountStyle();
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionRuleTipsView.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 1c783943a93f52d44b6ed11d1540a15b
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 408 - 0
GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionSelectView.cs

@@ -0,0 +1,408 @@
+using System;
+using System.Collections.Generic;
+using System.Threading.Tasks;
+using ET;
+using FairyGUI;
+using UI.MatchingCompetition;
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace GFGGame
+{
+    class MatchingCompetitionSelectView : BaseWindow
+    {
+        private UI_MatchingCompetitionSelectUI _ui;
+        private int _seasonIndex = 0;
+        private bool isRefresh = false;
+        private JudgingRoundOpenCfg judgingCfg;
+        private GameObject _sceneObjectLeft;
+        private GameObject _sceneObjectRight;
+        public override void Dispose()
+        {
+            if (_ui != null)
+            {
+                _ui.Dispose();
+            }
+            if (_sceneObjectLeft != null)
+            {
+                PrefabManager.Instance.Restore(_sceneObjectLeft);
+                _sceneObjectLeft = null;
+            }
+            if (_sceneObjectRight != null)
+            {
+                PrefabManager.Instance.Restore(_sceneObjectRight);
+                _sceneObjectRight = null;
+            }
+            _ui = null;
+            base.Dispose();
+        }
+
+        protected override void OnInit()
+        {
+            base.OnInit();
+            packageName = UI_MatchingCompetitionSelectUI.PACKAGE_NAME;
+            _ui = UI_MatchingCompetitionSelectUI.Create();
+            this.viewCom = _ui.target;
+            isReturnView = true;
+            isfullScreen = true;
+
+            _ui.m_BtnBack.onClick.Add(OnClickBtnBack);
+            _ui.m_select1.target.onClick.Add(OnClickBtnSelect1);
+            _ui.m_select2.target.onClick.Add(OnClickBtnSelect2);
+            _ui.m_ruleBtn.onClick.Add(MatchingCompetitionDataManager.Instance.OnClickBtnRule);
+        }
+        protected override void OnShown()
+        {
+            base.OnShown();
+            _ui.m_bg.url = ResPathUtil.GetBgImgPath("pxs_bj");
+            _ui.m_BtnBack.touchable = true;
+            _ui.m_titleText.text = JudgingRoundOpenCfgArray.Instance.dataArray[MatchingCompetitionDataManager.Instance.MatchingCompetitionSeason - 1].Name;
+            //isRefresh = (bool)this.viewData;       
+            judgingCfg = JudgingRoundOpenCfgArray.Instance.GetCfg(MatchingCompetitionDataManager.Instance.MatchingCompetitionSeason);
+            UpdateView();
+            UpdatePlayer();
+            //UpdateDressLeft();
+            ViewManager.Hide<ModalStatusView>();
+            Timers.inst.AddUpdate(CheckGuide);
+        }
+
+        protected override void OnHide()
+        {
+            if (_sceneObjectLeft != null)
+            {
+                PrefabManager.Instance.Restore(_sceneObjectLeft);
+                _sceneObjectLeft = null;
+            }
+            if (_sceneObjectRight != null)
+            {
+                PrefabManager.Instance.Restore(_sceneObjectRight);
+                _sceneObjectRight = null;
+            }
+            MatchingCompetitionDataManager.Instance.DressPropIndex = 0;
+            Timers.inst.Remove(CheckGuide);
+            base.OnHide();
+        }
+        protected override void AddEventListener()
+        {
+            base.AddEventListener();
+            EventAgent.AddEventListener(ConstMessage.DOWNLOAD_FINISH, UpdatePlayer);
+            //EventAgent.AddEventListener(ConstMessage.DOWNLOAD_FINISH, UpdateDressLeft);
+            EventAgent.AddEventListener(ConstMessage.REWARDVIEW_CLOTHER, ShowReward);
+        }
+        protected override void RemoveEventListener()
+        {
+            base.RemoveEventListener();
+            EventAgent.RemoveEventListener(ConstMessage.DOWNLOAD_FINISH, UpdatePlayer);
+            //EventAgent.RemoveEventListener(ConstMessage.DOWNLOAD_FINISH, UpdateDressLeft);
+            EventAgent.RemoveEventListener(ConstMessage.REWARDVIEW_CLOTHER, ShowReward);
+        }
+        private void ShowReward()
+        {
+            if (MatchingCompetitionDataManager.Instance.SpecialBonusList != null && MatchingCompetitionDataManager.Instance.SpecialBonusList.Count > 0)
+            {
+                ViewManager.Show<MatchingCompetitionRewardView>(new object[] { ItemUtil.CreateItemDataList(MatchingCompetitionDataManager.Instance.SpecialBonusList), null });
+                MatchingCompetitionDataManager.Instance.SpecialBonusList = null;
+            }
+        }
+        private async void UpdateDressLeft()
+        {
+            //ViewManager.Show<ModalStatusView>("获取搭配数据中...");
+            MatchingLeftDataManager.Instance.itemGameObjs.Clear();
+            MatchingRightDataManager.Instance.itemGameObjs.Clear();
+            PhotographDataManager.Instance.itemGameObjs.Clear();
+            PhotographDataManager.Instance.dressUpObj?.Dispose();
+            PhotographDataManager.Instance.dressUpObj = new DressUpObj();
+            if (_sceneObjectLeft == null)
+            {
+                _sceneObjectLeft = PrefabManager.Instance.InstantiateSync(ResPathUtil.GetPrefabPath("ScenePhotograph"));
+                // 创建render texture
+                renderTexureLeft = new RenderTexture((int)_ui.m_playerShow1.target.width, (int)_ui.m_playerShow2.target.height, 24);
+
+                // 换装父节点 + 相机            
+                Camera camera = _sceneObjectLeft.transform.Find("Camera").GetComponent<Camera>();
+                camera.gameObject.SetActive(true);
+                camera.targetTexture = renderTexureLeft;
+                // 创建RawImg
+                
+            }
+
+            PhotographSceneManager.Instance.sceneObject = _sceneObjectLeft;
+            if (MatchingLeftDataManager.Instance.DressUpBgID == 0)
+            {
+                PhotographSceneManager.Instance.AddBgItem(ItemCfgArray.Instance.GetCfg(180001));
+            }
+            else
+            {
+                PhotographSceneManager.Instance.AddBgItem(ItemCfgArray.Instance.GetCfg(MatchingLeftDataManager.Instance.DressUpBgID));
+            }
+            PhotographSceneManager.Instance.AddBodyItem(1);
+            GameObject bodyParent = _sceneObjectLeft.transform.Find("Scene/Role").gameObject;
+            PhotographDataManager.Instance.dressUpObj.setSceneObj(_sceneObjectLeft, false, true, bodyParent, false, null);
+            PhotographDataManager.Instance.dressUpObj.PutOnDressUpData(MatchingLeftDataManager.Instance.MathingDressDate);
+
+            //对搭配赛特殊处理
+            foreach (var item in MatchingLeftDataManager.Instance.DressPropTransInfoDic)
+            {
+                if (item.Key == MatchingLeftDataManager.Instance.roleID)
+                {
+                    continue;
+                }
+                else
+                {
+                    List<int> idList = MatchingCompetitionDataManager.Instance.GetIDListByString(item.Key);
+                    ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(idList[0]);
+                    if (idList.Count > 1)
+                    {
+                        MatchingCompetitionDataManager.Instance.AddSceneItemOne(itemCfg, idList[1], idList[2]);
+                    }
+                    else
+                    {
+                        MatchingCompetitionDataManager.Instance.AddSceneItem(itemCfg, false);
+                    }
+                    //MatchingCompetitionDataManager.Instance.AddSceneItemOne(itemCfg, idList[1], idList[2]);
+                }
+            }
+            await Task.Delay(200);
+            MatchingLeftDataManager.Instance.InsertGameObjectList();
+            for (int i = 0; i < MatchingLeftDataManager.Instance.itemGameObjs.Count; i++)
+            {
+                GameObject itemGObj = MatchingLeftDataManager.Instance.itemGameObjs[i];
+                TransformData itemdata = new TransformData();
+                if (MatchingLeftDataManager.Instance.DressPropTransInfoDic.ContainsKey(itemGObj.name))
+                {
+                    itemdata = MatchingLeftDataManager.Instance.DressPropTransInfoDic[itemGObj.name];
+                }
+                MatchingLeftDataManager.Instance.itemGameObjs[i].transform.position = itemdata.position;
+                if (MatchingLeftDataManager.Instance.itemGameObjs[i].name == "Role")
+                {
+                    if (itemdata.position.y >= -5 || itemdata.position.y <= 5)
+                    {
+                        MatchingLeftDataManager.Instance.itemGameObjs[i].transform.position = new Vector3(itemdata.position.x, 0, 0);
+                    }
+                    if (itemdata.position.x >= -5 || itemdata.position.x <= 5)
+                    {
+                        MatchingLeftDataManager.Instance.itemGameObjs[i].transform.position = new Vector3(0, MatchingLeftDataManager.Instance.itemGameObjs[i].transform.position.y, 0);
+                    }
+                }
+                MatchingLeftDataManager.Instance.itemGameObjs[i].transform.Rotate(itemGObj.transform.eulerAngles.x, itemGObj.transform.eulerAngles.y, itemdata.rotationZ);
+                MatchingLeftDataManager.Instance.itemGameObjs[i].transform.localScale = itemdata.scale;
+                PhotographUtil.Instance.ChangeLayer(MatchingLeftDataManager.Instance.itemGameObjs[i], i * PhotographDataManager.layerCount, "up");
+            }
+            PhotographUtil.Instance.ChangeLayer(MatchingLeftDataManager.Instance.roleGameobj, 2 * PhotographDataManager.layerCount, "up");
+            await Task.Delay(50);
+            UpdateDressRigh();
+        }
+        private async void UpdateDressRigh()
+        {
+            MatchingRightDataManager.Instance.itemGameObjs.Clear();
+            PhotographDataManager.Instance.itemGameObjs.Clear();
+            PhotographDataManager.Instance.dressUpObj?.Dispose();
+            PhotographDataManager.Instance.dressUpObj = new DressUpObj();
+            if (_sceneObjectRight == null)
+            {
+                _sceneObjectRight = PrefabManager.Instance.InstantiateSync(ResPathUtil.GetPrefabPath("ScenePhotograph"));
+                // 创建render texture
+                renderTexureRight = new RenderTexture((int)_ui.m_playerShow1.target.width, (int)_ui.m_playerShow2.target.height, 24);
+
+                // 换装父节点 + 相机            
+                Camera camera = _sceneObjectRight.transform.Find("Camera").GetComponent<Camera>();
+                camera.gameObject.SetActive(true);
+                camera.targetTexture = renderTexureRight;
+            }
+
+            PhotographSceneManager.Instance.sceneObject = _sceneObjectRight;
+            if (MatchingRightDataManager.Instance.DressUpBgID == 0)
+            {
+                PhotographSceneManager.Instance.AddBgItem(ItemCfgArray.Instance.GetCfg(180004));
+            }
+            else
+            {
+                PhotographSceneManager.Instance.AddBgItem(ItemCfgArray.Instance.GetCfg(MatchingRightDataManager.Instance.DressUpBgID));
+            }
+            PhotographSceneManager.Instance.AddBodyItem(2);
+            GameObject bodyParent = _sceneObjectRight.transform.Find("Scene/Role").gameObject;
+            PhotographDataManager.Instance.dressUpObj.setSceneObj(_sceneObjectRight, false, true, bodyParent, false, null);
+            PhotographDataManager.Instance.dressUpObj.PutOnDressUpData(MatchingRightDataManager.Instance.MathingDressDate);
+
+            //对搭配赛特殊处理
+            foreach (var item in MatchingRightDataManager.Instance.DressPropTransInfoDic)
+            {
+                if (item.Key == MatchingRightDataManager.Instance.roleID)
+                {
+                    continue;
+                }
+                else
+                {
+                    List<int> idList = MatchingCompetitionDataManager.Instance.GetIDListByString(item.Key);
+                    ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(idList[0]);
+                    if (idList.Count > 1)
+                    {
+                        MatchingCompetitionDataManager.Instance.AddSceneItemOne(itemCfg, idList[1], idList[2]);
+                    }
+                    else
+                    {
+                        MatchingCompetitionDataManager.Instance.AddSceneItem(itemCfg, false);
+                    }
+                    //MatchingCompetitionDataManager.Instance.AddSceneItemOne(itemCfg, idList[1], idList[2]);
+                }
+            }
+            await Task.Delay(200);
+            MatchingRightDataManager.Instance.InsertGameObjectList();
+            for (int i = 0; i < MatchingRightDataManager.Instance.itemGameObjs.Count; i++)
+            {
+                GameObject itemGObj = MatchingRightDataManager.Instance.itemGameObjs[i];
+                TransformData itemdata = new TransformData();
+                if (MatchingRightDataManager.Instance.DressPropTransInfoDic.ContainsKey(itemGObj.name))
+                {
+                    itemdata = MatchingRightDataManager.Instance.DressPropTransInfoDic[itemGObj.name];
+                }
+                MatchingRightDataManager.Instance.itemGameObjs[i].transform.position = itemdata.position;
+                if (MatchingRightDataManager.Instance.itemGameObjs[i].name == "Role")
+                {
+                    if (itemdata.position.y >= -5 || itemdata.position.y <= 5)
+                    {
+                        MatchingRightDataManager.Instance.itemGameObjs[i].transform.position = new Vector3(itemdata.position.x, 0, 0);
+                    }
+                    if (itemdata.position.x >= -5 || itemdata.position.x <= 5)
+                    {
+                        MatchingRightDataManager.Instance.itemGameObjs[i].transform.position = new Vector3(0, MatchingRightDataManager.Instance.itemGameObjs[i].transform.position.y, 0);
+                    }
+                }
+                MatchingRightDataManager.Instance.itemGameObjs[i].transform.Rotate(itemGObj.transform.eulerAngles.x, itemGObj.transform.eulerAngles.y, itemdata.rotationZ);
+                MatchingRightDataManager.Instance.itemGameObjs[i].transform.localScale = itemdata.scale;
+                PhotographUtil.Instance.ChangeLayer(MatchingRightDataManager.Instance.itemGameObjs[i], i * PhotographDataManager.layerCount, "up");
+            }
+            PhotographUtil.Instance.ChangeLayer(MatchingRightDataManager.Instance.roleGameobj, 2 * PhotographDataManager.layerCount, "up");
+            await Task.Delay(50);
+            _sceneObjectRight.transform.position = new Vector3(50, 50, 50);
+            UpdatePlayer();
+        }
+        private RenderTexture renderTexureLeft;
+        private RenderTexture renderTexureRight;
+        private void UpdatePlayer()
+        {
+            //_ui.m_playerShow1.m_playerImage.m_playerImage.texture = new NTexture(renderTexureLeft);
+            //_ui.m_playerShow2.m_playerImage.m_playerImage.texture = new NTexture(renderTexureRight);
+            _ui.m_playerShow1.m_playerImage.m_playerImage.texture = MatchingLeftDataManager.Instance.LeftRoleInfo.Ntexture;
+            _ui.m_playerShow2.m_playerImage.m_playerImage.texture = MatchingRightDataManager.Instance.RightRoleInfo.Ntexture;
+            MatchingPhotoWorksData otherLeftdata = MatchingLeftDataManager.Instance.LeftRoleInfo;
+            JudgingRoundRoleInfo otherLeftInfo = otherLeftdata.JudgingInfo;
+            RoleInfoManager.Instance.UpdateHead(_ui.m_player1.m_head, otherLeftInfo.HeadItemId, otherLeftInfo.HeadBorderItemId);
+            _ui.m_player1.m_nameText.text = otherLeftInfo.RoleName.ToString();
+            _ui.m_select1.m_numText.visible = false;
+            _ui.m_select1.m_numText.text = otherLeftInfo.Score.ToString();
+            MatchingPhotoWorksData otherRightdata = MatchingRightDataManager.Instance.RightRoleInfo;
+            JudgingRoundRoleInfo otherRightInfo = otherRightdata.JudgingInfo;
+            RoleInfoManager.Instance.UpdateHead(_ui.m_player2.m_head, otherRightInfo.HeadItemId, otherRightInfo.HeadBorderItemId);
+            _ui.m_player2.m_nameText.text = otherRightInfo.RoleName.ToString();
+            _ui.m_select2.m_numText.visible = false;
+            _ui.m_select2.m_numText.text = otherRightInfo.Score.ToString();
+            ViewManager.Hide<ModalStatusView>();
+        }
+        private void UpdateView()
+        {
+            _ui.m_selectText1.alpha = 0;
+            _ui.m_selectText2.alpha = 0;
+            _ui.m_timeText.text = string.Format("剩余次数:{0}",Mathf.Max(0, judgingCfg.FreeTimes - MatchingCompetitionDataManager.Instance.MatchingRemainingTimes));
+        }
+        private void OnClickBtnBack()
+        {
+            _ui.m_BtnBack.touchable = true;
+            ViewManager.GoBackFrom(typeof(MatchingCompetitionSelectView).FullName);
+        }
+        private async void OnClickBtnSelect1()
+        {
+            if((judgingCfg.FreeTimes - MatchingCompetitionDataManager.Instance.MatchingRemainingTimes)<=0)
+            {
+                PromptController.Instance.ShowFloatTextPrompt("评选次数不足");
+                return;
+            }
+            bool result = await MatchingCompetitionSproxy.ReqCheckMatchingCompetitionWork(
+                MatchingLeftDataManager.Instance.LeftRoleInfo.JudgingInfo.WorksId,MatchingRightDataManager.Instance.RightRoleInfo.JudgingInfo.WorksId
+                ) ;
+            if(result)
+            {
+                _ui.m_select1.m_c1.selectedIndex = 1;
+                _ui.m_select1.m_numText.visible = true;
+                _ui.m_select2.m_numText.visible = true;
+                _ui.m_select1.m_numText.text = string.Format("心动值{0}", MatchingLeftDataManager.Instance.LeftRoleInfo.JudgingInfo.Score.ToString());
+                _ui.m_timeText.text = string.Format("剩余次数:{0}", Mathf.Max(0, judgingCfg.FreeTimes - MatchingCompetitionDataManager.Instance.MatchingRemainingTimes));
+            }
+            _ui.m_t0.Play(async () =>
+            {
+                bool resulst = await MatchingCompetitionSproxy.ReqGetTwoPlayers();
+                if (resulst)
+                {
+                    if (_sceneObjectLeft != null)
+                    {
+                        PrefabManager.Instance.Restore(_sceneObjectLeft);
+                        _sceneObjectLeft = null;
+                    }
+                    if (_sceneObjectRight != null)
+                    {
+                        PrefabManager.Instance.Restore(_sceneObjectRight);
+                        _sceneObjectRight = null;
+                    }
+                    //UpdateDressLeft();
+                    UpdateView();
+                }
+            });
+        }
+        private async void OnClickBtnSelect2()
+        {
+            if ((judgingCfg.FreeTimes - MatchingCompetitionDataManager.Instance.MatchingRemainingTimes) <= 0)
+            {
+                PromptController.Instance.ShowFloatTextPrompt("评选次数不足");
+                return;
+            }
+            bool result = await MatchingCompetitionSproxy.ReqCheckMatchingCompetitionWork(
+                            MatchingRightDataManager.Instance.RightRoleInfo.JudgingInfo.WorksId, MatchingLeftDataManager.Instance.LeftRoleInfo.JudgingInfo.WorksId
+                            );
+            if (result)
+            {
+                _ui.m_select2.m_c1.selectedIndex = 1;
+                _ui.m_select1.m_numText.visible = true;
+                _ui.m_select2.m_numText.visible = true;
+                _ui.m_select2.m_numText.text = string.Format("心动值{0}", MatchingRightDataManager.Instance.RightRoleInfo.JudgingInfo.Score.ToString());
+                _ui.m_timeText.text = string.Format("剩余次数:{0}", Mathf.Max(0, judgingCfg.FreeTimes - MatchingCompetitionDataManager.Instance.MatchingRemainingTimes));
+            }
+            _ui.m_t1.Play(async () => 
+            {
+                bool resulst = await MatchingCompetitionSproxy.ReqGetTwoPlayers();
+                if (resulst)
+                {
+                    if (_sceneObjectLeft != null)
+                    {
+                        PrefabManager.Instance.Restore(_sceneObjectLeft);
+                        _sceneObjectLeft = null;
+                    }
+                    if (_sceneObjectRight != null)
+                    {
+                        PrefabManager.Instance.Restore(_sceneObjectRight);
+                        _sceneObjectRight = null;
+                    }
+                   // UpdateDressLeft();
+                    UpdateView();
+                }
+            });
+        }
+
+        private void CheckGuide(object param)
+        {
+            if (GuideDataManager.IsGuideFinish("DAPEISAI_2") <= 0)
+            {
+                UpdateToCheckGuide(null);
+            }
+            else
+            {
+                Timers.inst.Remove(CheckGuide);
+            }
+        }
+        protected override void UpdateToCheckGuide(object param)
+        {
+            if (!ViewManager.CheckIsTopView(this.viewCom)) return;
+            GuideController.TryGuide(_ui.m_select1.target, "DAPEISAI_2", 3, "选择你喜欢的搭配!");
+            GuideController.TryCompleteGuide("DAPEISAI_2", 3);
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionSelectView.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 68370d49548492c4b99ee283cc0160c4
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 332 - 0
GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionUpLoadView.cs

@@ -0,0 +1,332 @@
+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.001f;
+        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_beforeWork.onClick.Add(OnClickBtnBeforeWorks);
+            _ui.m_ruleBtn.onClick.Add(MatchingCompetitionDataManager.Instance.OnClickBtnRule);
+        }
+        protected override void OnShown()
+        {
+            base.OnShown();
+            _ui.m_bg.url = ResPathUtil.GetBgImgPath("pxs_bj");
+            _ui.m_c1.selectedIndex = MatchingCompetitionDataManager.Instance.MatchingState;
+            _ui.m_titleText.text = JudgingRoundOpenCfgArray.Instance.dataArray[MatchingCompetitionDataManager.Instance.MatchingCompetitionSeason - 1].Name;
+            isCountTime = false;
+            UpdateView();
+            UpdateHead();
+            UpdateDress();
+            Timers.inst.AddUpdate(UpdateTime);
+            Timers.inst.AddUpdate(CheckGuide);
+            //临时处理,后续下载做好了替换
+            //result = await MatchingCompetitionSproxy.ReqCurrentRank();
+        }
+
+        protected override void OnHide()
+        {
+            if (_sceneObject != null)
+            {
+                PrefabManager.Instance.Restore(_sceneObject);
+                _sceneObject = null;
+            }
+            Timers.inst.Remove(UpdateTime);
+            Timers.inst.Remove(UpdateCountTime);
+            Timers.inst.Remove(CheckGuide);
+            MatchingCompetitionDataManager.Instance.DressPropIndex = 0;
+            base.OnHide();     
+        }
+        protected override void AddEventListener()
+        {
+            base.AddEventListener();
+            EventAgent.AddEventListener(ConstMessage.DOWNLOAD_FINISH,UpdateDress);
+        }
+        protected override void RemoveEventListener()
+        {
+            base.RemoveEventListener();
+            EventAgent.RemoveEventListener(ConstMessage.DOWNLOAD_FINISH, UpdateDress);
+        }
+        private async void UpdateDress()
+        {
+            //if (MatchingOneDataManager.Instance.MathingDressDate.actionId != 0)
+            if(false)
+            {
+                _ui.m_bg.visible = false;
+                _ui.m_playerImage.visible = false;
+                MatchingOneDataManager.Instance.itemGameObjs.Clear();
+                PhotographDataManager.Instance.itemGameObjs.Clear();
+                PhotographDataManager.Instance.dressUpObj?.Dispose();
+                PhotographDataManager.Instance.dressUpObj = new DressUpObj();
+                if (_sceneObject == null)
+                {
+                    _sceneObject = PrefabManager.Instance.InstantiateSync(ResPathUtil.GetPrefabPath("ScenePhotograph"));
+                }
+                PhotographSceneManager.Instance.sceneObject = _sceneObject;
+                if(MatchingOneDataManager.Instance.DressUpBgID == 0)
+                {
+                    PhotographSceneManager.Instance.AddBgItem(ItemCfgArray.Instance.GetCfg(180001));
+                }
+                else
+                {
+                    PhotographSceneManager.Instance.AddBgItem(ItemCfgArray.Instance.GetCfg(MatchingOneDataManager.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(MatchingOneDataManager.Instance.MathingDressDate);
+
+                //对搭配赛特殊处理
+                foreach (var item in MatchingCompetitionDataManager.Instance.DressPropTransInfoDic)
+                {
+                    if (item.Key == MatchingCompetitionDataManager.Instance.roleID)
+                    {
+                        continue;
+                    }
+                    else
+                    {
+                        List<int> idList = MatchingCompetitionDataManager.Instance.GetIDListByString(item.Key);
+                        ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(idList[0]);
+                        MatchingCompetitionDataManager.Instance.AddSceneItemOne(itemCfg, idList[1], idList[2]);
+                    }
+                }
+                await Task.Delay(200);
+                MatchingOneDataManager.Instance.InsertGameObjectList();
+                for (int i = 0; i < MatchingOneDataManager.Instance.itemGameObjs.Count; i++)
+                {
+                    GameObject itemGObj = MatchingOneDataManager.Instance.itemGameObjs[i];
+                    TransformData itemdata = new TransformData();
+                    if (MatchingOneDataManager.Instance.DressPropTransInfoDic.ContainsKey(itemGObj.name))
+                    {
+                        itemdata = MatchingOneDataManager.Instance.DressPropTransInfoDic[itemGObj.name];
+                    }
+                    MatchingOneDataManager.Instance.itemGameObjs[i].transform.position = itemdata.position;
+                    //if (MatchingOneDataManager.Instance.itemGameObjs[i].name == "Role")
+                    //{
+                    //    if(itemdata.position.y >= -5 || itemdata.position.y <= 5)
+                    //    {
+                    //        MatchingOneDataManager.Instance.itemGameObjs[i].transform.position = new Vector3(itemdata.position.x,0,0);
+                    //    }
+                    //    if(itemdata.position.x >= -5 || itemdata.position.x <= 5)
+                    //    {
+                    //        MatchingOneDataManager.Instance.itemGameObjs[i].transform.position = new Vector3(0, MatchingOneDataManager.Instance.itemGameObjs[i].transform.position.y, 0);
+                    //    }
+                    //}
+                    MatchingOneDataManager.Instance.itemGameObjs[i].transform.Rotate(itemGObj.transform.eulerAngles.x, itemGObj.transform.eulerAngles.y, itemdata.rotationZ);
+                    MatchingOneDataManager.Instance.itemGameObjs[i].transform.localScale = itemdata.scale;
+                    PhotographUtil.Instance.ChangeLayer(MatchingOneDataManager.Instance.itemGameObjs[i], (i+1) * PhotographDataManager.layerCount, "up");
+                }
+                //PhotographUtil.Instance.ChangeLayer(MatchingOneDataManager.Instance.roleGameobj, 2 * PhotographDataManager.layerCount, "up");
+            }
+            else
+            {
+                _ui.m_bg.visible = true;
+                _ui.m_playerImage.visible = true;
+                _ui.m_playerImage.texture = MatchingOneDataManager.Instance.OneRoleInfo.Ntexture;
+            }
+        }
+        private void UpdateView()
+        {
+            _ui.m_countTime.fillAmount = 0;
+            _ui.m_countTime.visible = false;
+            //long endTime = MatchingCompetitionDataManager.Instance.MatchingEndTimes;
+            //long curTime = TimeHelper.ServerNow();
+            //if (endTime < curTime + 1)
+            //{
+            //    if (MatchingCompetitionDataManager.Instance.MatchingState == 2)
+            //    {
+            //        PromptController.Instance.ShowFloatTextPrompt("评选时间已到!");
+            //    }
+            //    return;
+            //}
+            //TimeUtil.FormattingTime(curTime, endTime, out int num, out string str);
+            //if (MatchingCompetitionDataManager.Instance.MatchingState == 2)
+            //{
+            //    _ui.m_timeText.text = "评选剩余时间:" + TimeUtil.FormattingTimeTo_DDHHmm(endTime - curTime);
+            //}
+            //else
+            //{
+            //    _ui.m_timeText.text = "结算剩余时间:" + TimeUtil.FormattingTimeTo_DDHHmm(endTime - curTime);
+            //}
+        }
+        private void UpdateHead()
+        {
+            RoleInfoManager.Instance.UpdateHead(_ui.m_playerHead.m_head, MatchingOneDataManager.Instance.OneRoleInfo.JudgingInfo.HeadItemId, MatchingOneDataManager.Instance.OneRoleInfo.JudgingInfo.HeadBorderItemId);
+            _ui.m_playerHead.m_nameText.text = MatchingOneDataManager.Instance.OneRoleInfo.JudgingInfo.RoleName.ToString();
+            _ui.m_playerHead.m_countText.text = MatchingOneDataManager.Instance.OneRoleInfo.JudgingInfo.Score.ToString();
+        }
+        private void UpdateTime(object param = null)
+        {
+            long endTime = MatchingCompetitionDataManager.Instance.MatchingEndTimes;
+            long curTime = TimeHelper.ServerNow();
+            if (endTime < curTime + 1)
+            {
+                Timers.inst.Remove(UpdateTime);
+                if (MatchingCompetitionDataManager.Instance.MatchingState == 2)
+                {
+                    PromptController.Instance.ShowFloatTextPrompt("评选时间已到!");
+                    ViewManager.GoBackFrom(typeof(MatchingCompetitionUpLoadView).FullName);
+                }
+                return;
+            }
+            TimeUtil.FormattingTime(curTime, endTime, out int num, out string str);
+            if (MatchingCompetitionDataManager.Instance.MatchingState == 2)
+            {
+                _ui.m_timeText.text = "评选剩余时间:" + TimeUtil.FormattingTimeTo_DDHHmm(endTime - curTime);
+            }
+            else
+            {
+                _ui.m_timeText.text = "结算剩余时间:" + TimeUtil.FormattingTimeTo_DDHHmm(endTime - curTime);
+            }
+                
+        }
+        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 async void OnClickBtnUpload()
+        {
+            if(MatchingCompetitionDataManager.Instance.MatchingState == 3)
+            {
+                PromptController.Instance.ShowFloatTextPrompt("结算期间无法选择!");
+                return;
+            }
+            //先获取两个玩家信息
+            bool resulst =  await MatchingCompetitionSproxy.ReqGetTwoPlayers();
+            if(resulst)
+            {
+                ViewManager.Show<MatchingCompetitionSelectView>();
+            }
+        }
+        private void OnClickBtnShop()
+        {
+            ViewManager.Show<StoreView>(new object[] { ConstStoreTabId.STORE_EXCHANGE, 3 });
+        }
+        private void OnClickBtnMyWorks()
+        {
+            ViewManager.Show<MatchingCompetitionLookView>();
+        }
+        private void OnClickBtnBeforeWorks()
+        {
+            ViewManager.Show<PoemPhotoView>(2);
+        }
+        private async void OnClickBtnRank()
+        {
+            bool result = await MatchingCompetitionSproxy.ReqCurrentRank();
+            if(result)
+            {
+                ViewManager.Show<MatchingCompetitionRankView>();
+            }   
+            else
+            {
+                PromptController.Instance.ShowFloatTextPrompt("暂无玩家上榜!");
+            }
+        }
+        private async 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);
+            //ViewManager.Show<ModalStatusView>("刷新中...");
+            bool result = await MatchingCompetitionSproxy.ReqGetOnePlayers();
+            if (result)
+            {
+                if (_sceneObject != null)
+                {
+                    PrefabManager.Instance.Restore(_sceneObject);
+                    _sceneObject = null;
+                }
+                //UpdateView();
+                UpdateHead();
+                UpdateDress();
+                //ViewManager.Hide<ModalStatusView>();
+            }
+            //ViewManager.Hide<ModalStatusView>();
+        }
+        private void OnClickBtnLook()
+        {
+            List<int> AllIdList = new List<int>();
+            foreach (var info in MatchingOneDataManager.Instance.OneRoleInfo.JudgingInfo.CollocationInfoList)
+            {
+                AllIdList.Add(MatchingCompetitionDataManager.Instance.GetIDByString(info.ItemId));
+            }
+            MatchingCompetitionDataManager.Instance.DetailNtexture = MatchingOneDataManager.Instance.OneRoleInfo.Ntexture;
+            ViewManager.Show<MatchingCompetitionDetailView>(AllIdList);
+        }
+
+        private void CheckGuide(object param)
+        {
+            if (GuideDataManager.IsGuideFinish("DAPEISAI_2") <= 0 && MatchingCompetitionDataManager.Instance.MatchingState == 2)
+            {
+                UpdateToCheckGuide(null);
+            }
+            else
+            {
+                Timers.inst.Remove(CheckGuide);
+            }
+        }
+        protected override void UpdateToCheckGuide(object param)
+        {
+            if (!ViewManager.CheckIsTopView(this.viewCom)) return;
+            GuideController.TryGuide(_ui.m_btnUploadWorks, "DAPEISAI_2", 2, "进行评选!");
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionUpLoadView.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 01139ae047964da40951822650c5d4a4
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 108 - 0
GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionWorkListView.cs

@@ -0,0 +1,108 @@
+using System;
+using System.Collections.Generic;
+using ET;
+using FairyGUI;
+using UI.MatchingCompetition;
+using UnityEngine;
+
+namespace GFGGame
+{
+    class MatchingCompetitionWorksListView : BaseWindow
+    {
+        private UI_MatchingCompetitionWorkListUI _ui;
+        private int _seasonIndex = 0;
+        public override void Dispose()
+        {
+            if (_ui != null)
+            {
+                _ui.Dispose();
+            }
+            _ui = null;
+            base.Dispose();
+        }
+
+        protected override void OnInit()
+        {
+            base.OnInit();
+            packageName = UI_MatchingCompetitionWorkListUI.PACKAGE_NAME;
+            _ui = UI_MatchingCompetitionWorkListUI.Create();
+            this.viewCom = _ui.target;
+            isReturnView = true;
+            isfullScreen = true;
+
+            _ui.m_workList.itemRenderer = RenderRankList;
+            _ui.m_BtnBack.onClick.Add(OnClickBtnBack);
+        }
+        protected override void AddEventListener()
+        {
+            base.AddEventListener();
+            EventAgent.AddEventListener(ConstMessage.DOWNLOAD_FINISH, UpdateView);
+        }
+        protected override void RemoveEventListener()
+        {
+            base.RemoveEventListener();
+            EventAgent.RemoveEventListener(ConstMessage.DOWNLOAD_FINISH, UpdateView);
+        }
+        protected override void OnShown()
+        {
+            base.OnShown();
+            _ui.m_bg.url = ResPathUtil.GetBgImgPath("pxs_bj");
+            _ui.m_titleText.text = JudgingRoundOpenCfgArray.Instance.dataArray[MatchingCompetitionDataManager.Instance.MatchingCompetitionSeason - 1].Name;
+            _seasonIndex = (int)this.viewData;
+            UpdateView();
+        }
+
+        protected override void OnHide()
+        {
+            base.OnHide();
+        }
+
+        private void UpdateView()
+        {
+            _ui.m_workList.numItems = MatchingCompetitionDataManager.Instance._BeforeRankList.Count;
+        }
+        private void RenderRankList(int index, GObject obj)
+        {
+            UI_Component6 item = UI_Component6.Proxy(obj);
+            if((index +1) >=1 && (index + 1)<=3)
+            {
+                item.m_c1.selectedIndex = index + 1;
+            }
+            else
+            {
+                item.m_c1.selectedIndex = 0;
+            }
+            MatchingPhotoWorksData otherdata = MatchingCompetitionDataManager.Instance._BeforeRankList[index];
+            JudgingRoundRoleInfo otherInfo = otherdata.JudgingInfo;
+            otherInfo.Rank = index;
+            RoleInfoManager.Instance.UpdateHead(item.m_head, otherInfo.HeadItemId, otherInfo.HeadBorderItemId);
+            item.m_nameText.text = otherInfo.RoleName.ToString();
+            item.m_countText.text = otherInfo.Score.ToString();
+            item.m_playerImage.texture = otherdata.Ntexture;
+            item.m_descText.text = (index+1).ToString();
+            if (item.target.data == null)
+            {
+                item.target.onClick.Add(OnClickBtnItem);
+            }
+            item.target.data = index;
+            UI_Component6.ProxyEnd();
+        }
+        private void OnClickBtnItem(EventContext context)
+        {
+            GObject item = context.sender as GObject;
+            int index = (int)item.data;
+            MatchingPhotoWorksData otherInfo = MatchingCompetitionDataManager.Instance._BeforeRankList[index];
+            List<int> AllIdList = new List<int>();
+            foreach(var info in otherInfo.JudgingInfo.CollocationInfoList)
+            {
+                AllIdList.Add(MatchingCompetitionDataManager.Instance.GetIDByString(info.ItemId));
+            }
+            MatchingCompetitionDataManager.Instance.DetailNtexture = otherInfo.Ntexture;
+            ViewManager.Show<MatchingCompetitionDetailView>(AllIdList);
+        }
+        private void OnClickBtnBack()
+        {
+            ViewManager.GoBackFrom(typeof(MatchingCompetitionWorksListView).FullName);
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionWorkListView.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 17c79563e48192e4ab254e5576f0c9a9
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 101 - 0
GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionWorksView.cs

@@ -0,0 +1,101 @@
+using System;
+using System.Collections.Generic;
+using ET;
+using FairyGUI;
+using UI.MatchingCompetition;
+using UnityEngine;
+
+namespace GFGGame
+{
+    class MatchingCompetitionWorksView : BaseWindow
+    {
+        private UI_MatchingCompetitionWorksUI _ui;
+        private int _currentIndex = 0;
+        public override void Dispose()
+        {
+            if (_ui != null)
+            {
+                _ui.Dispose();
+            }
+            _ui = null;
+            base.Dispose();
+        }
+
+        protected override void OnInit()
+        {
+            base.OnInit();
+            packageName = UI_MatchingCompetitionWorksUI.PACKAGE_NAME;
+            _ui = UI_MatchingCompetitionWorksUI.Create();
+            this.viewCom = _ui.target;
+            isReturnView = true;
+            isfullScreen = true;
+
+            _ui.m_worksList.itemRenderer = RenderRankList;
+            _ui.m_BtnBack.onClick.Add(OnClickBtnBack);
+        }
+        protected override void AddEventListener()
+        {
+            base.AddEventListener();
+            EventAgent.AddEventListener(ConstMessage.DOWNLOAD_FINISH, UpdateView);
+        }
+        protected override void RemoveEventListener()
+        {
+            base.RemoveEventListener();
+            EventAgent.RemoveEventListener(ConstMessage.DOWNLOAD_FINISH, UpdateView);
+        }
+        protected override void OnShown()
+        {
+            base.OnShown();
+            _ui.m_bg.url = ResPathUtil.GetBgImgPath("pxs_bj");
+            _ui.m_titleText.text = JudgingRoundOpenCfgArray.Instance.dataArray[MatchingCompetitionDataManager.Instance.MatchingCompetitionSeason - 1].Name;
+            UpdateView();
+        }
+
+        protected override void OnHide()
+        {
+            base.OnHide();
+        }
+        private void UpdateView()
+        {
+            if(MatchingCompetitionDataManager.Instance._BeforeWorksList.Count == 0)
+            {
+                _ui.m_descText.visible = true;
+            }
+            else
+            {
+                _ui.m_descText.visible = false;
+            }
+            _ui.m_worksList.numItems = MatchingCompetitionDataManager.Instance._BeforeWorksList.Count;
+        }
+        private void RenderRankList(int index, GObject obj)
+        {
+            UI_Component5 item = UI_Component5.Proxy(obj);
+            JudgingRoundOpenCfg judingCfg = JudgingRoundOpenCfgArray.Instance.GetCfg(MatchingCompetitionDataManager.Instance._BeforeWorksList[index].WorksInfo.OldJudgingRoundOpenId);
+            item.m_seasonText.text = string.Format("第{0}期",MatchingCompetitionDataManager.Instance._BeforeWorksList[index].WorksInfo.OldJudgingRoundOpenId.ToString());
+            item.m_seasonName.text = judingCfg.Name;
+            item.m_openTime.visible = false;
+            //string themeTime = TimeUtil.FormattingTimeTo_yyyMMdd2(MatchingCompetitionDataManager.Instance._BeforeWorksList[index]);
+            item.m_playerImage.texture = MatchingCompetitionDataManager.Instance._BeforeWorksList[index].Ntexture;
+            if (item.target.data == null)
+            {
+                item.target.onClick.Add(OnClickBtnItem);
+            }
+            item.target.data = index;
+            UI_Component5.ProxyEnd();
+        }
+        private async void OnClickBtnItem(EventContext context)
+        {
+            GObject item = context.sender as GObject;
+            int index = (int)item.data +1;
+            bool result = await MatchingCompetitionSproxy.ReqBeforeRank(index);
+            if(result)
+            {
+                ViewManager.Show<MatchingCompetitionWorksListView>(index);
+            } 
+        }
+        private void OnClickBtnBack()
+        {
+            ViewManager.GoBackFrom(typeof(MatchingCompetitionWorksView).FullName);
+        }
+    }
+}

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно