Browse Source

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

hexiaojie 1 year ago
parent
commit
5c273a7202
21 changed files with 444 additions and 78 deletions
  1. 68 31
      GameClient/Assets/Editor/ToolsMenu.cs
  2. 2 0
      GameClient/Assets/Game/HotUpdate/Constant/ConstMessage.cs
  3. 1 0
      GameClient/Assets/Game/HotUpdate/Controller/GameController.cs
  4. 70 10
      GameClient/Assets/Game/HotUpdate/Data/MatchingCompetitionDataManager.cs
  5. 45 3
      GameClient/Assets/Game/HotUpdate/Data/MatchingPhotoHelper.cs
  6. 18 1
      GameClient/Assets/Game/HotUpdate/Data/PhotographSceneManager.cs
  7. 23 0
      GameClient/Assets/Game/HotUpdate/Data/VO/MatchingCompetitionData.cs
  8. 3 3
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_Component6.cs
  9. 12 9
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionRankUI.cs
  10. 118 10
      GameClient/Assets/Game/HotUpdate/ServerProxy/MatchingCompetitionSproxy.cs
  11. 29 0
      GameClient/Assets/Game/HotUpdate/Utils/StringUtil.cs
  12. 1 1
      GameClient/Assets/Game/HotUpdate/Views/DressUp/PhotographView.cs
  13. 2 0
      GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionDetailView.cs
  14. 33 4
      GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionRankView.cs
  15. 18 5
      GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionUpLoadView.cs
  16. 1 1
      GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionWorkListView.cs
  17. BIN
      GameClient/Assets/ResIn/UI/MatchingCompetition/MatchingCompetition_atlas0!a.png
  18. BIN
      GameClient/Assets/ResIn/UI/MatchingCompetition/MatchingCompetition_atlas0.png
  19. BIN
      GameClient/Assets/ResIn/UI/MatchingCompetition/MatchingCompetition_atlas0_1!a.png
  20. BIN
      GameClient/Assets/ResIn/UI/MatchingCompetition/MatchingCompetition_atlas0_1.png
  21. BIN
      GameClient/Assets/ResIn/UI/MatchingCompetition/MatchingCompetition_fui.bytes

+ 68 - 31
GameClient/Assets/Editor/ToolsMenu.cs

@@ -32,7 +32,6 @@ namespace GFGEditor
         [MenuItem("外网DEV/")]
         public static void VersionTag()
         {
-            
         }
 #elif PT_DouYouDev
         [MenuItem("PT_DouYouDev/")]
@@ -59,12 +58,13 @@ namespace GFGEditor
             
         }
 #else
-
         [MenuItem("内网/")]
         public static void VersionTag()
         {
 
         }
+
+#endif
         [MenuItem("策划/更新并导入所有", false, (int)TOOL_MENU_PRIORITY.UpdateAndImportAll)]
         static void UpdateAndImportAll()
         {
@@ -146,7 +146,6 @@ namespace GFGEditor
         {
             DeleteUnnecessaryImage();
         }
-#endif
 
         private static void UpdateProjectRes()
         {
@@ -169,6 +168,7 @@ namespace GFGEditor
             {
                 ProcessUtil.ExcuteBat("Assets/Editor/Bat/", "updateArtRes.bat", ImportArtResTool.ResRootDirNameDressUp);
             }
+
             EditorUtility.ClearProgressBar();
         }
 
@@ -186,12 +186,14 @@ namespace GFGEditor
             ProcessUtil.ExcuteBat("Assets/Editor/Bat/", "commitBundles.bat");
             EditorUtility.ClearProgressBar();
         }
+
         public static void ImportArtRes()
         {
             EditorUtility.DisplayProgressBar("进度", "正在导入美术资源", 1);
             ImportArtResTool.Import();
             EditorUtility.ClearProgressBar();
         }
+
         public static void ImportExcel()
         {
             Log.ILog = new UnityLogger();
@@ -201,6 +203,13 @@ namespace GFGEditor
                 File.Delete(ExcelConfig.excelsCacheFolderPath);
             }
             ET.Options.Instance = new ET.Options();
+            //清除缓存  
+            
+            if (File.Exists(ExcelConfig.excelsCacheFolderPath))
+            {
+                File.Delete(ExcelConfig.excelsCacheFolderPath);
+            }
+            
             EditorUtility.DisplayProgressBar("进度", "正在导入表格", 1);
             SqliteController.Instance.Init(false, null);
             SQLiteHelper.Instance.OpenConnection();
@@ -214,6 +223,7 @@ namespace GFGEditor
             {
                 Directory.CreateDirectory(ExcelConfig.configCodePath);
             }
+
             if (!Directory.Exists(ExcelConfig.configArrayCodePath))
             {
                 Directory.CreateDirectory(ExcelConfig.configArrayCodePath);
@@ -236,6 +246,7 @@ namespace GFGEditor
             EditorUtility.ClearProgressBar();
             SQLiteHelper.Instance.CloseConnection();
         }
