hexiaojie 4 месяцев назад
Родитель
Сommit
7e3ea72fde

+ 85 - 176
GameClient/.idea/.idea.GameClient/.idea/workspace.xml

@@ -6,165 +6,14 @@
   <component name="ChangeListManager">
     <list default="true" id="19bfabb9-fe2e-4e01-a01b-df7ac5ab759f" name="更改" comment="">
       <change beforePath="$PROJECT_DIR$/.idea/.idea.GameClient/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.GameClient/.idea/workspace.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/ExcelConfig/Partical/ActivityOpenCfgArray.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/ExcelConfig/Partical/ActivityOpenCfgArray.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/ExcelConfig/Partical/ArenaRewardCfgArrayPartical.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/ExcelConfig/Partical/ArenaRewardCfgArrayPartical.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/ExcelConfig/Partical/CollegeBoostCfgArray.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/ExcelConfig/Partical/CollegeBoostCfgArray.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/ExcelConfig/Partical/SuitCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/ExcelConfig/Partical/SuitCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblActivityDressCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblActivityDressCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblActivityLoginCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblActivityLoginCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblActivityOpenCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblActivityOpenCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblActivityRecharge2Cfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblActivityRecharge2Cfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblActivityRechargeCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblActivityRechargeCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblActivitySignCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblActivitySignCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblActivityVisitCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblActivityVisitCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblArenaRewardCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblArenaRewardCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblArenaRobotCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblArenaRobotCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblBattlePassCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblBattlePassCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblCardGameCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblCardGameCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblCardLvlCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblCardLvlCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblCardStarCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblCardStarCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblChapterRewardCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblChapterRewardCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblCollegeBoostCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblCollegeBoostCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblCompositeLevelbonusCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblCompositeLevelbonusCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblCompositebonusCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblCompositebonusCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblCoolDownCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblCoolDownCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblDailyLoginCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblDailyLoginCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblDailySignBonusCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblDailySignBonusCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblDailySignCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblDailySignCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblDropOutCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblDropOutCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblEctypeCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblEctypeCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblEverydaySaleCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblEverydaySaleCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblFieldTaskCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblFieldTaskCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblFilingRewardCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblFilingRewardCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblGrowthFundCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblGrowthFundCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblHuarongRoadCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblHuarongRoadCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblHuarongRoadGame.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblHuarongRoadGame.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblIActivityLuckybonusCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblIActivityLuckybonusCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblItemCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblItemCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblLeagueSkillCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblLeagueSkillCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblMerge2048Cfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblMerge2048Cfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblMerge2048GameCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblMerge2048GameCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblMergeGameCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblMergeGameCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblMonthlyCardClothesCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblMonthlyCardClothesCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblMonthlyCardPrivilegeCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblMonthlyCardPrivilegeCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblPassivitySkillCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblPassivitySkillCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblPickUpCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblPickUpCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblPickUpGameCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblPickUpGameCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblShopCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblShopCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblStoreTabCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblStoreTabCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblStoryChapterCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblStoryChapterCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblStoryDialogCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblStoryDialogCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblStudioCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblStudioCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblSuitCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblSuitCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblSuitFosterCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblSuitFosterCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblTravelLoactionCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblTravelLoactionCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblTravelSuitCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblTravelSuitCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblTurntableRewardCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/TblTurntableRewardCfg.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Controller/GameController.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Controller/GameController.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Controller/MainController.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Controller/MainController.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/ActivityAfuGiftDataManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/ActivityAfuGiftDataManager.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/ActivityDataManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/ActivityDataManager.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/ActivityGlobalDataManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/ActivityGlobalDataManager.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/BattlePassTaskDataManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/BattlePassTaskDataManager.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/Cache/DropOutDataCache.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/Cache/DropOutDataCache.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/CardDataManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/CardDataManager.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Assets/PrefabManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Assets/PrefabManager.cs" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/DailyTaskDataManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/DailyTaskDataManager.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/DecomposeDataManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/DecomposeDataManager.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/DressUpMenuItemDataManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/DressUpMenuItemDataManager.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/DressUpMenuSuitDataManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/DressUpMenuSuitDataManager.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/FightDataManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/FightDataManager.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/InstanceZonesDataManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/InstanceZonesDataManager.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/ItemDataManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/ItemDataManager.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/LuckyBoxDataManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/LuckyBoxDataManager.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/MainStoryDataManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/MainStoryDataManager.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/RedDotDataManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/RedDotDataManager.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/ScoreSystemData.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/ScoreSystemData.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/ShopDataManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/ShopDataManager.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/SkillDataManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/SkillDataManager.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/StudioDataManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/StudioDataManager.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/SuitFosterDatamanager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/SuitFosterDatamanager.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/TaskDataManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/TaskDataManager.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/TimeTracingDataManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/TimeTracingDataManager.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/CommonGame/UI_RewardUI.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/CommonGame/UI_RewardUI.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/ServerProxy/ActivitySProxy.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/ServerProxy/ActivitySProxy.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/ServerProxy/ArenaSproxy.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/ServerProxy/ArenaSproxy.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/ServerProxy/StudioSProxy.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/ServerProxy/StudioSProxy.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/DressUp/DressUpObj.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/DressUp/DressUpObj.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/DressUp/DressUpObjUI.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/DressUp/DressUpObjUI.cs" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/ServerProxy/TimeTracingSProxy.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/ServerProxy/TimeTracingSProxy.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/ServerProxy/TravelSProxy.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/ServerProxy/TravelSProxy.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ActivityGetYuanXiao/ActivityGetYuanXiaoView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ActivityGetYuanXiao/ActivityGetYuanXiaoView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ActivityHuaRongDao/ActivityHuaRongDaoView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ActivityHuaRongDao/ActivityHuaRongDaoView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ActivityMainTips/ActivityZCJBChapterView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ActivityMainTips/ActivityZCJBChapterView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ActivityMainTips/ActivityZCJBRewardView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ActivityMainTips/ActivityZCJBRewardView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ActivityMainTips/BlindBoxRewardView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ActivityMainTips/BlindBoxRewardView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ActivityMainTips/BlindBoxView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ActivityMainTips/BlindBoxView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ActivityMainTips/ZGTHgiftDCTipsView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ActivityMainTips/ZGTHgiftDCTipsView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ActivityThemeLuckyBox/ActivityThemeLuckyBoxBonusView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ActivityThemeLuckyBox/ActivityThemeLuckyBoxBonusView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ActivityWanShiLiUI/ActivityWanShiLiView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ActivityWanShiLiUI/ActivityWanShiLiView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Arena/ArenaDanRewardView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Arena/ArenaDanRewardView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Card/CardFosterView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Card/CardFosterView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Card/CardUpLevelView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Card/CardUpLevelView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ClothingFoster/ClothingFosterView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ClothingFoster/ClothingFosterView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ClothingFoster/ClothingRewardView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ClothingFoster/ClothingRewardView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ClothingFoster/ClothingView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ClothingFoster/ClothingView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ClothingShop/ClothingShopView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ClothingShop/ClothingShopView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ClothingShop/GalleryShopView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ClothingShop/GalleryShopView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ClothingSynthetic/ClothingSyntheticView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ClothingSynthetic/ClothingSyntheticView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ClothingSynthetic/SuitSyntheticView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ClothingSynthetic/SuitSyntheticView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/CommonGame/ApproachView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/CommonGame/ApproachView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/CommonGame/RewardView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/CommonGame/RewardView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/DailyWelfare/DailySignView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/DailyWelfare/DailySignView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/DailyWelfare/LimitChargeView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/DailyWelfare/LimitChargeView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/DailyWelfare/NewLimitChargeView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/DailyWelfare/NewLimitChargeView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/DailyWelfare/SevenDayLoginView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/DailyWelfare/SevenDayLoginView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/EnduringGiftBox/EnduringGiftBoxView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/EnduringGiftBox/EnduringGiftBoxView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/FieldGuide/DressUpGuideView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/FieldGuide/DressUpGuideView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/FieldGuide/TravelShowView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/FieldGuide/TravelShowView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/FieldWork/FieldWorkChooseCardView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/FieldWork/FieldWorkChooseCardView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/League/LeagueSkillUpView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/League/LeagueSkillUpView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/LuckyBox/LuckyBoxActivityView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/LuckyBox/LuckyBoxActivityView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MainStory/InstanceZonesController.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MainStory/InstanceZonesController.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MainStory/StoryCardChoose.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MainStory/StoryCardChoose.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MainStory/StoryChapterListView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MainStory/StoryChapterListView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MainStory/StoryDialogView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MainStory/StoryDialogView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MainStory/StoryLookBackView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MainStory/StoryLookBackView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MiniGame/ChallengeRewardView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MiniGame/ChallengeRewardView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MiniGame/FlipGameView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MiniGame/FlipGameView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MiniGame/GameStartView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MiniGame/GameStartView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MiniGame/ResultTipsView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MiniGame/ResultTipsView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MiniGame/SyntheticRoutetipView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MiniGame/SyntheticRoutetipView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MiniGame/TZFEGameCheckView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MiniGame/TZFEGameCheckView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MiniGame/TZFEGameVIew.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MiniGame/TZFEGameVIew.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/NewYearLogin/NewYearLoginView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/NewYearLogin/NewYearLoginView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/RoleInfo/BadgeChooseView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/RoleInfo/BadgeChooseView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/RoleInfo/ChangeHeadView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/RoleInfo/ChangeHeadView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/RoleInfo/GMPanelView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/RoleInfo/GMPanelView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Store/StoreArenaView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Store/StoreArenaView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Store/StoreBlackCardRewardView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Store/StoreBlackCardRewardView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Store/StoreBrocadeWeavView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Store/StoreBrocadeWeavView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Store/StoreExchangeView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Store/StoreExchangeView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Store/StoreGiftBagAddRebateView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Store/StoreGiftBagAddRebateView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Store/StoreGiftBagView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Store/StoreGiftBagView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Store/StoreMonthView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Store/StoreMonthView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Store/StoreZGDCView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Store/StoreZGDCView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Studio/StudioActivityView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Studio/StudioActivityView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Studio/StudioBuyNumView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Studio/StudioBuyNumView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Studio/StudioFabricView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Studio/StudioFabricView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Studio/StudioFilingRewardView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Studio/StudioFilingRewardView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Studio/StudioFilingView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Studio/StudioFilingView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Studio/StudioMetalView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Studio/StudioMetalView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Studio/StudioPorcelainView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Studio/StudioPorcelainView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Studio/StudioPropertyView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Studio/StudioPropertyView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Task/BattlePassTaskView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Task/BattlePassTaskView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Task/BuyBattlePassLevelView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Task/BuyBattlePassLevelView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/TimeTracing/TimeTracingLevelRewardView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/TimeTracing/TimeTracingLevelRewardView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/TimeTracing/TimeTracingLevelView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/TimeTracing/TimeTracingLevelView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/TimeTracing/TimeTracingShowView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/TimeTracing/TimeTracingShowView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/TurnTable/TurnSpecialTipsView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/TurnTable/TurnSpecialTipsView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/TurnTable/TurnTableView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/TurnTable/TurnTableView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/Launcher/LauncherConfig.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/Launcher/LauncherConfig.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/ResIn/UI/CommonGame/CommonGame_fui.bytes" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/ResIn/UI/CommonGame/CommonGame_fui.bytes" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/ProjectSettings/ProjectSettings.asset" beforeDir="false" afterPath="$PROJECT_DIR$/ProjectSettings/ProjectSettings.asset" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/UserSettings/EditorUserSettings.asset" beforeDir="false" afterPath="$PROJECT_DIR$/UserSettings/EditorUserSettings.asset" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/FieldGuide/SuitShowView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/FieldGuide/SuitShowView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/ResIn/LoginRes/LoginSkin1/SceneLogin.prefab" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/ResIn/LoginRes/LoginSkin1/SceneLogin.prefab" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/YooAsset/Runtime/YooAssetsExtension.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/YooAsset/Runtime/YooAssetsExtension.cs" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/UserSettings/Layouts/default-2022.dwlt" beforeDir="false" afterPath="$PROJECT_DIR$/UserSettings/Layouts/default-2022.dwlt" afterDir="false" />
     </list>
     <option name="SHOW_DIALOG" value="false" />
@@ -176,7 +25,7 @@
     <option name="firstShow" value="false" />
   </component>
   <component name="Git.Settings">
-    <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/Assets/Game/CSShare" />
+    <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/.." />
   </component>
   <component name="HighlightingSettingsPerFile">
     <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/351e49e2a5bf4fd6beabb458ce2255f3ff600/4e/84b60bbd/Enumerable.cs" root0="FORCE_HIGHLIGHTING" />
@@ -187,6 +36,7 @@
     <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/683a2b31bf9142429c44f02c75dbc6c913ce00/88/39e0e101/GameObject.cs" root0="FORCE_HIGHLIGHTING" />
     <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/683a2b31bf9142429c44f02c75dbc6c913ce00/f7/323a5d44/Application.cs" root0="FORCE_HIGHLIGHTING" />
     <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/695d1cc93cca45069c528c15c9fdd7493e2800/ae/712a485e/MemoryStream.cs" root0="FORCE_HIGHLIGHTING" />
+    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/a655008de92846458baa16d876fb23c4171c00/4e/29a91cbc/GameObject.cs" root0="SKIP_HIGHLIGHTING" />
     <setting file="file://$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/ExcelConfig/Partical/StoryLevelCfg.cs" root0="SKIP_HIGHLIGHTING" />
     <setting file="file://$PROJECT_DIR$/Assets/Game/Launcher/Views/Alert/Alert.cs" root0="FORCE_HIGHLIGHTING" />
     <setting file="file://$PROJECT_DIR$/Assets/Game/Launcher/Views/FullScreenTextView.cs" root0="SKIP_HIGHLIGHTING" />
@@ -201,24 +51,24 @@
     <option name="hideEmptyMiddlePackages" value="true" />
     <option name="showLibraryContents" value="true" />
   </component>