+
         static void UpdateAndImportArtRes()
         {
             UpdateArtRes();
@@ -244,7 +255,6 @@ namespace GFGEditor
 
         static void UpdateAndImportExcel()
         {
-
             UpdateExcel();
             ImportExcel();
         }
@@ -254,6 +264,7 @@ namespace GFGEditor
         {
             ImportArtResTool.Test();
         }
+
         [MenuItem("Tools/ImageClip/ReadImagePosition")]
         public static void ReadImagePosition()
         {
@@ -271,51 +282,77 @@ namespace GFGEditor
         {
             EditorUtility.DisplayProgressBar("进度", "开始清除资源", 1);
 
-            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.FieldGuideIconTargetPath, new string[] { ImportArtResTool.FieldGuideIconMd5FileSaveName });
-            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.ChapterGuideIconTargetPath, new string[] { ImportArtResTool.ChapterGuideIconMd5FileSaveName });
+            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.FieldGuideIconTargetPath,
+                new string[] { ImportArtResTool.FieldGuideIconMd5FileSaveName });
+            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.ChapterGuideIconTargetPath,
+                new string[] { ImportArtResTool.ChapterGuideIconMd5FileSaveName });
 
-            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.MusicTargetPath, new string[] { ImportArtResTool.MusicMd5FileSaveName });
+            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.MusicTargetPath,
+                new string[] { ImportArtResTool.MusicMd5FileSaveName });
 
-            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.CardMusicTargetPath, new string[] { ImportArtResTool.CardMusicMd5FileSaveName });
+            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.CardMusicTargetPath,
+                new string[] { ImportArtResTool.CardMusicMd5FileSaveName });
 
-            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.ItemIconTargetPath, new string[] { ImportArtResTool.IconMd5FileSaveName });
+            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.ItemIconTargetPath,
+                new string[] { ImportArtResTool.IconMd5FileSaveName });
 
-            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.DressUpTargetPath, new string[] { ImportArtResTool.BgMd5FileSaveName, ImportArtResTool.DressUpMd5FileSaveName });
+            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.DressUpTargetPath,
+                new string[] { ImportArtResTool.BgMd5FileSaveName, ImportArtResTool.DressUpMd5FileSaveName });
 
-            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.NpcHeadTargetPath, new string[] { ImportArtResTool.NPCHeadMd5FileSaveName });
+            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.NpcHeadTargetPath,
+                new string[] { ImportArtResTool.NPCHeadMd5FileSaveName });
 
-            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.NpcPicTargetPath, new string[] { ImportArtResTool.PicFMd5FileSaveName });
+            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.NpcPicTargetPath,
+                new string[] { ImportArtResTool.PicFMd5FileSaveName });
 
-            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.NpcPicSTargetPath, new string[] { ImportArtResTool.PicSMd5FileSaveName });
+            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.NpcPicSTargetPath,
+                new string[] { ImportArtResTool.PicSMd5FileSaveName });
 
-            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.CardBgTargetPath, new string[] { ImportArtResTool.CardBgMd5FileSaveName });
+            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.CardBgTargetPath,
+                new string[] { ImportArtResTool.CardBgMd5FileSaveName });
 
-            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.CardIconTargetPath, new string[] { ImportArtResTool.CardMd5FileSaveName });
-            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.CardSkillTargetPath, new string[] { ImportArtResTool.CardSkillMd5FileSaveName });
+            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.CardIconTargetPath,
+                new string[] { ImportArtResTool.CardMd5FileSaveName });
+            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.CardSkillTargetPath,
+                new string[] { ImportArtResTool.CardSkillMd5FileSaveName });
 
-            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.ActivityTargetPath, new string[] { ImportArtResTool.ActivityMd5FileSaveName });
-            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.ActivityShow1TargetPath, new string[] { ImportArtResTool.ActivityShow1Md5FileSaveName });
+            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.ActivityTargetPath,
+                new string[] { ImportArtResTool.ActivityMd5FileSaveName });
+            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.ActivityShow1TargetPath,
+                new string[] { ImportArtResTool.ActivityShow1Md5FileSaveName });
 
-            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.PhotoGraphBorderTargetPath, new string[] { ImportArtResTool.PhotoGraphBorderMd5FileSaveName });
+            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.PhotoGraphBorderTargetPath,
+                new string[] { ImportArtResTool.PhotoGraphBorderMd5FileSaveName });
 
-            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.UIBgTargetPath, new string[] { ImportArtResTool.UIBgMd5FileSaveName });
-            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.TravelBgTargetPath, new string[] { ImportArtResTool.TravelBgMd5FileSaveName });
-            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.TravelRoleTargetPath, new string[] { ImportArtResTool.TravelRoleMd5FileSaveName });
-            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.HeadTargetPath, new string[] { ImportArtResTool.HeadMd5FileSaveName });
-            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.HeadBorderTargetPath, new string[] { ImportArtResTool.HeadBorderMd5FileSaveName });
-            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.LeagueIconTargetPath, new string[] { ImportArtResTool.LeagueIconMd5FileSaveName });
+            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.UIBgTargetPath,
+                new string[] { ImportArtResTool.UIBgMd5FileSaveName });
+            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.TravelBgTargetPath,
+                new string[] { ImportArtResTool.TravelBgMd5FileSaveName });
+            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.TravelRoleTargetPath,
+                new string[] { ImportArtResTool.TravelRoleMd5FileSaveName });
+            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.HeadTargetPath,
+                new string[] { ImportArtResTool.HeadMd5FileSaveName });
+            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.HeadBorderTargetPath,
+                new string[] { ImportArtResTool.HeadBorderMd5FileSaveName });
+            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.LeagueIconTargetPath,
+                new string[] { ImportArtResTool.LeagueIconMd5FileSaveName });
 
-            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.ActivityShow2TargetPath, new string[] { ImportArtResTool.ActivityShow2Md5FileSaveName });
+            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.ActivityShow2TargetPath,
+                new string[] { ImportArtResTool.ActivityShow2Md5FileSaveName });
 