-  <component name="PropertiesComponent"><![CDATA[{
-  "keyToString": {
-    "ModuleVcsDetector.initialDetectionPerformed": "true",
-    "RunOnceActivity.OpenProjectViewOnStart": "true",
-    "RunOnceActivity.ShowReadmeOnStart": "true",
-    "RunOnceActivity.git.unshallow": "true",
-    "WebServerToolWindowFactoryState": "false",
-    "XThreadsFramesViewSplitterKey": "0.5252396",
-    "git-widget-placeholder": "master",
-    "node.js.detected.package.eslint": "true",
-    "node.js.detected.package.tslint": "true",
-    "node.js.selected.package.eslint": "(autodetect)",
-    "node.js.selected.package.tslint": "(autodetect)",
-    "nodejs_package_manager_path": "npm",
-    "vue.rearranger.settings.migration": "true",
-    "附加到 Unity 编辑器.附加到 Unity 编辑器.executor": "Debug"
+  <component name="PropertiesComponent">{
+  &quot;keyToString&quot;: {
+    &quot;ModuleVcsDetector.initialDetectionPerformed&quot;: &quot;true&quot;,
+    &quot;RunOnceActivity.OpenProjectViewOnStart&quot;: &quot;true&quot;,
+    &quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
+    &quot;RunOnceActivity.git.unshallow&quot;: &quot;true&quot;,
+    &quot;WebServerToolWindowFactoryState&quot;: &quot;false&quot;,
+    &quot;XThreadsFramesViewSplitterKey&quot;: &quot;0.5252396&quot;,
+    &quot;git-widget-placeholder&quot;: &quot;H5sdk&quot;,
+    &quot;node.js.detected.package.eslint&quot;: &quot;true&quot;,
+    &quot;node.js.detected.package.tslint&quot;: &quot;true&quot;,
+    &quot;node.js.selected.package.eslint&quot;: &quot;(autodetect)&quot;,
+    &quot;node.js.selected.package.tslint&quot;: &quot;(autodetect)&quot;,
+    &quot;nodejs_package_manager_path&quot;: &quot;npm&quot;,
+    &quot;vue.rearranger.settings.migration&quot;: &quot;true&quot;,
+    &quot;附加到 Unity 编辑器.附加到 Unity 编辑器.executor&quot;: &quot;Debug&quot;
   }
-}]]></component>
+}</component>
   <component name="RunManager" selected="附加到 Unity 编辑器.附加到 Unity 编辑器">
     <configuration name="启动 Unity" type="RunUnityExe" factoryName="Unity Executable">
       <option name="EXE_PATH" value="E:\ruanJian\2022.3.0f1c1\Editor\Unity.exe" />
@@ -229,6 +79,7 @@
       <option name="ENV_FILE_PATHS" value="" />
       <option name="REDIRECT_INPUT_PATH" value="" />
       <option name="PTY_MODE" value="Auto" />
+      <option name="MIXED_MODE_DEBUG" value="0" />
       <method v="2" />
     </configuration>
     <configuration name="单元测试(批处理模式)" type="RunUnityExe" factoryName="Unity Executable">
@@ -240,6 +91,7 @@
       <option name="ENV_FILE_PATHS" value="" />
       <option name="REDIRECT_INPUT_PATH" value="" />
       <option name="PTY_MODE" value="Auto" />
+      <option name="MIXED_MODE_DEBUG" value="0" />
       <method v="2" />
     </configuration>
     <configuration name="附加到 Unity 编辑器" type="UNITY_DEBUG_RUN_CONFIGURATION" factoryName="Unity Debug" show_console_on_std_err="false" show_console_on_std_out="false" port="50000" address="localhost">
@@ -270,6 +122,9 @@
       <option name="useMixedMode" value="false" />
       <method v="2" />
     </configuration>
+    <configuration name="附加到设备" type="UnityDevicePlayer" factoryName="UnityAttachToDevicePlayer">
+      <method v="2" />
+    </configuration>
   </component>
   <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="应用程序级" UseSingleDictionary="true" transferred="true" />
   <component name="TaskManager">
@@ -292,7 +147,9 @@
       <workItem from="1753119608154" duration="1684000" />
       <workItem from="1753281958378" duration="573000" />
       <workItem from="1754922524276" duration="3830000" />
-      <workItem from="1755011343842" duration="7838000" />
+      <workItem from="1755011343842" duration="8144000" />
+      <workItem from="1755094549834" duration="10346000" />
+      <workItem from="1756009434435" duration="786000" />
     </task>
     <servers />
   </component>
@@ -403,6 +260,58 @@
           </properties>
           <option name="timeStamp" value="90" />
         </line-breakpoint>
+        <line-breakpoint enabled="true" type="DotNet Breakpoints">
+          <url>file://$PROJECT_DIR$/Assets/Game/HotUpdate/Views/FieldGuide/SuitShowView.cs</url>
+          <line>20</line>
+          <properties documentPath="D:\gfgProject\gfg_dev\0A-GFGClient\5client_webgl\Client\GameClient\Assets\Game\HotUpdate\Views\FieldGuide\SuitShowView.cs" containingFunctionPresentation="方法 'Dispose'">
+            <startOffsets>
+              <option value="462" />
+            </startOffsets>
+            <endOffsets>
+              <option value="488" />
+            </endOffsets>
+          </properties>
+          <option name="timeStamp" value="97" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="DotNet Breakpoints">
+          <url>file://$PROJECT_DIR$/Assets/Game/HotUpdate/Views/FieldGuide/SuitShowView.cs</url>
+          <line>139</line>
+          <properties documentPath="D:\gfgProject\gfg_dev\0A-GFGClient\5client_webgl\Client\GameClient\Assets\Game\HotUpdate\Views\FieldGuide\SuitShowView.cs" containingFunctionPresentation="lambda 表达式内 方法 'UpdateSuitView'">
+            <startOffsets>
+              <option value="4070" />
+            </startOffsets>
+            <endOffsets>
+              <option value="4112" />
+            </endOffsets>
+          </properties>
+          <option name="timeStamp" value="134" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="DotNet Breakpoints">
+          <url>file://$PROJECT_DIR$/Assets/Game/HotUpdate/Views/DressUp/DressUpView.cs</url>
+          <line>198</line>
+          <properties documentPath="D:\gfgProject\gfg_dev\0A-GFGClient\5client_webgl\Client\GameClient\Assets\Game\HotUpdate\Views\DressUp\DressUpView.cs" containingFunctionPresentation="局部函数 'SetupAfterInstantiate'">
+            <startOffsets>
+              <option value="7938" />
+            </startOffsets>
+            <endOffsets>
+              <option value="8065" />
+            </endOffsets>
+          </properties>
+          <option name="timeStamp" value="135" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="DotNet Breakpoints">
+          <url>file://$PROJECT_DIR$/Assets/Game/HotUpdate/DressUp/DressUpObj.cs</url>
+          <line>301</line>
+          <properties documentPath="D:\gfgProject\gfg_dev\0A-GFGClient\5client_webgl\Client\GameClient\Assets\Game\HotUpdate\DressUp\DressUpObj.cs" containingFunctionPresentation="方法 'PutOnSuitCfg'">
+            <startOffsets>
+              <option value="8807" />
+            </startOffsets>
+            <endOffsets>
+              <option value="8868" />
+            </endOffsets>
+          </properties>
+          <option name="timeStamp" value="138" />
+        </line-breakpoint>
         <breakpoint enabled="true" type="DotNet_Exception_Breakpoints">
           <properties exception="System.OperationCanceledException" breakIfHandledByOtherCode="false" displayValue="System.OperationCanceledException" />
           <option name="timeStamp" value="48" />

+ 15 - 0
GameClient/Assets/Game/HotUpdate/Assets/PrefabManager.cs

@@ -172,6 +172,21 @@ namespace GFGGame
                 }
             };
         }
+        
+        public GameObject InstantiateSync(string resPath)
+        {
+            AssetOperationHandle handle = YooAssets.LoadAssetSync<GameObject>(resPath);
+            GameObject gameObject = handle.InstantiateSync();
+            if(gameObject != null)
+            {
+                AssetReleaserHelper.AddReleaserToInstantiateObj(gameObject, resPath, handle);
+            }
+            else
+            {
+                handle.Release();
+            }
+            return gameObject;
+        }
 
         public void Restore(GameObject gameObject)
         {

+ 9 - 2
GameClient/Assets/Game/HotUpdate/Data/DailyTaskDataManager.cs

@@ -1,5 +1,6 @@
 using System.Collections.Generic;
 using System.Linq;
+using cfg.GfgCfg;
 using ET;
 
 namespace GFGGame
@@ -62,8 +63,14 @@ namespace GFGGame
             {
                 if (t.Value == ConstBonusStatus.CAN_GET)
                 {
-                    var cfg = CommonDataManager.Tables.TblTaskActiveRewardCfg.DataList.Where(a => a.FuncType == t.Key)
-                        .ToList()[0];
+                    var cfgs = CommonDataManager.Tables.TblTaskActiveRewardCfg.DataList.Where(a => a.FuncType == t.Key)
+                        .ToList();
+                    if (cfgs.Count == 0)
+                    {
+                        continue;
+                    }
+
+                    TaskActiveRewardCfg cfg = cfgs[0];
                     if (cfg == null) continue;
                     if (taskFuncType != 0 && cfg.FuncType != taskFuncType) continue;
                     return true;

+ 112 - 51
GameClient/Assets/Game/HotUpdate/DressUp/DressUpObj.cs

@@ -19,45 +19,43 @@ namespace GFGGame
     //用于换装对象的数据存储和方法封装
     public class DressUpObj
     {
+        public event Action OnSuitPutOnComplete;
+
+        // 内部状态控制
+        private bool _isPuttingOnSuit = false;
+        private int _activeLayerOperationCount = 0;
+        private int _completedLayerOperationCount = 0;
+
+        public void SetOnSuitPutOnCompleteCallback(Action callback)
+        {
+            _activeLayerOperationCount = 0;
+            _completedLayerOperationCount = 0;
+            OnSuitPutOnComplete += callback;
+        }
 
         public int bgId
         {
-            get
-            {
-                return _dressUpData.bgId;
-            }
+            get { return _dressUpData.bgId; }
         }
 
         public int suitId
         {
-            get
-            {
-                return _dressUpData.suitId;
-            }
+            get { return _dressUpData.suitId; }
         }
 
         public int actionId
         {
-            get
-            {
-                return _dressUpData.actionId;
-            }
+            get { return _dressUpData.actionId; }
         }
 
         public bool IsAction
         {
-            get
-            {
-                return _dressUpData.actionId > 0;
-            }
+            get { return _dressUpData.actionId > 0; }
         }
 
         public List<int> itemList
         {
-            get
-            {
-                return _dressUpData.itemList.ToList();
-            }
+            get { return _dressUpData.itemList.ToList(); }
         }
 
         private Action onUpdateAction;
@@ -71,12 +69,14 @@ namespace GFGGame
         /// <param name="roleObj"></param>
         /// <param name="showBg"></param>
         /// <param name="resetData">是否重置装备数据</param>
-        public void setSceneObj(GameObject sceneObj, bool needSetMask = false, bool showSceneType = true, GameObject roleObj = null, bool showBg = true, Action onUpdateAction  = null)
+        public void setSceneObj(GameObject sceneObj, bool needSetMask = false, bool showSceneType = true,
+            GameObject roleObj = null, bool showBg = true, Action onUpdateAction = null)
         {
             if (_sceneObj != null && _sceneObj != sceneObj)
             {
                 PrefabManager.Instance.Restore(_sceneObj);
             }
+
             _sceneObj = sceneObj;
             _needSetMask = needSetMask;
             _showSceneType = showSceneType;
@@ -93,6 +93,7 @@ namespace GFGGame
                 TakeOffAll(false);
                 PutOnDressUpData(tempData);
             }
+
             Timers.inst.AddUpdate(OnUpdate);
         }
 
@@ -110,6 +111,7 @@ namespace GFGGame
             {
                 t.Release();
             }
+
             onUpdateAction = null;
         }
 
@@ -132,8 +134,10 @@ namespace GFGGame
                 int _subType = ItemUtilCS.GetItemSubType(_dressUpData.itemList[i]);
                 if (subType == _subType) return true;
             }
+
             return false;
         }
+
         /// <summary>
         /// 仅判断换装部件是否已穿着
         /// </summary>
@@ -145,6 +149,7 @@ namespace GFGGame
             {
                 return true;
             }
+
             return _dressUpData.itemList.Contains(itemId);
         }
 
@@ -160,6 +165,7 @@ namespace GFGGame
             {
                 return false;
             }
+
             List<int> items = suitCfg.Parts;
             foreach (int itemId in items)
             {
@@ -170,12 +176,14 @@ namespace GFGGame
                         continue;
                     }
                 }
+
                 bool isOn = CheckDressUpItemIsOn(itemId);
                 if (!isOn)
                 {
                     return false;
                 }
             }
+
             return true;
         }
 
@@ -188,8 +196,10 @@ namespace GFGGame
                 {
                     return;
                 }
+
                 _dressUpData.bgId = itemId;
-                List<DressUpLayerOperation> handlers = DressUpUtil.AddItemAsync(_dressUpData.bgId, _sceneObj, _needSetMask, true, _roleObj);
+                List<DressUpLayerOperation> handlers =
+                    DressUpUtil.AddItemAsync(_dressUpData.bgId, _sceneObj, _needSetMask, true, _roleObj);
                 TryAddHandlers(handlers);
             }
             else
@@ -202,6 +212,7 @@ namespace GFGGame
                         {
                             TryCancelActionWhenPutOn(itemId);
                         }
+
                         CheckRemoveSameType(subType);
                         Add(itemId);
                     }
@@ -213,6 +224,7 @@ namespace GFGGame
                         Remove(itemId);
                     }
                 }
+
                 if (checkDefault)
                 {
                     checkDefaultItem();
@@ -223,16 +235,18 @@ namespace GFGGame
         //脱掉所有换装,换成默认装(不处理背景)
         public void TakeOffAll(bool checkDefault = true)
         {
-            if(_sceneObj == null)
+            if (_sceneObj == null)
             {
                 return;
             }
+
             _dressUpData.suitId = 0;
             _dressUpData.actionId = 0;
             foreach (int itemID in itemList)
             {
                 AddOrRemove(itemID, false, DressUpOption.Remove);
             }
+
             if (checkDefault)
             {
                 checkDefaultItem();
@@ -266,20 +280,25 @@ namespace GFGGame
         /// <param name="excludeType">排除类型列表</param>
         /// <param name="showOptional">是否显示可选部件</param>
         /// <param name="CheckOwn">是否只显示主角拥有的部件</param>
-        public void PutOnSuitCfg(int suitId, bool tryShowAction, int[] excludeType = null, bool showOptional = true, bool CheckOwn = true,bool isDress = false)
+        public void PutOnSuitCfg(int suitId, bool tryShowAction, int[] excludeType = null, bool showOptional = true,
+            bool CheckOwn = true, bool isDress = false)
         {
+            _isPuttingOnSuit = true;
+
             SuitCfg suitCfg = CommonDataManager.Tables.TblSuitCfg.GetOrDefault(suitId);
-            if(suitCfg == null)
+            if (suitCfg == null)
             {
                 return;
             }
+
             bool oldIsAction = IsAction;
             _dressUpData.suitId = suitId;
             bool hasSuitActionRes = DressUpMenuSuitDataManager.CheckSuitHasActionRes(_dressUpData.suitId);
             _dressUpData.actionId = (hasSuitActionRes && tryShowAction) ? suitId : 0;
-            
+
             //找到要穿的散件
-            List<int> targetItemList = DressUpUtil.GetSuitItems(suitId, IsAction, excludeType, showOptional, CheckOwn, isDress);
+            List<int> targetItemList =
+                DressUpUtil.GetSuitItems(suitId, IsAction, excludeType, showOptional, CheckOwn, isDress);
             CompareAndAddItemList(oldIsAction, IsAction, targetItemList);
             checkDefaultItem();
         }
@@ -295,6 +314,7 @@ namespace GFGGame
             {
                 return;
             }
+
             var tempActionId = _dressUpData.actionId;
             _dressUpData.actionId = 0;
             //更新非场景类型部件形态
@@ -311,6 +331,7 @@ namespace GFGGame
                     }
                 }
             }
+
             if (changeToStand)
             {
                 SuitCfg suitCfg = CommonDataManager.Tables.TblSuitCfg.GetOrDefault(tempActionId);
@@ -319,13 +340,14 @@ namespace GFGGame
                 {
                     items.AddRange(suitCfg.PartsOptional);
                 }
+
                 foreach (int itemId in items)
                 {
                     if (DressUpMenuItemDataManager.CheckHasItem(itemId))
                     {
                         bool notInAction = SuitCfgArray.Instance.CheckItemNotInAction(itemId);
                         if (!notInAction)
-{
+                        {
                             int subType = ItemDataManager.GetItemSubType(itemId);
                             if (excludeType == null || Array.IndexOf(excludeType, subType) < 0)
                             {
@@ -335,6 +357,7 @@ namespace GFGGame
                     }
                 }
             }
+
             checkDefaultItem();
         }
 
@@ -345,7 +368,7 @@ namespace GFGGame
             _dressUpData.suitId = targetDressUpData.suitId;
             _dressUpData.actionId = targetDressUpData.actionId;
             var targetItemList = new List<int>();
-            foreach(var itemId in targetDressUpData.itemList)
+            foreach (var itemId in targetDressUpData.itemList)
             {
                 int subType = ItemUtilCS.GetItemSubType(itemId);
                 if (excludeType == null || Array.IndexOf(excludeType, subType) < 0)
@@ -354,23 +377,25 @@ namespace GFGGame
                 }
             }
 
-            if (targetDressUpData.bgId > 0 && (excludeType == null || Array.IndexOf(excludeType, ConstDressUpItemType.BEI_JING) < 0))
+            if (targetDressUpData.bgId > 0 &&
+                (excludeType == null || Array.IndexOf(excludeType, ConstDressUpItemType.BEI_JING) < 0))
             {
                 targetItemList.Add(targetDressUpData.bgId);
             }
 
             CompareAndAddItemList(oldIsAction, IsAction, targetItemList);
             checkDefaultItem();
-
         }
 
         //穿戴默认换装数据
         public void PutOnDefaultDressUpData(bool bgType = false)
         {
             var dressUpData = DressUpData.CreateDefault();
-            if (bgType) {
+            if (bgType)
+            {
                 dressUpData.bgId = 180002;
             }
+
             PutOnDressUpData(dressUpData);
         }
 
@@ -385,13 +410,16 @@ namespace GFGGame
         }
 
         #region private
+
         private GameObject _sceneObj;
         private GameObject _roleObj;
         private bool _needSetMask;
         private bool _showSceneType = true;
         private bool _showBg = true;
         private DressUpData _dressUpData = new DressUpData();
+
         private List<DressUpOperationBase> handlers = new List<DressUpOperationBase>();
+
         //穿上一个动作
         private void PutOnAction(int actionId)
         {
@@ -421,6 +449,7 @@ namespace GFGGame
             {
                 CancelAction(true);
             }
+
             checkDefaultItem();
         }
 