-            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.MaterialTargetPath, new string[] { ImportArtResTool.EffectMaterialMd5FileSaveName });
-            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.ShaderTargetPath, new string[] { ImportArtResTool.ShaderMd5FileSaveName });
+            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.MaterialTargetPath,
+                new string[] { ImportArtResTool.EffectMaterialMd5FileSaveName });
+            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.ShaderTargetPath,
+                new string[] { ImportArtResTool.ShaderMd5FileSaveName });
             // FileUtil.DeleteUnnecessaryImage(ImportArtResTool.ModelTargetPath, new string[] { ImportArtResTool.ModelTargetPath });
 
-            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.TextureTargetPath, new string[] { ImportArtResTool.EffectTextureMd5FileSaveName });
+            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.TextureTargetPath,
+                new string[] { ImportArtResTool.EffectTextureMd5FileSaveName });
+
+            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.LuckyBoxTitleImgTargetPath,
+                new string[] { ImportArtResTool.LuckyBoxTitleImgMd5FileSaveName });
 
-            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.LuckyBoxTitleImgTargetPath, new string[] { ImportArtResTool.LuckyBoxTitleImgMd5FileSaveName });
 
-            
             DeleteFileHelper.TrySvnRemoveDeleteFile();
             EditorUtility.ClearProgressBar();
         }

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

@@ -262,5 +262,7 @@ namespace GFGGame
         public const string FieldWork_STARTCHANGE = "FieldWork_STARTCHANGE";
         //奖励界面关闭
         public const string REWARDVIEW_CLOTHER = "REWARDVIEW_CLOTHER";
+        //关卡排行榜数据加载完毕
+        public const string REQ_CURRENT_RANK = "REQ_CURRENT_RANK";
     }
 }

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

@@ -283,6 +283,7 @@ namespace GFGGame
             ShopSProxy.ReqGetGrowthFundInfo().Coroutine();
             ActivityAfuGiftSProxy.GetSummerGiftInfo().Coroutine();
             //RoleInfoSProxy.ReqNewRoleGetSuitStatus().Coroutine();
+            MatchingCompetitionSproxy.ReqCurrentRank().Coroutine();
 
             int storageAutoPlay = StorageDataManager.Instance.GetStorageValue(ConstStorageId.STORAGE_AUTO_PLAY);
             FightDataManager.Instance.autoPlay = storageAutoPlay <= 0 ? false : true;

+ 70 - 10
GameClient/Assets/Game/HotUpdate/Data/MatchingCompetitionDataManager.cs

@@ -1,4 +1,5 @@
-using ET;
+
+using ET;
 using System;
 using System.Collections;
 using System.Collections.Generic;
@@ -7,6 +8,7 @@ using UnityEngine;
 using Live2D.Cubism.Rendering;
 using FairyGUI;
 using UI.MatchingCompetition;
+using System.IO;
 
 namespace GFGGame
 {
@@ -68,7 +70,11 @@ namespace GFGGame
         public NTexture MyNtextture;
         public byte[] MyBytes;
         //本期排行榜数据
-        public List<MatchingPhotoWorksData> _currentRankList = new List<MatchingPhotoWorksData>();
+        public List<CurRanMatchingPhotoWorksData> _currentRankList = new List<CurRanMatchingPhotoWorksData>();
+        //本期排行榜数据--协程锁变量
+        public bool IsWork = false;
+        //本期排行榜数据--协程消息队列
+        public Queue<int> _coroutineQueue = new Queue<int>();
         //往期作品集
         public List<MatchingWorksData> _BeforeWorksList = new List<MatchingWorksData>();
         //往期排行榜数据
@@ -173,7 +179,10 @@ namespace GFGGame
                 {
                     //propIDList.Add(AllDressIDInfoList[i].ItemId);
                     //transDataList.Add(AnalysisStringToTransform(AllDressIDInfoList[i].ClientPosition));
-                    DressPropTransInfoDic.Add(AllDressIDInfoList[i].ItemId.ToString(), AnalysisStringToTransform(AllDressIDInfoList[i].ClientPosition));
+                    if (!DressPropTransInfoDic.ContainsKey(AllDressIDInfoList[i].ItemId))
+                    {
+                        DressPropTransInfoDic.Add(AllDressIDInfoList[i].ItemId.ToString(), AnalysisStringToTransform(AllDressIDInfoList[i].ClientPosition));
+                    }
                 }
                 else
                 {
@@ -187,7 +196,10 @@ namespace GFGGame
                             //transDataList.Add(AnalysisStringToTransform(AllDressIDInfoList[i].ClientPosition));
                             if(GetIDListByString(AllDressIDInfoList[i].ItemId).Count > 1)
                             {
-                                DressPropTransInfoDic.Add(AllDressIDInfoList[i].ItemId.ToString(), AnalysisStringToTransform(AllDressIDInfoList[i].ClientPosition));
+                                if (!DressPropTransInfoDic.ContainsKey(AllDressIDInfoList[i].ItemId))
+                                {
+                                    DressPropTransInfoDic.Add(AllDressIDInfoList[i].ItemId.ToString(), AnalysisStringToTransform(AllDressIDInfoList[i].ClientPosition));
+                                }
                             }                           
                         }
                         else if (itemCfg != null && itemCfg.subType == ConstDressUpItemType.BEI_JING)
@@ -205,7 +217,10 @@ namespace GFGGame
                         //记录道具和位置信息
                         //propIDList.Add(GetIDByString(AllDressIDInfoList[i].ItemId));
                         //transDataList.Add(AnalysisStringToTransform(AllDressIDInfoList[i].ClientPosition));
-                        DressPropTransInfoDic.Add(AllDressIDInfoList[i].ItemId.ToString(), AnalysisStringToTransform(AllDressIDInfoList[i].ClientPosition));
+                        if (!DressPropTransInfoDic.ContainsKey(AllDressIDInfoList[i].ItemId))
+                        {
+                            DressPropTransInfoDic.Add(AllDressIDInfoList[i].ItemId.ToString(), AnalysisStringToTransform(AllDressIDInfoList[i].ClientPosition));
+                        }
                     }
                     else if(itemCfg == null)
                     {
@@ -253,6 +268,34 @@ namespace GFGGame
                     roleTransFormData.scale = itemGameObjs[i].transform.localScale;
                     TransformDataList.Add(roleTransFormData);
                     DressPropNameList.Add(itemGameObjs[i].name);
+                    if (!DressPropTransInfoDic.ContainsKey(itemGameObjs[i].name))
+                    {
+                        DressPropTransInfoDic.Add(itemGameObjs[i].name, roleTransFormData);
+                    }
+                }
+                else if (itemGameObjs[i].name == "Border")
+                {
+                    itemData.position = itemGameObjs[i].transform.position;
+                    itemData.rotationZ = itemGameObjs[i].transform.eulerAngles.z;
+                    itemData.scale = itemGameObjs[i].transform.localScale;
+                    TransformDataList.Add(roleTransFormData);
+                    DressPropNameList.Add(itemGameObjs[i].name);
+                    if (!DressPropTransInfoDic.ContainsKey(itemGameObjs[i].name))
+                    {
+                        DressPropTransInfoDic.Add(BorderID.ToString(), itemData);
+                    }
+                }
+                else if (itemGameObjs[i].name == "Npc")
+                {
+                    itemData.position = itemGameObjs[i].transform.position;
+                    itemData.rotationZ = itemGameObjs[i].transform.eulerAngles.z;
+                    itemData.scale = itemGameObjs[i].transform.localScale;
+                    TransformDataList.Add(roleTransFormData);
+                    DressPropNameList.Add(itemGameObjs[i].name);
+                    if (!DressPropTransInfoDic.ContainsKey(itemGameObjs[i].name))
+                    {
+                        DressPropTransInfoDic.Add(NpcID.ToString(), itemData);
+                    }
                 }
                 else
                 {
@@ -261,8 +304,12 @@ namespace GFGGame
                     itemData.scale = itemGameObjs[i].transform.localScale;
                     TransformDataList.Add(itemData);
                     DressPropNameList.Add(itemGameObjs[i].name);
+                    if(!DressPropTransInfoDic.ContainsKey(itemGameObjs[i].name))
+                    {
+                        DressPropTransInfoDic.Add(itemGameObjs[i].name, itemData);
+                    }  
                 }
-                DressPropTransInfoDic.Add(itemGameObjs[i].name, itemData);
+                
             }
             //SetNameToIdList();
         }
@@ -284,10 +331,14 @@ namespace GFGGame
                 {
                     return -2;
                 }
-                else if (!isNumeric)
+                else if (vl == "Npc")
                 {
                     return -3;
                 }
+                else if(!isNumeric)
+                {
+                    return -4;
+                }
 
                 id = int.Parse(parts[0]);
             }
@@ -590,7 +641,10 @@ namespace GFGGame
                 {
                     //propIDList.Add(colloctItemInfo.ItemId);
                     //transDataList.Add(MatchingCompetitionDataManager.Instance.AnalysisStringToTransform(colloctItemInfo.ClientPosition));
-                    DressPropTransInfoDic.Add(colloctItemInfo.ItemId, MatchingCompetitionDataManager.Instance.AnalysisStringToTransform(colloctItemInfo.ClientPosition));
+                    if(!DressPropTransInfoDic.ContainsKey(colloctItemInfo.ItemId))
+                    {
+                        DressPropTransInfoDic.Add(colloctItemInfo.ItemId, MatchingCompetitionDataManager.Instance.AnalysisStringToTransform(colloctItemInfo.ClientPosition));
+                    }    
                 }
                 else
                 {
@@ -602,7 +656,10 @@ namespace GFGGame
                             //记录道具和位置信息
                             //propIDList.Add(colloctItemInfo.ItemId);
                             //transDataList.Add(MatchingCompetitionDataManager.Instance.AnalysisStringToTransform(colloctItemInfo.ClientPosition));
-                            DressPropTransInfoDic.Add(colloctItemInfo.ItemId, MatchingCompetitionDataManager.Instance.AnalysisStringToTransform(colloctItemInfo.ClientPosition));
+                            if (!DressPropTransInfoDic.ContainsKey(colloctItemInfo.ItemId))
+                            {
+                                DressPropTransInfoDic.Add(colloctItemInfo.ItemId, MatchingCompetitionDataManager.Instance.AnalysisStringToTransform(colloctItemInfo.ClientPosition));
+                            }
                         }
                         else if (itemCfg != null && itemCfg.subType == ConstDressUpItemType.BEI_JING)
                         {
@@ -618,7 +675,10 @@ namespace GFGGame
                         //记录道具和位置信息
                         //propIDList.Add(colloctItemInfo.ItemId);
                         //transDataList.Add(MatchingCompetitionDataManager.Instance.AnalysisStringToTransform(colloctItemInfo.ClientPosition));
-                        DressPropTransInfoDic.Add(colloctItemInfo.ItemId, MatchingCompetitionDataManager.Instance.AnalysisStringToTransform(colloctItemInfo.ClientPosition));
+                        if (!DressPropTransInfoDic.ContainsKey(colloctItemInfo.ItemId))
+                        {
+                            DressPropTransInfoDic.Add(colloctItemInfo.ItemId, MatchingCompetitionDataManager.Instance.AnalysisStringToTransform(colloctItemInfo.ClientPosition));
+                        }
                     }
                 }
             }