@@ -429,7 +458,8 @@ namespace GFGGame
         {
             if (_dressUpData.actionId > 0)
             {
-                bool replaceableByAction = SuitCfgArray.Instance.CheckItemReaplaceableOnAction(itemId, _dressUpData.actionId);
+                bool replaceableByAction =
+                    SuitCfgArray.Instance.CheckItemReaplaceableOnAction(itemId, _dressUpData.actionId);
                 if (!replaceableByAction)
                 {
                     CancelAction();
@@ -447,6 +477,7 @@ namespace GFGGame
                     return;
                 }
             }
+
             if (!_dressUpData.itemList.Contains(itemId))
             {
                 _dressUpData.itemList.Add(itemId);
@@ -480,6 +511,7 @@ namespace GFGGame
             {
                 return;
             }
+
             if (_dressUpData.itemList.Contains(itemId))
             {
                 _dressUpData.itemList.Remove(itemId);
@@ -507,23 +539,24 @@ namespace GFGGame
             int count = 0;
             int firstTeshuId = 0;
             int maxNum = 1;
-            if(itemTypeCfg != null && itemTypeCfg.MaxNum > 0)
+            if (itemTypeCfg != null && itemTypeCfg.MaxNum > 0)
             {
                 maxNum = itemTypeCfg.MaxNum;
             }
-            else if(subType > ConstDressUpItemType.TE_SHU)
+            else if (subType > ConstDressUpItemType.TE_SHU)
             {
                 maxNum = 3;
             }
+
             for (int i = 0; i < _dressUpData.itemList.Count; i++)
             {
                 int itemID = (int)_dressUpData.itemList[i];
                 int itemSubType = ItemUtilCS.GetItemSubType(itemID);
-                
+
                 bool isSameType = false;
-                if(itemTypeCfg != null && itemTypeCfg.MaxNum > 0)
+                if (itemTypeCfg != null && itemTypeCfg.MaxNum > 0)
                 {
-                    if(itemSubType == subType)
+                    if (itemSubType == subType)
                     {
                         isSameType = true;
                     }
@@ -533,23 +566,31 @@ namespace GFGGame
                     isSameType = true;
                 }
                 else if (itemSubType == subType
-                    || (subType == ConstDressUpItemType.LIAN_YI_QUN && (itemSubType == ConstDressUpItemType.SHANG_YI || itemSubType == ConstDressUpItemType.XIA_ZHUANG || itemSubType == ConstDressUpItemType.NEI_DA))
-                    || (subType == ConstDressUpItemType.SHANG_YI && itemSubType == ConstDressUpItemType.LIAN_YI_QUN)
-                    || (subType == ConstDressUpItemType.XIA_ZHUANG && itemSubType == ConstDressUpItemType.LIAN_YI_QUN)
-                    || (subType == ConstDressUpItemType.NEI_DA && itemSubType == ConstDressUpItemType.LIAN_YI_QUN))
+                         || (subType == ConstDressUpItemType.LIAN_YI_QUN &&
+                             (itemSubType == ConstDressUpItemType.SHANG_YI ||
+                              itemSubType == ConstDressUpItemType.XIA_ZHUANG ||
+                              itemSubType == ConstDressUpItemType.NEI_DA))
+                         || (subType == ConstDressUpItemType.SHANG_YI &&
+                             itemSubType == ConstDressUpItemType.LIAN_YI_QUN)
+                         || (subType == ConstDressUpItemType.XIA_ZHUANG &&
+                             itemSubType == ConstDressUpItemType.LIAN_YI_QUN)
+                         || (subType == ConstDressUpItemType.NEI_DA && itemSubType == ConstDressUpItemType.LIAN_YI_QUN))
                 {
                     Remove(itemID);
                     i--;
                 }
+
                 if (isSameType)
                 {
                     if (count == 0)
                     {
                         firstTeshuId = itemID;
                     }
+
                     count++;
                 }
             }
+
             if (count >= maxNum)
             {
                 //超出允许的件数会顶掉第一件
@@ -579,6 +620,7 @@ namespace GFGGame
                     }
                 }
             }
+
             foreach (int itemID in targetItemList)
             {
                 AddOrRemove(itemID, false, DressUpOption.Add);
@@ -598,6 +640,7 @@ namespace GFGGame
                     suitIdList.Add(itemSuitId);
                 }
             }
+
             foreach (var itemSuitId in suitIdList)
             {
                 if (CheckSuitIsOn(itemSuitId))
@@ -606,6 +649,7 @@ namespace GFGGame
                     break;
                 }
             }
+
             _dressUpData.suitId = suitId;
             return _dressUpData.suitId;
         }
@@ -667,10 +711,12 @@ namespace GFGGame
                     hasXiaZhuangDefault = true;
                 }
             }
+
             if (!hasFaXing)
             {
                 Add(ConstItemID.DEFULT_FA_XING);
             }
+
             if (!IsAction)
             {
                 if (itemIdLianYiQun <= 0)
@@ -692,9 +738,9 @@ namespace GFGGame
                     //        Add(ConstItemID.DEFULT_NEI_DA);
                     //    }
                     //}
-
                 }
             }
+
             CheckCurDressIsSuit();
             var handler = DressUpUtil.UpdateHeadAsync(!hasZhuangRong, _sceneObj, _needSetMask, _roleObj);
             TryAddHandler(handler);
@@ -711,6 +757,7 @@ namespace GFGGame
                 var hasAniRes = ResPathUtil.CheckDressUpAnimationResExist(suitCfg.AniRes);
                 actionRes = hasAniRes ? suitCfg.AniRes : null;
             }
+
             var handler = DressUpUtil.UpdateBodyAsync(actionRes, _sceneObj, _needSetMask, _roleObj, itemIdLianYiQun);
             TryAddHandler(handler);
         }
@@ -718,45 +765,57 @@ namespace GFGGame
         //遍历各部件操作器,检查状态并统一处理
         private void OnUpdate(object param = null)
         {
-            if(_sceneObj == null)
+            if (_sceneObj == null)
             {
                 ClearView();
                 return;
             }
-            if(handlers != null && handlers.Count > 0)
+
+            if (handlers != null && handlers.Count > 0)
             {
                 bool draw = true;
-                foreach(var handler in handlers)
+                foreach (var handler in handlers)
                 {
-                    if(!handler.IsDone)
+                    if (!handler.IsDone)
                     {
                         draw = false;
                     }
                 }
-                if(draw)
+
+                if (draw)
                 {
-                    var t = handlers.ToArray(); 
+                    var t = handlers.ToArray();
                     handlers.Clear();
                     foreach (var handler in t)
                     {
-                        if(handler.Status == YooAsset.EOperationStatus.Succeed)
+                        if (handler.Status == YooAsset.EOperationStatus.Succeed)
                         {
                             handler.UpdateView();
+                            _completedLayerOperationCount++;
                         }
+
                         handler.Release();
                     }
+
                     onUpdateAction?.Invoke();
                     //LogUtil.LogEditor($"draw    {TimeHelper.ClientNow()}");
                 }
             }
+
+            if (_isPuttingOnSuit && _activeLayerOperationCount > 0 && _completedLayerOperationCount >= _activeLayerOperationCount)
+            {
+                _isPuttingOnSuit = false;
+                OnSuitPutOnComplete?.Invoke();
+            }
         }
 
         private void TryAddHandlers(List<DressUpLayerOperation> t)
         {
             if (t != null)
             {
-                foreach(var h in t)
+                foreach (var h in t)
                 {
+                    _activeLayerOperationCount++;
                     TryAddHandler(h);
                 }
                 //this.handlers.AddRange(t);
@@ -778,9 +837,11 @@ namespace GFGGame
                         handlers.RemoveAt(i);
                     }
                 }
+
                 this.handlers.Add(t);
             }
         }
+
         #endregion
     }
 }

+ 16 - 0
GameClient/Assets/Game/HotUpdate/DressUp/DressUpObjUI.cs

@@ -60,6 +60,22 @@ namespace GFGGame
                     }
                 });
         }
+        
+                /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="scale"></param>
+        /// <param name="needSetMask">如果UI界面的组件有遮罩,那么这里也需要设置为true才能生效</param>
+        /// <param name="showSceneType">是否显示场景道具类型</param>
+        /// <param name="roleObj"></param>
+        /// <param name="showBg">是否显示背景</param>
+        public void ResetSceneObj(int scale = 100, bool needSetMask = false, bool showSceneType = true, GameObject roleObj = null, bool showBg = true)
+        {
+            //这里每次都要实例化新的,复用会有bug
+            sceneObject = PrefabManager.Instance.InstantiateSync(ResPathUtil.GetPrefabPath(this.prefabName));
+            sceneObject.transform.localScale = new Vector3(scale, scale, scale);
+            dressUpObj.setSceneObj(sceneObject, needSetMask, showSceneType, roleObj, showBg, OnShow);
+        }
 
         public void UpdateWrapper(GGraph holder)
         {

+ 21 - 0
GameClient/Assets/Game/HotUpdate/DressUp/DressUpUtil.cs

@@ -737,5 +737,26 @@ namespace GFGGame
 
             return targetItemList;
         }
+        
+        public static void LoadSpritePos(string resPath, out float tx, out float ty)
+        {
+            int index = resPath.LastIndexOf('.');
+            resPath = resPath.Substring(0, index) + ".bytes";
+            if (YooAssets.CheckResExist(resPath))
+            {
+                var handle = YooAssets.LoadAssetSync<TextAsset>(resPath);
+                TextAsset asset = handle.AssetObject as TextAsset;
+                var st = new MemoryStream(asset.bytes);
+                var br = new BinaryReader(st);
+                tx = br.ReadInt32() / 100f;
+                ty = -br.ReadInt32() / 100f;
+                handle.Release();
+            }
+            else
+            {
+                tx = 0;
+                ty = 0;
+            }
+        }
     }
 }

+ 61 - 0
GameClient/Assets/Game/HotUpdate/DressUp/SceneController.cs

@@ -230,6 +230,24 @@ namespace GFGGame
             }
         }
 
+        public static void UpdateDialogAnim(string value, ref GameObject animObj)
+        {
+            if (value == "0")
+            {
+                if (animObj != null)
+                {
+                    PrefabManager.Instance.Restore(animObj);
+                    animObj = null;
+                }
+            }
+            else
+            {
+                string res = value.Split('/')[1];
+                animObj = PrefabManager.Instance.InstantiateSync(ResPathUtil.GetStoryDialogCGPath(value, res));
+                //StoryDialogDataManager.Instance.dialogShowDelay = 0.4f;
+            }
+        }
+
         // 更新人物表情 - 异步版本
         public static void UpdateEmojiAni(string value, GameObject animObj)
         {
@@ -274,6 +292,29 @@ namespace GFGGame
             }
         }
 
+        public static void UpdateEmojiAni(string value, ref GameObject animObj)
+        {
+            if (value == "0")
+            {
+                if (animObj != null)
+                {
+                    PrefabManager.Instance.Restore(animObj);
+                    animObj = null;
+                }
+            }
+            else
+            {
+                PrefabManager.Instance.Restore(animObj);
+                animObj = null;
+                value = string.Format("DressUp/{0}", value);
+                string res = value.Split('/')[1];
+                animObj = PrefabManager.Instance.InstantiateSync(ResPathUtil.GetStoryDialogCGPath(value, res));
+                animObj.transform.position = new Vector3(0, -9, 0);
+                animObj.transform.localScale = new Vector3(2.5f, 2.5f, 2.5f);
+                //StoryDialogDataManager.Instance.dialogShowDelay = 0.4f;
+            }
+        }
+
 
         public static void ControlBgVisible(GameObject sceneObj, bool isShow)
         {
@@ -297,5 +338,25 @@ namespace GFGGame
             var resPath = ResPathUtil.GetNpcPicFPath(value);
             SpriteHelper.AddSpriteTo(spr, resPath);
         }
+        
+        public static void InitPicFace(string faceValue, GameObject sceneObj)
+        {
+
+            Transform face = sceneObj.transform.Find("Pic/Face");
+            SpriteRenderer sprFace = face.GetComponent<SpriteRenderer>();
+
+            if (faceValue == "0")
+            {
+                SpriteHelper.RemoveSpriteFrom(sprFace);
+            }
+            else
+            {
+                var resPath = ResPathUtil.GetNpcPicFacePath(faceValue);
+                float tx, ty;
+                DressUpUtil.LoadSpritePos(resPath, out tx, out ty);
+                face.localPosition = new Vector3(tx, ty, face.localPosition.z);
+                SpriteHelper.AddSpriteTo(sprFace, resPath);
+            }
+        }
     }
 }

+ 5 - 0
GameClient/Assets/Game/HotUpdate/ServerProxy/TimeTracingSProxy.cs

@@ -17,6 +17,11 @@ namespace GFGGame
                 new C2M_GetCompositeLevelMaxScoreInfos { ChapterId = chapID });
             if (!(response is { Error: ErrorCode.ERR_Success })) return false;
             ActivityFightCfg chapterCfg = CommonDataManager.Tables.TblActivityFightCfg.GetOrDefault(chapID);
+            if (chapterCfg == null)
+            {
+                Log.Error($"chapterCfg is null. chapID:{chapID}");
+                return false;
+            }
 
             var list = CommonDataManager.Tables.TblStoryLevelCfg.DataList.Where(a =>
                 a.Type == chapterCfg.Type && a.SubType == chapterCfg.SubType && a.ChapterId == chapterCfg.Id).ToList();

+ 2 - 1
GameClient/Assets/Game/HotUpdate/Views/CommonGame/SuitItemView.cs

@@ -66,7 +66,8 @@ namespace GFGGame
             count = count - countSuitId;
             if (suitID > 0)
             {
-                SuitCfg suitCfg = CommonDataManager.Tables.TblSuitCfg.GetOrDefault(suitID);
+                SuitCfg suitCfg =  CommonDataManager.Tables.TblSuitCfg.GetOrDefault(suitID);
+               
                 _ui.m_txtName.text = "套装·" + suitCfg.Name;
                 _ui.m_icon.url = ResPathUtil.GetFieldGuideIconPath(suitCfg.Res);
             }

+ 9 - 2
GameClient/Assets/Game/HotUpdate/Views/FieldGuide/SuitShowView.cs

@@ -135,6 +135,12 @@ namespace GFGGame
             {
                 if (sceneObj != null)
                 {
+                    _dressUpObjUI.dressUpObj.SetOnSuitPutOnCompleteCallback(() =>
+                    {
+                        _dressUpObjUI.UpdateWrapper(_ui.m_holder);
+                        UpdateSuitBoxStatus();
+                    });
+                    
                     // 场景对象加载完成后穿上套装
                     _dressUpObjUI.dressUpObj.PutOnSuitCfg(
                         _suitId,
@@ -143,8 +149,9 @@ namespace GFGGame
                         true,
                         false
                     );
-                    _dressUpObjUI.UpdateWrapper(_ui.m_holder);
-                    UpdateSuitBoxStatus();
+                    // _dressUpObjUI.UpdateWrapper(_ui.m_holder);
+                    // UpdateSuitBoxStatus();
+                    
                 }
                 else
                 {

+ 19 - 0
GameClient/Assets/ResIn/LoginRes/LoginSkin1/SceneLogin.prefab

@@ -27,6 +27,7 @@ Transform:
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 8934048990737965464}
   m_RootOrder: 0
@@ -42,6 +43,7 @@ SpriteRenderer:
   m_CastShadows: 0
   m_ReceiveShadows: 0
   m_DynamicOccludee: 1
+  m_StaticShadowCaster: 0
   m_MotionVectors: 1
   m_LightProbeUsage: 1
   m_ReflectionProbeUsage: 1
@@ -109,6 +111,7 @@ Transform:
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: -2, y: -3.55, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 8934048990737965464}
   m_RootOrder: 2
@@ -124,6 +127,7 @@ SpriteRenderer:
   m_CastShadows: 0
   m_ReceiveShadows: 0
   m_DynamicOccludee: 1
+  m_StaticShadowCaster: 0
   m_MotionVectors: 1
   m_LightProbeUsage: 1
   m_ReflectionProbeUsage: 1
@@ -191,6 +195,7 @@ Transform:
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0.28, y: 6, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 8934048990737965464}
   m_RootOrder: 4
@@ -206,6 +211,7 @@ SpriteRenderer:
   m_CastShadows: 0
   m_ReceiveShadows: 0
   m_DynamicOccludee: 1
+  m_StaticShadowCaster: 0
   m_MotionVectors: 1
   m_LightProbeUsage: 1
   m_ReflectionProbeUsage: 1
@@ -272,6 +278,7 @@ Transform:
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
   m_Children:
   - {fileID: 2432797848204161373}
   - {fileID: 1341258756508341726}
@@ -287,6 +294,7 @@ PrefabInstance:
   m_ObjectHideFlags: 0
   serializedVersion: 2
   m_Modification:
+    serializedVersion: 3
     m_TransformParent: {fileID: 8934048990737965464}
     m_Modifications:
     - target: {fileID: 6249649220842853012, guid: 95b69f218b4431c4ea695b000f6f30b7, type: 3}
@@ -342,6 +350,9 @@ PrefabInstance:
       value: 1
       objectReference: {fileID: 0}
     m_RemovedComponents: []
+    m_RemovedGameObjects: []
+    m_AddedGameObjects: []
+    m_AddedComponents: []
   m_SourcePrefab: {fileID: 100100000, guid: 95b69f218b4431c4ea695b000f6f30b7, type: 3}
 --- !u!4 &6606380069289106142 stripped
 Transform:
@@ -353,6 +364,7 @@ PrefabInstance:
   m_ObjectHideFlags: 0
   serializedVersion: 2
   m_Modification:
+    serializedVersion: 3
     m_TransformParent: {fileID: 8934048990737965464}
     m_Modifications:
     - target: {fileID: 2456310965833216931, guid: 8302f5499c1018e4daafb9d19e680e92, type: 3}
@@ -408,6 +420,9 @@ PrefabInstance:
       value: 0
       objectReference: {fileID: 0}
     m_RemovedComponents: []
+    m_RemovedGameObjects: []
+    m_AddedGameObjects: []
+    m_AddedComponents: []
   m_SourcePrefab: {fileID: 100100000, guid: 8302f5499c1018e4daafb9d19e680e92, type: 3}
 --- !u!4 &1341258756508341726 stripped
 Transform:
@@ -419,6 +434,7 @@ PrefabInstance:
   m_ObjectHideFlags: 0
   serializedVersion: 2
   m_Modification:
+    serializedVersion: 3
     m_TransformParent: {fileID: 8934048990737965464}
     m_Modifications:
     - target: {fileID: 8605298645749227662, guid: 8c54818580e6de44cbe90f73003c8b25, type: 3}
@@ -482,6 +498,9 @@ PrefabInstance:
       value: 13.35
       objectReference: {fileID: 0}
     m_RemovedComponents: []