+ 45 - 3
GameClient/Assets/Game/HotUpdate/Data/MatchingPhotoHelper.cs

@@ -33,19 +33,33 @@ namespace GFGGame
             {
                 return true;
             }
-
         }
+        
+        public static IEnumerator DownloadExt(List<CurRanMatchingPhotoWorksData> list)
+        {
+            for (int i = 0; i < list.Count; i++)
+            {
+                CurRanMatchingPhotoWorksData data = list[i];
+                if (data == null || data.Ntexture != null || !data.IsUp) continue;
+                int count = 0;
+                yield return DownloadPictureExt(data, count);
+            }
 
-
+            MatchingCompetitionDataManager.Instance.IsWork = false;
+            ET.Log.Debug("Download  finish!!!");
+            EventAgent.DispatchEvent(ConstMessage.DOWNLOAD_FINISH);
+        }
+        
         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;
+                if (data == null || data.Ntexture != null || !data.IsUp) continue;
                 int count = 0;
                 yield return DownloadPicture(data, count);
             }
+            
             ET.Log.Debug("Download  finish!!!");
             EventAgent.DispatchEvent(ConstMessage.DOWNLOAD_FINISH);
         }
@@ -68,6 +82,34 @@ namespace GFGGame
             ET.Log.Debug("Download  finish!!!");
             EventAgent.DispatchEvent(ConstMessage.DOWNLOAD_FINISH);
         }