+    m_RemovedGameObjects: []
+    m_AddedGameObjects: []
+    m_AddedComponents: []
   m_SourcePrefab: {fileID: 100100000, guid: 8c54818580e6de44cbe90f73003c8b25, type: 3}
 --- !u!4 &3768987550495608174 stripped
 Transform:

+ 20 - 20
GameClient/Assets/YooAsset/Runtime/YooAssetsExtension.cs

@@ -170,27 +170,27 @@ namespace YooAsset
         // 	return _defaultPackage.LoadAssetSync(assetInfo);
         // }
 
-        // /// <summary>
-        // /// 同步加载资源对象
-        // /// </summary>
-        // /// <typeparam name="TObject">资源类型</typeparam>
-        // /// <param name="location">资源的定位地址</param>
-        // public static AssetOperationHandle LoadAssetSync<TObject>(string location) where TObject : UnityEngine.Object
-        // {
-        // 	DebugCheckDefaultPackageValid();
-        // 	return _defaultPackage.LoadAssetSync<TObject>(location);
-        // }
+        /// <summary>
+        /// 同步加载资源对象
+        /// </summary>
+        /// <typeparam name="TObject">资源类型</typeparam>
+        /// <param name="location">资源的定位地址</param>
+        public static AssetOperationHandle LoadAssetSync<TObject>(string location) where TObject : UnityEngine.Object
+        {
+        	DebugCheckDefaultPackageValid();
+        	return _defaultPackage.LoadAssetSync<TObject>(location);
+        }
 
-        // /// <summary>
-        // /// 同步加载资源对象
-        // /// </summary>
-        // /// <param name="location">资源的定位地址</param>
-        // /// <param name="type">资源类型</param>
-        // public static AssetOperationHandle LoadAssetSync(string location, System.Type type)
-        // {
-        // 	DebugCheckDefaultPackageValid();
-        // 	return _defaultPackage.LoadAssetSync(location, type);
-        // }
+        /// <summary>
+        /// 同步加载资源对象
+        /// </summary>
+        /// <param name="location">资源的定位地址</param>
+        /// <param name="type">资源类型</param>
+        public static AssetOperationHandle LoadAssetSync(string location, System.Type type)
+        {
+        	DebugCheckDefaultPackageValid();
+        	return _defaultPackage.LoadAssetSync(location, type);
+        }
 
 
         /// <summary>

+ 101 - 151
GameClient/UserSettings/Layouts/default-2022.dwlt

@@ -14,13 +14,13 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   m_PixelRect:
     serializedVersion: 2
-    x: 490
-    y: 181
-    width: 1832
-    height: 1180
+    x: -18
+    y: 182
+    width: 2544
+    height: 1097
   m_ShowMode: 4
-  m_Title: Game
-  m_RootView: {fileID: 6}
+  m_Title: Console
+  m_RootView: {fileID: 5}
   m_MinSize: {x: 875, y: 300}
   m_MaxSize: {x: 10000, y: 10000}
   m_Maximized: 0
@@ -37,18 +37,18 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   m_Children:
-  - {fileID: 9}
+  - {fileID: 8}
   - {fileID: 3}
   m_Position:
     serializedVersion: 2
     x: 0
     y: 30
-    width: 1832
-    height: 1130
-  m_MinSize: {x: 300, y: 100}
-  m_MaxSize: {x: 24288, y: 16192}
+    width: 2544
+    height: 1047
+  m_MinSize: {x: 300, y: 50}
+  m_MaxSize: {x: 24288, y: 8096}
   vertical: 0
-  controlID: 105
+  controlID: 58
 --- !u!114 &3
 MonoBehaviour:
   m_ObjectHideFlags: 52
@@ -59,22 +59,24 @@ MonoBehaviour:
   m_Enabled: 1
   m_EditorHideFlags: 1
   m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0}
-  m_Name: 
+  m_Name: ConsoleWindow
   m_EditorClassIdentifier: 
   m_Children: []
   m_Position:
     serializedVersion: 2
-    x: 1477
+    x: 1179
     y: 0
-    width: 355
-    height: 1130
-  m_MinSize: {x: 276, y: 71}
-  m_MaxSize: {x: 4001, y: 4021}
-  m_ActualView: {fileID: 13}
+    width: 1365
+    height: 1047
+  m_MinSize: {x: 100, y: 100}
+  m_MaxSize: {x: 4000, y: 4000}
+  m_ActualView: {fileID: 15}
   m_Panes:
-  - {fileID: 13}
-  m_Selected: 0
-  m_LastSelected: 0
+  - {fileID: 11}
+  - {fileID: 15}
+  - {fileID: 10}
+  m_Selected: 1
+  m_LastSelected: 2
 --- !u!114 &4
 MonoBehaviour:
   m_ObjectHideFlags: 52
@@ -92,43 +94,16 @@ MonoBehaviour:
     serializedVersion: 2
     x: 0
     y: 0
-    width: 355
-    height: 618
+    width: 300
+    height: 1047
   m_MinSize: {x: 201, y: 221}
   m_MaxSize: {x: 4001, y: 4021}
-  m_ActualView: {fileID: 14}
+  m_ActualView: {fileID: 12}
   m_Panes:
-  - {fileID: 14}
+  - {fileID: 12}
   m_Selected: 0
   m_LastSelected: 0
 --- !u!114 &5
-MonoBehaviour:
-  m_ObjectHideFlags: 52
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 0}
-  m_Enabled: 1
-  m_EditorHideFlags: 1
-  m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0}
-  m_Name: ConsoleWindow
-  m_EditorClassIdentifier: 
-  m_Children: []
-  m_Position:
-    serializedVersion: 2
-    x: 0
-    y: 618
-    width: 1477
-    height: 512
-  m_MinSize: {x: 101, y: 121}
-  m_MaxSize: {x: 4001, y: 4021}
-  m_ActualView: {fileID: 17}
-  m_Panes:
-  - {fileID: 12}
-  - {fileID: 17}
-  m_Selected: 1
-  m_LastSelected: 0
---- !u!114 &6
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -141,22 +116,22 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   m_Children:
-  - {fileID: 7}
+  - {fileID: 6}
   - {fileID: 2}
-  - {fileID: 8}
+  - {fileID: 7}
   m_Position:
     serializedVersion: 2
     x: 0
     y: 0
-    width: 1832
-    height: 1180
+    width: 2544
+    height: 1097
   m_MinSize: {x: 875, y: 300}
   m_MaxSize: {x: 10000, y: 10000}
   m_UseTopView: 1
   m_TopViewHeight: 30
   m_UseBottomView: 1
   m_BottomViewHeight: 20
---- !u!114 &7
+--- !u!114 &6
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -173,12 +148,12 @@ MonoBehaviour:
     serializedVersion: 2
     x: 0
     y: 0
-    width: 1832
+    width: 2544
     height: 30
   m_MinSize: {x: 0, y: 0}
   m_MaxSize: {x: 0, y: 0}
   m_LastLoadedLayoutName: 
---- !u!114 &8
+--- !u!114 &7
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -194,37 +169,12 @@ MonoBehaviour:
   m_Position:
     serializedVersion: 2
     x: 0
-    y: 1160
-    width: 1832
+    y: 1077
+    width: 2544
     height: 20
   m_MinSize: {x: 0, y: 0}
   m_MaxSize: {x: 0, y: 0}
---- !u!114 &9
-MonoBehaviour:
-  m_ObjectHideFlags: 52
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 0}
-  m_Enabled: 1
-  m_EditorHideFlags: 1
-  m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0}
-  m_Name: 
-  m_EditorClassIdentifier: 
-  m_Children:
-  - {fileID: 10}
-  - {fileID: 5}
-  m_Position:
-    serializedVersion: 2
-    x: 0
-    y: 0
-    width: 1477
-    height: 1130
-  m_MinSize: {x: 200, y: 100}
-  m_MaxSize: {x: 16192, y: 16192}
-  vertical: 1
-  controlID: 37
---- !u!114 &10
+--- !u!114 &8
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -238,18 +188,18 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   m_Children:
   - {fileID: 4}
-  - {fileID: 11}
+  - {fileID: 9}
   m_Position:
     serializedVersion: 2
     x: 0
     y: 0
-    width: 1477
-    height: 618
+    width: 1179
+    height: 1047
   m_MinSize: {x: 200, y: 50}
   m_MaxSize: {x: 16192, y: 8096}
   vertical: 0
-  controlID: 38
---- !u!114 &11
+  controlID: 17
+--- !u!114 &9
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -264,19 +214,19 @@ MonoBehaviour:
   m_Children: []
   m_Position:
     serializedVersion: 2
-    x: 355
+    x: 300
     y: 0