+        
+        private static IEnumerator DownloadPictureExt(CurRanMatchingPhotoWorksData 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 DownloadPictureExt(data, count);
+                }
+                else
+                {
+                    Texture2D texture = (request.downloadHandler as DownloadHandlerTexture).texture;
+                    data.Ntexture = new NTexture(texture);
+                    data.Bytes = texture.EncodeToJPG();
+                }
+            }
+        }
 
         private static IEnumerator DownloadPicture(MatchingPhotoWorksData data, int count)
         {

+ 18 - 1
GameClient/Assets/Game/HotUpdate/Data/PhotographSceneManager.cs

@@ -207,7 +207,24 @@ namespace GFGGame
         private void AddItemGameObjectToList(GameObject parentGameObj, bool setLayer)
         {
             List<GameObject> itemGameObjs = PhotographDataManager.Instance.itemGameObjs;
-            itemGameObjs.Add(parentGameObj);
+            bool hasSame = false;
+            for(int i =0; i<itemGameObjs.Count;i++)
+            {
+                if (itemGameObjs[i].name == parentGameObj.name && parentGameObj.name == "Npc")
+                {
+                    hasSame = true;
+                    itemGameObjs[i] = parentGameObj;
+                }
+                else if (itemGameObjs[i].name == parentGameObj.name && parentGameObj.name == "Border")
+                {
+                    hasSame = true;
+                    itemGameObjs[i] = parentGameObj;
+                }
+            }
+            if(!hasSame)
+            {
+                itemGameObjs.Add(parentGameObj);
+            }        
 
             if (setLayer)
             {

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

@@ -41,9 +41,32 @@ namespace GFGGame
         public float rotationZ = 0f;
         public Vector3 scale = new Vector3(1,1,1);
     }
+    
+    //搭配赛当期排行榜作品信息
+    public class CurRanMatchingPhotoWorksData
+    {
+        public long RoleId { get; set; }
+
+        public bool IsUp = true;
+
+        public JudgingRoundRoleInfo JudgingInfo;
+        /// <summary>
+        /// 照片数据
+        /// </summary>
+        public byte[] Bytes;
+        /// <summary>
+        /// 照片资源
+        /// </summary>
+        public NTexture Ntexture;//个人相册数据
+    }
+    
     //搭配赛作品信息
     public class MatchingPhotoWorksData
     {
+        public long RoleId { get; set; }
+
+        public bool IsUp = true;
+
         public JudgingRoundRoleInfo JudgingInfo;
         /// <summary>
         /// 照片数据

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

@@ -9,10 +9,10 @@ namespace UI.MatchingCompetition
         public GComponent target;
         public Controller m_c1;
         public GLoader m_playerImage;
+        public GTextField m_descText;
         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";
@@ -62,19 +62,19 @@ namespace UI.MatchingCompetition
         {
             m_c1 = comp.GetController("c1");
             m_playerImage = (GLoader)comp.GetChild("playerImage");
+            m_descText = (GTextField)comp.GetChild("descText");
             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_descText = null;
             m_head = null;
             m_nameText = null;
             m_countText = null;
-            m_descText = null;
             if(disposeTarget && target != null)
             {
                 target.RemoveFromParent();

+ 12 - 9
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MatchingCompetition/UI_MatchingCompetitionRankUI.cs

@@ -10,12 +10,13 @@ namespace UI.MatchingCompetition
         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 GLoader m_outBg;
         public GList m_RankList;
         public UI_Component3 m_playerHead;
         public GButton m_btnLook;
+        public GLoader m_ruleBtn;
+        public GTextField m_titleText;
+        public GButton m_btnBefore;
         public GButton m_BtnBack;
         public const string URL = "ui://ri3cveycp3ft1g";
         public const string PACKAGE_NAME = "MatchingCompetition";
@@ -67,12 +68,13 @@ namespace UI.MatchingCompetition
             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_outBg = (GLoader)comp.GetChild("outBg");
             m_RankList = (GList)comp.GetChild("RankList");
             m_playerHead = (UI_Component3)UI_Component3.Create(comp.GetChild("playerHead"));
             m_btnLook = (GButton)comp.GetChild("btnLook");
+            m_ruleBtn = (GLoader)comp.GetChild("ruleBtn");
+            m_titleText = (GTextField)comp.GetChild("titleText");
+            m_btnBefore = (GButton)comp.GetChild("btnBefore");
             m_BtnBack = (GButton)comp.GetChild("BtnBack");
         }
         public void Dispose(bool disposeTarget = false)
@@ -80,13 +82,14 @@ namespace UI.MatchingCompetition
             m_c1 = null;
             m_bg = null;
             m_playerImage = null;
-            m_ruleBtn = null;
-            m_titleText = null;
-            m_btnBefore = null;
+            m_outBg = null;
             m_RankList = null;
             m_playerHead.Dispose();
             m_playerHead = null;
             m_btnLook = null;
+            m_ruleBtn = null;
+            m_titleText = null;
+            m_btnBefore = null;
             m_BtnBack = null;
             if(disposeTarget && target != null)
             {

+ 118 - 10
GameClient/Assets/Game/HotUpdate/ServerProxy/MatchingCompetitionSproxy.cs

@@ -1,9 +1,12 @@
-using ET;
+using System;
+using System.Collections;
+using ET;
 using GFGGame;
 using FairyGUI;
 using UnityEngine;
 using UnityEngine.Networking;
 using System.Collections.Generic;
+using System.Linq;
 
 namespace ET
 {
@@ -57,6 +60,7 @@ namespace GFGGame
         //    if (!(response is { Error: ErrorCode.ERR_Success })) return false;
         //    return true;
         //}
+        
         //获取一个热门推荐的玩家
         public static async ETTask<bool> ReqGetOnePlayers()
         {
@@ -152,20 +156,123 @@ namespace GFGGame
             return true;
         }
         //获取当前排行榜
-        public static async ETTask<bool> ReqCurrentRank()
+        public static async ETTask<bool> ReqCurrentRank(bool isPushEvent = false)
         {
-            var response = (S2C_GetCurJudgingRoundRankList)await MessageHelper.SendToServer(new C2S_GetCurJudgingRoundRankList { });
+            MatchingCompetitionDataManager.Instance.IsWork = true;
+            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)
+
+            //需要从缓存里清理的数据
+            List<long> delRoleIds = new List<long>();
+            foreach (var item in MatchingCompetitionDataManager.Instance._currentRankList)
             {
-                MatchingPhotoWorksData data = new MatchingPhotoWorksData();
-                data.JudgingInfo = item;
-                MatchingCompetitionDataManager.Instance._currentRankList.Add(data);
+                if (response.JudgingRoundRoleInfoList.All(a => a.RoleId != item.RoleId))
+                {
+                    delRoleIds.Add(item.RoleId);
+                }
+            }
+
+            //执行清理
+            if (delRoleIds.Count != 0)
+            {
+                foreach (var roleId in delRoleIds)
+                {
+                    var itemToRemove =
+                        MatchingCompetitionDataManager.Instance._currentRankList.FirstOrDefault(item =>
+                            item.RoleId == roleId);
+                    if (itemToRemove != null)
+                    {
+                        MatchingCompetitionDataManager.Instance._currentRankList.Remove(itemToRemove);
+                    }
+                }
             }
-            Timers.inst.StartCoroutine(MatchingPhotoHelper.Download(MatchingCompetitionDataManager.Instance._currentRankList));
+            
+            foreach (var judgingRoundRoleInfo in response.JudgingRoundRoleInfoList)
+            {
+                CurRanMatchingPhotoWorksData matchingPhotoWorksData =
+                    MatchingCompetitionDataManager.Instance._currentRankList.FirstOrDefault(a =>
+                        a.RoleId == judgingRoundRoleInfo.RoleId);
+                if (matchingPhotoWorksData == null)
+                {
+                    matchingPhotoWorksData = new CurRanMatchingPhotoWorksData
+                    {
+                        RoleId = judgingRoundRoleInfo.RoleId,
+                        JudgingInfo = judgingRoundRoleInfo
+                    };
+                    MatchingCompetitionDataManager.Instance._currentRankList.Add(matchingPhotoWorksData);
+                }
+                else
+                {
+                    int index = MatchingCompetitionDataManager.Instance._currentRankList
+                        .IndexOf(matchingPhotoWorksData);
+                    if (matchingPhotoWorksData.JudgingInfo != null)
+                    {
+                        string newTempFileName = StringUtil.GetUrlFileName(matchingPhotoWorksData.JudgingInfo.PictureTempUrl);
+                        string oldTempFileName = StringUtil.GetUrlFileName(judgingRoundRoleInfo.PictureTempUrl);
+                        matchingPhotoWorksData.IsUp = newTempFileName != oldTempFileName;
+                    }
+
+                    matchingPhotoWorksData.JudgingInfo = judgingRoundRoleInfo;
+                    matchingPhotoWorksData.RoleId = judgingRoundRoleInfo.RoleId;
+                    if (matchingPhotoWorksData.IsUp)
+                    {
+                        matchingPhotoWorksData.Ntexture = null;
+                    }
+                    
+                    MatchingCompetitionDataManager.Instance._currentRankList[index] = matchingPhotoWorksData;
+                }
+            }
+
+            //排序
+            MatchingCompetitionDataManager.Instance._currentRankList.Sort((a, b) =>
+            {
+                // 假设列表项具有一个名为 'score' 的属性,你想要按照分数进行排序
+                if (a.JudgingInfo.Score > b.JudgingInfo.Score)
+                {
+                    return -1; // a在b之前
+                }
+                else if (a.JudgingInfo.Score < b.JudgingInfo.Score)
+                {
+                    return 1; // b在a之前
+                }
+                else
+                {
+                    return 0; // a和b相同
+                }
+            });
+            
+            var enumerator = MatchingPhotoHelper.DownloadExt(MatchingCompetitionDataManager.Instance._currentRankList);
+            Timers.inst.StartCoroutine(enumerator);
+            
+            //推送事件
+            if (isPushEvent)
+            {
+                EventAgent.DispatchEvent(ConstMessage.REQ_CURRENT_RANK);
+            }
+
             return true;
         }
+        
+        public static void UseCoroutine()
+        {
+            if (!MatchingCompetitionDataManager.Instance.IsWork)
+            {
+                if (MatchingCompetitionDataManager.Instance._coroutineQueue.Count == 0)
+                {
+                    return;
+                }
+                
+                int vl = MatchingCompetitionDataManager.Instance._coroutineQueue.Dequeue();
+                if (vl == 1)
+                {
+                    //缓存里面存在数据,那也要再次请求服务器进行更新数据,只是用协程的形式,接着处理完数据后抛出事件
+                    ReqCurrentRank(true).Coroutine();
+                }
+            }
+        }
+        
         //获取往期作品集
         public static async ETTask<bool> ReqBeforeWorks()
         {
@@ -184,12 +291,13 @@ namespace GFGGame
         //获取往期作品排行榜
         public static async ETTask<bool> ReqBeforeRank(int id)
         {
-            var response = (S2C_GetOldJudgingRoundRankList)await MessageHelper.SendToServer(new C2S_GetOldJudgingRoundRankList { JudgingRoundOpenId = 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.RoleId = item.RoleId;
                 data.JudgingInfo = item;
                 MatchingCompetitionDataManager.Instance._BeforeRankList.Add(data);
             }

+ 29 - 0
GameClient/Assets/Game/HotUpdate/Utils/StringUtil.cs

@@ -66,6 +66,35 @@ namespace GFGGame
             return posValue;
 
         }
+
+        /// <summary>
+        /// 获取下载地址的文件名, 包含后缀
+        /// </summary>
+        /// <param name="url"></param>
+        /// <returns></returns>
+        public static string GetUrlFileName(string url)
+        {
+            try
+            {
+                // 创建一个 Uri 对象
+                Uri uri = new Uri(url);
+
+                // 获取 URL 的路径部分
+                string path = uri.AbsolutePath;
+
+                // 从路径中提取文件名
+                string fileName = System.IO.Path.GetFileName(path);
+
+                // // 获取不包含扩展名的文件名
+                // string fileNameWithoutExtension = System.IO.Path.GetFileNameWithoutExtension(fileName);
+                return fileName;
+            }
+            catch
+            {
+                //增加容错
+                return url;
+            }
+        }
     }
 }
 

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

@@ -804,7 +804,7 @@ namespace GFGGame
                 if(MatchingCompetitionDataManager.Instance.NpcID != 0)
                 {
                     GameObject NpcGameObj = PhotographSceneManager.Instance.sceneObject.transform.Find("Scene/Npc").gameObject;
-                    MatchingCompetitionDataManager.Instance.itemGameObjs.Add(NpcGameObj);
+                    //MatchingCompetitionDataManager.Instance.itemGameObjs.Add(NpcGameObj);
                 }
                 MatchingCompetitionDataManager.Instance.MathingDressDate = MyDressUpHelper.dressUpObj.DressUpDataClone();
                 MatchingCompetitionDataManager.Instance.SetTransformData();

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

@@ -91,7 +91,9 @@ namespace GFGGame
             AllIdList.Remove(60000);
             AllIdList.Remove(-1);
             AllIdList.Remove(0);
+            AllIdList.Remove(-2);
             AllIdList.Remove(-3);
+            AllIdList.Remove(-4);
             _ui.m_dressList.numItems = AllIdList.Count;
         }
         private void UpdateDress()

+ 33 - 4
GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionRankView.cs

@@ -40,6 +40,7 @@ namespace GFGGame
         {
             base.OnShown();
             _ui.m_bg.url = ResPathUtil.GetBgImgPath("pxs_bj");
+            _ui.m_outBg.url = ResPathUtil.GetBgImgPath("pxs_pmdb");
             _ui.m_titleText.text = JudgingRoundOpenCfgArray.Instance.dataArray[MatchingCompetitionDataManager.Instance.MatchingCompetitionSeason - 1].Name;
             UpdateView();
             UpdateHead();
@@ -53,17 +54,45 @@ namespace GFGGame
         {
             base.AddEventListener();
             EventAgent.AddEventListener(ConstMessage.DOWNLOAD_FINISH, UpdateView);
+            EventAgent.AddEventListener(ConstMessage.REQ_CURRENT_RANK, UpdateView);
+            EventAgent.AddEventListener(ConstMessage.DOWNLOAD_FINISH, ViewUseCoroutine);
         }
         protected override void RemoveEventListener()
         {
             base.RemoveEventListener();
             EventAgent.RemoveEventListener(ConstMessage.DOWNLOAD_FINISH, UpdateView);
+            EventAgent.RemoveEventListener(ConstMessage.REQ_CURRENT_RANK, UpdateView);
+            EventAgent.RemoveEventListener(ConstMessage.DOWNLOAD_FINISH, ViewUseCoroutine);
         }
+
+        private void ViewUseCoroutine()
+        {
+            MatchingCompetitionSproxy.UseCoroutine();
+        }
+
         private void UpdateView()
         {
+            //排序
+            MatchingCompetitionDataManager.Instance._currentRankList.Sort((a, b) =>
+            {
+                // 假设列表项具有一个名为 'score' 的属性,你想要按照分数进行排序
+                if (a.JudgingInfo.Score > b.JudgingInfo.Score)
+                {
+                    return -1; // a在b之前
+                }
+                else if (a.JudgingInfo.Score < b.JudgingInfo.Score)
+                {
+                    return 1; // b在a之前
+                }
+                else
+                {
+                    return 0; // a和b相同
+                }
+            });
+            
             if(MatchingCompetitionDataManager.Instance._currentRankList.Count > 0)
             {
-                MatchingPhotoWorksData otherInfo = MatchingCompetitionDataManager.Instance._currentRankList[0];
+                CurRanMatchingPhotoWorksData otherInfo = MatchingCompetitionDataManager.Instance._currentRankList[0];
                 _ui.m_playerImage.texture = otherInfo.Ntexture;
             }
             else
@@ -83,7 +112,7 @@ namespace GFGGame
         private void RenderRankList(int index, GObject obj)
         {
             UI_Component3 item = UI_Component3.Proxy(obj);
-            MatchingPhotoWorksData otherdata = MatchingCompetitionDataManager.Instance._currentRankList[index];
+            CurRanMatchingPhotoWorksData otherdata = MatchingCompetitionDataManager.Instance._currentRankList[index];
             JudgingRoundRoleInfo otherInfo = otherdata.JudgingInfo;
             otherInfo.Rank = index + 1;
             RoleInfoManager.Instance.UpdateHead(item.m_head, otherInfo.HeadItemId, otherInfo.HeadBorderItemId);
@@ -97,12 +126,12 @@ namespace GFGGame
             item.target.data = index;
             UI_Component3.ProxyEnd();
         }
-        private void OnClickBtnItem(EventContext context)
+       private void OnClickBtnItem(EventContext context)
         {
             GObject item = context.sender as GObject;
             int index = (int)item.data; 
             _currentIndex = index;
-            MatchingPhotoWorksData otherInfo = MatchingCompetitionDataManager.Instance._currentRankList[index];
+            CurRanMatchingPhotoWorksData otherInfo = MatchingCompetitionDataManager.Instance._currentRankList[index];
             _ui.m_playerImage.texture = otherInfo.Ntexture;
         }
         private void OnClickBtnBack()

+ 18 - 5
GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionUpLoadView.cs

@@ -264,16 +264,29 @@ namespace GFGGame
         }
         private async void OnClickBtnRank()
         {
-            bool result = await MatchingCompetitionSproxy.ReqCurrentRank();
-            if(result)
+            if (MatchingCompetitionDataManager.Instance._currentRankList.Count == 0)
             {
-                ViewManager.Show<MatchingCompetitionRankView>();
-            }   
+                //缓存里面不存在数据的话就进行同步加载数据
+                bool result = await MatchingCompetitionSproxy.ReqCurrentRank();
+                if (result)
+                {
+                    ViewManager.Show<MatchingCompetitionRankView>();
+                }
+                else
+                {
+                    PromptController.Instance.ShowFloatTextPrompt("暂无玩家上榜!");
+                }
+            }
             else
             {
-                PromptController.Instance.ShowFloatTextPrompt("暂无玩家上榜!");
+                MatchingCompetitionDataManager.Instance._coroutineQueue.Enqueue(1);
+                MatchingCompetitionSproxy.UseCoroutine();
+                
+                //那就直接显示界面
+                ViewManager.Show<MatchingCompetitionRankView>();
             }
         }
+        
         private async void OnClickBtnExchange()
         {
             if (isCountTime)

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

@@ -61,7 +61,7 @@ namespace GFGGame
         {
             _ui.m_workList.numItems = MatchingCompetitionDataManager.Instance._BeforeRankList.Count;
         }
-        private void RenderRankList(int index, GObject obj)
+         private void RenderRankList(int index, GObject obj)
         {
             UI_Component6 item = UI_Component6.Proxy(obj);
             if((index +1) >=1 && (index + 1)<=3)

BIN
GameClient/Assets/ResIn/UI/MatchingCompetition/MatchingCompetition_atlas0!a.png


BIN
GameClient/Assets/ResIn/UI/MatchingCompetition/MatchingCompetition_atlas0.png


BIN
GameClient/Assets/ResIn/UI/MatchingCompetition/MatchingCompetition_atlas0_1!a.png


BIN
GameClient/Assets/ResIn/UI/MatchingCompetition/MatchingCompetition_atlas0_1.png


BIN
GameClient/Assets/ResIn/UI/MatchingCompetition/MatchingCompetition_fui.bytes