-    width: 1122
-    height: 618
+    width: 879
+    height: 1047
   m_MinSize: {x: 202, y: 221}
   m_MaxSize: {x: 4002, y: 4021}
-  m_ActualView: {fileID: 16}
+  m_ActualView: {fileID: 14}
   m_Panes:
-  - {fileID: 15}
-  - {fileID: 16}
+  - {fileID: 13}
+  - {fileID: 14}
   m_Selected: 1
   m_LastSelected: 0
---- !u!114 &12
+--- !u!114 &10
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -296,10 +246,10 @@ MonoBehaviour:
     m_Tooltip: 
   m_Pos:
     serializedVersion: 2
-    x: 490
-    y: 901
-    width: 1476
-    height: 419
+    x: 1161
+    y: 212
+    width: 1364
+    height: 1026
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0
@@ -323,7 +273,7 @@ MonoBehaviour:
     m_SkipHidden: 0
     m_SearchArea: 1
     m_Folders:
-    - Assets/GFGAsset
+    - Assets/DOTween
     m_Globs: []
     m_OriginalText: 
     m_ImportLogFlags: 0
@@ -331,16 +281,16 @@ MonoBehaviour:
   m_ViewMode: 1
   m_StartGridSize: 16
   m_LastFolders:
-  - Assets/GFGAsset
+  - Assets/DOTween
   m_LastFoldersGridSize: 16
   m_LastProjectPath: D:\gfgProject\gfg_dev\0A-GFGClient\5client_webgl\Client\GameClient
   m_LockTracker:
     m_IsLocked: 0
   m_FolderTreeState:
     scrollPos: {x: 0, y: 0}
-    m_SelectedIDs: 9e9e0000
-    m_LastClickedID: 40606
-    m_ExpandedIDs: 00000000109e0000a89e000000ca9a3b
+    m_SelectedIDs: ac9e0000
+    m_LastClickedID: 40620
+    m_ExpandedIDs: 00000000289e000000ca9a3b
     m_RenameOverlay:
       m_UserAcceptedRename: 0
       m_Name: 
@@ -368,7 +318,7 @@ MonoBehaviour:
     scrollPos: {x: 0, y: 0}
     m_SelectedIDs: 
     m_LastClickedID: 0
-    m_ExpandedIDs: 00000000109e0000129e0000
+    m_ExpandedIDs: 00000000289e0000
     m_RenameOverlay:
       m_UserAcceptedRename: 0
       m_Name: 
@@ -395,7 +345,7 @@ MonoBehaviour:
   m_ListAreaState:
     m_SelectedInstanceIDs: 
     m_LastClickedInstanceID: 0
-    m_HadKeyboardFocusLastEvent: 1
+    m_HadKeyboardFocusLastEvent: 0
     m_ExpandedInstanceIDs: c6230000
     m_RenameOverlay:
       m_UserAcceptedRename: 0
@@ -412,7 +362,7 @@ MonoBehaviour:
       m_IsRenaming: 0
       m_OriginalEventType: 11
       m_IsRenamingFilename: 1
-      m_ClientGUIView: {fileID: 5}
+      m_ClientGUIView: {fileID: 0}
     m_CreateAssetUtility:
       m_EndAction: {fileID: 0}
       m_InstanceID: 0
@@ -424,7 +374,7 @@ MonoBehaviour:
     m_GridSize: 16
   m_SkipHiddenPackages: 0
   m_DirectoriesAreaWidth: 207
---- !u!114 &13
+--- !u!114 &11
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -444,10 +394,10 @@ MonoBehaviour:
     m_Tooltip: 
   m_Pos:
     serializedVersion: 2
-    x: 1967
-    y: 211
-    width: 354
-    height: 1109
+    x: 1594
+    y: 73
+    width: 1845
+    height: 1278
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0
@@ -471,7 +421,7 @@ MonoBehaviour:
   m_LockTracker:
     m_IsLocked: 0
   m_PreviewWindow: {fileID: 0}
---- !u!114 &14
+--- !u!114 &12
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -491,10 +441,10 @@ MonoBehaviour:
     m_Tooltip: 
   m_Pos:
     serializedVersion: 2
-    x: 490
-    y: 211
-    width: 354
-    height: 597
+    x: -18
+    y: 212
+    width: 299
+    height: 1026
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0
@@ -510,7 +460,7 @@ MonoBehaviour:
       scrollPos: {x: 0, y: 0}
       m_SelectedIDs: 
       m_LastClickedID: 0
-      m_ExpandedIDs: 6cf8ffff1afbffff
+      m_ExpandedIDs: 1afbffff
       m_RenameOverlay:
         m_UserAcceptedRename: 0
         m_Name: 
@@ -534,7 +484,7 @@ MonoBehaviour:
       m_IsLocked: 0
     m_CurrentSortingName: TransformSorting
   m_WindowGUID: 4c969a2b90040154d917609493e03593
---- !u!114 &15
+--- !u!114 &13
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -969,7 +919,7 @@ MonoBehaviour:
   m_SceneVisActive: 1
   m_LastLockedObject: {fileID: 0}
   m_ViewIsLockedToObject: 0
---- !u!114 &16
+--- !u!114 &14
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -989,10 +939,10 @@ MonoBehaviour:
     m_Tooltip: 
   m_Pos:
     serializedVersion: 2
-    x: 845
-    y: 211
-    width: 1120
-    height: 597
+    x: 282
+    y: 212
+    width: 877
+    height: 1026
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0
@@ -1009,7 +959,7 @@ MonoBehaviour:
   m_ShowGizmos: 0
   m_TargetDisplay: 0
   m_ClearColor: {r: 0, g: 0, b: 0, a: 0}
-  m_TargetSize: {x: 1080, y: 1920}
+  m_TargetSize: {x: 565, y: 1005}
   m_TextureFilterMode: 0
   m_TextureHideFlags: 61
   m_RenderIMGUI: 1
@@ -1018,23 +968,23 @@ MonoBehaviour:
   m_VSyncEnabled: 0
   m_Gizmos: 0
   m_Stats: 0
-  m_SelectedSizes: 07000000000000000000000000000000000000000000000000000000000000000000000000000000
+  m_SelectedSizes: 09000000000000000000000000000000000000000000000000000000000000000000000000000000
   m_ZoomArea:
     m_HRangeLocked: 0
     m_VRangeLocked: 0
     hZoomLockedByDefault: 0
     vZoomLockedByDefault: 0
-    m_HBaseRangeMin: -540
-    m_HBaseRangeMax: 540
-    m_VBaseRangeMin: -960
-    m_VBaseRangeMax: 960
+    m_HBaseRangeMin: -282.5
+    m_HBaseRangeMax: 282.5
+    m_VBaseRangeMin: -502.5
+    m_VBaseRangeMax: 502.5
     m_HAllowExceedBaseRangeMin: 1
     m_HAllowExceedBaseRangeMax: 1
     m_VAllowExceedBaseRangeMin: 1
     m_VAllowExceedBaseRangeMax: 1
     m_ScaleWithWindow: 0
     m_HSlider: 0
-    m_VSlider: 1
+    m_VSlider: 0
     m_IgnoreScrollWheelUntilClicked: 0
     m_EnableMouseInput: 1
     m_EnableSliderZoomHorizontal: 0
@@ -1045,29 +995,29 @@ MonoBehaviour:
       serializedVersion: 2
       x: 0
       y: 21
-      width: 1120
-      height: 576
-    m_Scale: {x: 0.3, y: 0.3}
-    m_Translation: {x: 560, y: 287.99997}
+      width: 877
+      height: 1005
+    m_Scale: {x: 1, y: 1}
+    m_Translation: {x: 438.5, y: 502.5}
     m_MarginLeft: 0
     m_MarginRight: 0
     m_MarginTop: 0
     m_MarginBottom: 0
     m_LastShownAreaInsideMargins:
       serializedVersion: 2
-      x: -1866.6666
-      y: -959.9999
-      width: 3733.3333
-      height: 1919.9999
+      x: -438.5
+      y: -502.5
+      width: 877
+      height: 1005
     m_MinimalGUI: 1
-  m_defaultScale: 0.3
-  m_LastWindowPixelSize: {x: 1120, y: 597}
+  m_defaultScale: 1
+  m_LastWindowPixelSize: {x: 877, y: 1026}
   m_ClearInEditMode: 1
   m_NoCameraWarning: 1
   m_LowResolutionForAspectRatios: 01000000000000000000
   m_XRRenderMode: 0
   m_RenderTexture: {fileID: 0}
---- !u!114 &17
+--- !u!114 &15
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -1087,10 +1037,10 @@ MonoBehaviour:
     m_Tooltip: 
   m_Pos:
     serializedVersion: 2
-    x: 490
-    y: 829
-    width: 1476
-    height: 491
+    x: -30821
+    y: -31970
+    width: 1364
+    height: 1026
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0