Quellcode durchsuchen

我人麻了!! 改特效成链式回调

hexiaojie vor 4 Monaten
Ursprung
Commit
dc8fe0dffc
96 geänderte Dateien mit 4275 neuen und 1154 gelöschten Zeilen
  1. 105 69
      GameClient/.idea/.idea.GameClient/.idea/workspace.xml
  2. 40 17
      GameClient/Assets/Game/HotUpdate/Data/ShopViewManager.cs
  3. 10 4
      GameClient/Assets/Game/HotUpdate/Effect/EffectUI.cs
  4. 14 4
      GameClient/Assets/Game/HotUpdate/Effect/EffectUIPool.cs
  5. 1 1
      GameClient/Assets/Game/HotUpdate/Platform/QDJGameManager.cs
  6. 29 11
      GameClient/Assets/Game/HotUpdate/Views/ActivityAfternoonTea/ActivityTeaMainView.cs
  7. 15 1
      GameClient/Assets/Game/HotUpdate/Views/ActivityAfternoonTea/ActivityTeaVisitView.cs
  8. 30 2
      GameClient/Assets/Game/HotUpdate/Views/ActivityAfternoonTea/RewardTipsView.cs
  9. 13 3
      GameClient/Assets/Game/HotUpdate/Views/ActivityDay7/ActivityDay7View.cs
  10. 46 14
      GameClient/Assets/Game/HotUpdate/Views/ActivityGetYuanXiao/ActivityGetYuanXiaoEntryView.cs
  11. 18 2
      GameClient/Assets/Game/HotUpdate/Views/ActivityGetYuanXiao/ActivityGetYuanXiaoFailView.cs
  12. 17 4
      GameClient/Assets/Game/HotUpdate/Views/ActivityGetYuanXiao/ActivityGetYuanXiaoSuccessView.cs
  13. 26 6
      GameClient/Assets/Game/HotUpdate/Views/ActivityGetYuanXiao/ActivityGetYuanXiaoView.cs
  14. 45 10
      GameClient/Assets/Game/HotUpdate/Views/ActivityMainTips/ActivityZCJBChapterView.cs
  15. 8 1
      GameClient/Assets/Game/HotUpdate/Views/ActivityMainTips/ActivityZCJBView.cs
  16. 17 4
      GameClient/Assets/Game/HotUpdate/Views/ActivityMainTips/BlindBoxView.cs
  17. 26 5
      GameClient/Assets/Game/HotUpdate/Views/ActivityMainTips/NewPlayerTipsView.cs
  18. 16 2
      GameClient/Assets/Game/HotUpdate/Views/ActivityMainTips/PearlRebateTipsView.cs
  19. 16 2
      GameClient/Assets/Game/HotUpdate/Views/ActivityMainTips/WeeklyGiftTipsView.cs
  20. 138 36
      GameClient/Assets/Game/HotUpdate/Views/ActivityThemeLuckyBox/ActivityThemeLuckyBoxView.cs
  21. 8 1
      GameClient/Assets/Game/HotUpdate/Views/ActivityWanShiLiUI/ActivityWanShiLiView.cs
  22. 12 6
      GameClient/Assets/Game/HotUpdate/Views/Arena/ArenaLoadingView.cs
  23. 16 2
      GameClient/Assets/Game/HotUpdate/Views/Bag/GiftBoxSelectorView.cs
  24. 44 14
      GameClient/Assets/Game/HotUpdate/Views/Card/CardDetailView.cs
  25. 73 9
      GameClient/Assets/Game/HotUpdate/Views/Card/CardFosterView.cs
  26. 8 1
      GameClient/Assets/Game/HotUpdate/Views/Card/CardSkillView.cs
  27. 16 2
      GameClient/Assets/Game/HotUpdate/Views/Card/CardUpLevelView.cs
  28. 37 8
      GameClient/Assets/Game/HotUpdate/Views/Card/CardUpView.cs
  29. 9 3
      GameClient/Assets/Game/HotUpdate/Views/ClothingFoster/ClothingView.cs
  30. 48 17
      GameClient/Assets/Game/HotUpdate/Views/ClothingUpgarde/ClothingSelectView.cs
  31. 11 1
      GameClient/Assets/Game/HotUpdate/Views/Common/ModalStatusView.cs
  32. 11 3
      GameClient/Assets/Game/HotUpdate/Views/CommonGame/FunctionOpenView.cs
  33. 8 1
      GameClient/Assets/Game/HotUpdate/Views/CommonGame/GetSuitItemVIew.cs
  34. 24 4
      GameClient/Assets/Game/HotUpdate/Views/CommonGame/RewardView.cs
  35. 36 9
      GameClient/Assets/Game/HotUpdate/Views/CommonGame/SuitItemView.cs
  36. 91 31
      GameClient/Assets/Game/HotUpdate/Views/CreateRole/CreateRoleView.cs
  37. 49 7
      GameClient/Assets/Game/HotUpdate/Views/DailyWelfare/DailySignView.cs
  38. 34 6
      GameClient/Assets/Game/HotUpdate/Views/DailyWelfare/DailySupplyView.cs
  39. 109 14
      GameClient/Assets/Game/HotUpdate/Views/EnduringGiftBox/EnduringGiftBoxView.cs
  40. 55 17
      GameClient/Assets/Game/HotUpdate/Views/EnduringGiftBox/RushSaleGiftBoxView.cs
  41. 48 11
      GameClient/Assets/Game/HotUpdate/Views/EnduringGiftBox/SpecialOfferGiftBoxView.cs
  42. 33 14
      GameClient/Assets/Game/HotUpdate/Views/FieldGuide/SuitGuideDetailView.cs
  43. 23 11
      GameClient/Assets/Game/HotUpdate/Views/FieldGuide/SuitGuideListView.cs
  44. 24 3
      GameClient/Assets/Game/HotUpdate/Views/FieldWork/FieldWorkChooseCardView.cs
  45. 32 4
      GameClient/Assets/Game/HotUpdate/Views/FieldWork/FieldWorkFightResultView.cs
  46. 61 26
      GameClient/Assets/Game/HotUpdate/Views/FieldWork/FieldWorkLevelView.cs
  47. 15 2
      GameClient/Assets/Game/HotUpdate/Views/FieldWork/FieldWorkRoundTipsView.cs
  48. 44 21
      GameClient/Assets/Game/HotUpdate/Views/Guide/GuideView.cs
  49. 80 24
      GameClient/Assets/Game/HotUpdate/Views/InstanceZones/InstanceZonesView.cs
  50. 135 50
      GameClient/Assets/Game/HotUpdate/Views/League/LeagueAnsweringView.cs
  51. 32 5
      GameClient/Assets/Game/HotUpdate/Views/League/LeagueSkillUpView.cs
  52. 97 20
      GameClient/Assets/Game/HotUpdate/Views/League/LeagueView.cs
  53. 21 11
      GameClient/Assets/Game/HotUpdate/Views/Loading/LoadingView.cs
  54. 25 6
      GameClient/Assets/Game/HotUpdate/Views/LuckyBox/LuckyBoxActivityView.cs
  55. 166 41
      GameClient/Assets/Game/HotUpdate/Views/LuckyBox/LuckyBoxBonusShowView.cs
  56. 84 21
      GameClient/Assets/Game/HotUpdate/Views/LuckyBox/LuckyBoxNewDressView.cs
  57. 51 10
      GameClient/Assets/Game/HotUpdate/Views/LuckyBox/LuckyBoxStarView.cs
  58. 170 66
      GameClient/Assets/Game/HotUpdate/Views/LuckyBox/LuckyBoxView.cs
  59. 48 25
      GameClient/Assets/Game/HotUpdate/Views/Mail/MailView.cs
  60. 44 9
      GameClient/Assets/Game/HotUpdate/Views/MainStory/ActivityStoryChapterView.cs
  61. 64 8
      GameClient/Assets/Game/HotUpdate/Views/MainStory/ArenaFightResultView.cs
  62. 24 3
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryCardChoose.cs
  63. 51 13
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryChapterView.cs
  64. 17 3
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryDialogView.cs
  65. 173 39
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryFightSingleScoreView.cs
  66. 159 33
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryFightTargetScoreView.cs
  67. 50 18
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StorySkillView.cs
  68. 98 14
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StroyFightResultView.cs
  69. 72 22
      GameClient/Assets/Game/HotUpdate/Views/MainUI/MainUIView.cs
  70. 37 8
      GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionRewardView.cs
  71. 35 8
      GameClient/Assets/Game/HotUpdate/Views/MiniGame/FlipGameView.cs
  72. 32 4
      GameClient/Assets/Game/HotUpdate/Views/MiniGame/GameStartView.cs
  73. 24 3
      GameClient/Assets/Game/HotUpdate/Views/MiniGame/ResultTipsView.cs
  74. 8 1
      GameClient/Assets/Game/HotUpdate/Views/MiniGame/TZFEGameVIew.cs
  75. 53 7
      GameClient/Assets/Game/HotUpdate/Views/NewYearRedEnvelope/NewYearRedEnvelopeView.cs
  76. 31 9
      GameClient/Assets/Game/HotUpdate/Views/Notice/NoticeView.cs
  77. 31 10
      GameClient/Assets/Game/HotUpdate/Views/OpenServerActivity/OpenServerActivityView.cs
  78. 25 6
      GameClient/Assets/Game/HotUpdate/Views/OpenServerActivity/OpenServerSuitAdditionView.cs
  79. 16 2
      GameClient/Assets/Game/HotUpdate/Views/RoleInfo/ChangeHeadView.cs
  80. 28 11
      GameClient/Assets/Game/HotUpdate/Views/RoleInfo/ChangeNameView.cs
  81. 41 10
      GameClient/Assets/Game/HotUpdate/Views/RoleInfo/ChangeThemeView.cs
  82. 32 10
      GameClient/Assets/Game/HotUpdate/Views/RoleInfo/PhoneBindingView.cs
  83. 29 4
      GameClient/Assets/Game/HotUpdate/Views/RoleLvUp/RoleLvUpView.cs
  84. 28 5
      GameClient/Assets/Game/HotUpdate/Views/Store/BrocadeWeavTask.cs
  85. 9 4
      GameClient/Assets/Game/HotUpdate/Views/Store/StoreChargeView.cs
  86. 8 1
      GameClient/Assets/Game/HotUpdate/Views/Store/StoreMonthView.cs
  87. 9 3
      GameClient/Assets/Game/HotUpdate/Views/Store/StoreZGDCView.cs
  88. 16 2
      GameClient/Assets/Game/HotUpdate/Views/Studio/StudioBuyNumView.cs
  89. 16 2
      GameClient/Assets/Game/HotUpdate/Views/Studio/StudioFilingRewardView.cs
  90. 76 24
      GameClient/Assets/Game/HotUpdate/Views/Studio/StudioView.cs
  91. 59 10
      GameClient/Assets/Game/HotUpdate/Views/Travel/TravelView.cs
  92. 53 10
      GameClient/Assets/Game/HotUpdate/Views/TurnTable/TurnTableRewardTIpsView.cs
  93. 66 12
      GameClient/Assets/Game/HotUpdate/Views/TurnTable/TurnTableView.cs
  94. 15 4
      GameClient/Assets/Game/HotUpdate/Views/ViewGlobal.cs
  95. 1 0
      GameClient/GameClient.sln.DotSettings.user
  96. 227 97
      GameClient/UserSettings/Layouts/default-2022.dwlt

+ 105 - 69
GameClient/.idea/.idea.GameClient/.idea/workspace.xml

@@ -6,14 +6,100 @@
   <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/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/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/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$/Assets/Game/HotUpdate/Data/ShopViewManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/ShopViewManager.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Effect/EffectUI.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Effect/EffectUI.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Effect/EffectUIPool.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Effect/EffectUIPool.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Platform/QDJGameManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Platform/QDJGameManager.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ActivityAfternoonTea/ActivityTeaMainView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ActivityAfternoonTea/ActivityTeaMainView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ActivityAfternoonTea/ActivityTeaVisitView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ActivityAfternoonTea/ActivityTeaVisitView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ActivityAfternoonTea/RewardTipsView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ActivityAfternoonTea/RewardTipsView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ActivityDay7/ActivityDay7View.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ActivityDay7/ActivityDay7View.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ActivityGetYuanXiao/ActivityGetYuanXiaoEntryView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ActivityGetYuanXiao/ActivityGetYuanXiaoEntryView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ActivityGetYuanXiao/ActivityGetYuanXiaoFailView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ActivityGetYuanXiao/ActivityGetYuanXiaoFailView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ActivityGetYuanXiao/ActivityGetYuanXiaoSuccessView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ActivityGetYuanXiao/ActivityGetYuanXiaoSuccessView.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/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/ActivityZCJBView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ActivityMainTips/ActivityZCJBView.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/NewPlayerTipsView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ActivityMainTips/NewPlayerTipsView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ActivityMainTips/PearlRebateTipsView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ActivityMainTips/PearlRebateTipsView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ActivityMainTips/WeeklyGiftTipsView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ActivityMainTips/WeeklyGiftTipsView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ActivityThemeLuckyBox/ActivityThemeLuckyBoxView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ActivityThemeLuckyBox/ActivityThemeLuckyBoxView.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/ArenaLoadingView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Arena/ArenaLoadingView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Bag/GiftBoxSelectorView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Bag/GiftBoxSelectorView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Card/CardDetailView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Card/CardDetailView.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/CardSkillView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Card/CardSkillView.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/Card/CardUpView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Card/CardUpView.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/ClothingUpgarde/ClothingSelectView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ClothingUpgarde/ClothingSelectView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Common/ModalStatusView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Common/ModalStatusView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/CommonGame/FunctionOpenView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/CommonGame/FunctionOpenView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/CommonGame/GetSuitItemVIew.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/CommonGame/GetSuitItemVIew.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/CommonGame/SuitItemView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/CommonGame/SuitItemView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/CreateRole/CreateRoleView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/CreateRole/CreateRoleView.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/DailySupplyView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/DailyWelfare/DailySupplyView.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/EnduringGiftBox/RushSaleGiftBoxView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/EnduringGiftBox/RushSaleGiftBoxView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/EnduringGiftBox/SpecialOfferGiftBoxView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/EnduringGiftBox/SpecialOfferGiftBoxView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/FieldGuide/SuitGuideDetailView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/FieldGuide/SuitGuideDetailView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/FieldGuide/SuitGuideListView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/FieldGuide/SuitGuideListView.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/FieldWork/FieldWorkFightResultView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/FieldWork/FieldWorkFightResultView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/FieldWork/FieldWorkLevelView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/FieldWork/FieldWorkLevelView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/FieldWork/FieldWorkRoundTipsView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/FieldWork/FieldWorkRoundTipsView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Guide/GuideView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Guide/GuideView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/InstanceZones/InstanceZonesView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/InstanceZones/InstanceZonesView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/League/LeagueAnsweringView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/League/LeagueAnsweringView.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/League/LeagueView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/League/LeagueView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Loading/LoadingView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Loading/LoadingView.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/LuckyBox/LuckyBoxBonusShowView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/LuckyBox/LuckyBoxBonusShowView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/LuckyBox/LuckyBoxNewDressView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/LuckyBox/LuckyBoxNewDressView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/LuckyBox/LuckyBoxStarView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/LuckyBox/LuckyBoxStarView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/LuckyBox/LuckyBoxView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/LuckyBox/LuckyBoxView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Mail/MailView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Mail/MailView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MainStory/ActivityStoryChapterView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MainStory/ActivityStoryChapterView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MainStory/ArenaFightResultView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MainStory/ArenaFightResultView.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/StoryChapterView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MainStory/StoryChapterView.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/StoryFightSingleScoreView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MainStory/StoryFightSingleScoreView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MainStory/StoryFightTargetScoreView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MainStory/StoryFightTargetScoreView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MainStory/StorySkillView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MainStory/StorySkillView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MainStory/StroyFightResultView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MainStory/StroyFightResultView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MainUI/MainUIView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MainUI/MainUIView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionRewardView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionRewardView.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/TZFEGameVIew.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MiniGame/TZFEGameVIew.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/NewYearRedEnvelope/NewYearRedEnvelopeView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/NewYearRedEnvelope/NewYearRedEnvelopeView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Notice/NoticeView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Notice/NoticeView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/OpenServerActivity/OpenServerActivityView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/OpenServerActivity/OpenServerActivityView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/OpenServerActivity/OpenServerSuitAdditionView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/OpenServerActivity/OpenServerSuitAdditionView.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/ChangeNameView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/RoleInfo/ChangeNameView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/RoleInfo/ChangeThemeView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/RoleInfo/ChangeThemeView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/RoleInfo/PhoneBindingView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/RoleInfo/PhoneBindingView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/RoleLvUp/RoleLvUpView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/RoleLvUp/RoleLvUpView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Store/BrocadeWeavTask.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Store/BrocadeWeavTask.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Store/StoreChargeView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Store/StoreChargeView.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/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/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/StudioView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Studio/StudioView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Travel/TravelView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Travel/TravelView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/TurnTable/TurnTableRewardTIpsView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/TurnTable/TurnTableRewardTIpsView.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/HotUpdate/Views/ViewGlobal.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ViewGlobal.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/GameClient.sln.DotSettings.user" beforeDir="false" afterPath="$PROJECT_DIR$/GameClient.sln.DotSettings.user" 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" />
@@ -28,15 +114,7 @@
     <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" />
-    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/3789ee403a53437cbb6b5d9ab6311f51573620/81/60297759/Action.cs" root0="FORCE_HIGHLIGHTING" />
-    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/683a2b31bf9142429c44f02c75dbc6c913ce00/3f/aa010310/MonoBehaviour.cs" root0="FORCE_HIGHLIGHTING" />
-    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/683a2b31bf9142429c44f02c75dbc6c913ce00/6d/b884eed9/Object.cs" root0="FORCE_HIGHLIGHTING" />
-    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/683a2b31bf9142429c44f02c75dbc6c913ce00/75/d87ba9d0/LogType.cs" root0="FORCE_HIGHLIGHTING" />
-    <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://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/3789ee403a53437cbb6b5d9ab6311f51573620/a3/60d291b6/List`1.cs" root0="FORCE_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" />
@@ -150,6 +228,16 @@
       <workItem from="1755011343842" duration="8144000" />
       <workItem from="1755094549834" duration="10346000" />
       <workItem from="1756009434435" duration="786000" />
+      <workItem from="1756303940797" duration="738000" />
+      <workItem from="1756652705739" duration="443000" />
+      <workItem from="1757000990601" duration="4680000" />
+      <workItem from="1757234990479" duration="4689000" />
+      <workItem from="1757297976493" duration="314000" />
+      <workItem from="1757343803738" duration="2620000" />
+      <workItem from="1757346602711" duration="321000" />
+      <workItem from="1757428025418" duration="9755000" />
+      <workItem from="1757602836172" duration="7000" />
+      <workItem from="1757602865286" duration="6509000" />
     </task>
     <servers />
   </component>
@@ -169,19 +257,6 @@
   <component name="XDebuggerManager">
     <breakpoint-manager>
       <breakpoints>
-        <line-breakpoint enabled="true" type="DotNet Breakpoints">
-          <url>file://$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MainStory/StoryFightSingleScoreView.cs</url>
-          <line>301</line>
-          <properties documentPath="D:\gfgProject\gfg_dev\0A-GFGClient\5client_webgl\Client\GameClient\Assets\Game\HotUpdate\Views\MainStory\StoryFightSingleScoreView.cs" containingFunctionPresentation="方法 'TryShowCardSkill'">
-            <startOffsets>
-              <option value="12954" />
-            </startOffsets>
-            <endOffsets>
-              <option value="13148" />
-            </endOffsets>
-          </properties>
-          <option name="timeStamp" value="26" />
-        </line-breakpoint>
         <line-breakpoint enabled="true" type="DotNet Breakpoints">
           <url>file://$PROJECT_DIR$/Assets/Game/HotUpdate/Controller/LoginController.cs</url>
           <line>325</line>
@@ -260,32 +335,6 @@
           </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>
@@ -299,19 +348,6 @@
           </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" />

+ 40 - 17
GameClient/Assets/Game/HotUpdate/Data/ShopViewManager.cs

@@ -7,7 +7,6 @@ using UI.Store;
 
 namespace GFGGame
 {
-
     public class ShopViewManager : SingletonBase<ShopViewManager>
     {
         public void BuyItem(int itemId, int itemCount, int buyType, ShopCfg shopCfg)
@@ -16,7 +15,6 @@ namespace GFGGame
             {
                 LogServerHelper.SendPlayParticipationLog((int)PlayParticipationEnum.FU_ZHUANG_DIAN, 2);
                 GetSuitItemController.TryShow(0);
-
             }, true, false, GameConst.MAX_COUNT_TO_BUY_ITEMS);
         }
 
@@ -28,7 +26,7 @@ namespace GFGGame
             int level = RoleDataManager.vipLv;
             ET.Log.Debug("vipLv:" + level);
             ET.Log.Debug("vipExp:" + RoleDataManager.vipExp);
-            VipCfg vipCfg =CommonDataManager.Tables.TblVipCfg.GetOrDefault(RoleDataManager.vipLv);
+            VipCfg vipCfg = CommonDataManager.Tables.TblVipCfg.GetOrDefault(RoleDataManager.vipLv);
             if (vipCfg == null) return;
             VipCfg nextVipCfg = CommonDataManager.Tables.TblVipCfg.GetOrDefault(RoleDataManager.vipLv + 1);
             com.m_grpTips.visible = nextVipCfg != null;
@@ -37,6 +35,7 @@ namespace GFGGame
                 com.m_btnRule.onClick.Add(RuleController.ShowRuleView);
                 com.m_btnRule.data = 300009;
             }
+
             if (nextVipCfg != null)
             {
                 com.m_proExp.target.max = vipCfg.Num;
@@ -53,10 +52,12 @@ namespace GFGGame
                 com.m_proExp.m_txttitle.SetVar("value", com.m_proExp.target.value.ToString()).FlushVars();
                 com.m_proExp.m_txttitle.SetVar("max", "MAX").FlushVars();
             }
+
             UI_ComVipLv.ProxyEnd();
         }
 
         private List<EffectUI> _effectUIs = new List<EffectUI>();
+
         //清除商品item的特效
         public void ClearItemEff()
         {
@@ -65,6 +66,7 @@ namespace GFGGame
                 EffectUIPool.Recycle(_effectUIs[i]);
                 _effectUIs[i] = null;
             }
+
             _effectUIs.Clear();
         }
 
@@ -72,7 +74,6 @@ namespace GFGGame
         public void UptadeItem(GObject obj, ShopCfg shopCfg)
         {
             UI_ListShopItem item = UI_ListShopItem.Proxy(obj);
-
             ItemCfg itemCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(shopCfg.ItemId);
 
             try
@@ -85,16 +86,33 @@ namespace GFGGame
                 Console.WriteLine(e);
                 throw;
             }
-            
 
             item.m_grpDiscount.visible = shopCfg.Price < shopCfg.OriginalPrice;
             if (item.m_grpDiscount.visible)
             {
-                EffectUI _effectUI = EffectUIPool.CreateEffectUI(item.m_holderfEff, "ui_Small_parts", "store_Value");
-                _effectUIs.Add(_effectUI);
-                item.m_holderfEff.visible = shopCfg.Price < shopCfg.OriginalPrice;
+                // 修改为异步加载特效
+                EffectUIPool.CreateEffectUI(item.m_holderfEff, "ui_Small_parts", "store_Value",
+                    onComplete: (effect) =>
+                    {
+                        if (effect != null)
+                        {
+                            _effectUIs.Add(effect);
+                            item.m_holderfEff.visible = true;
+                        }
+                        else
+                        {
+                            item.m_holderfEff.visible = false;
+                        }
+                    });
+            }
+            else
+            {
+                item.m_holderfEff.visible = false;
             }
-            item.m_txtDesc.text = shopCfg.Price <= 0 ? "" : ShopDataManager.Instance.GetShopGoodsDiscount(shopCfg.Id).ToString();
+
+            item.m_txtDesc.text = shopCfg.Price <= 0
+                ? ""
+                : ShopDataManager.Instance.GetShopGoodsDiscount(shopCfg.Id).ToString();
 
             item.m_txtEndTime.SetVar("value", ShopDataManager.Instance.GetEndTime(shopCfg.Id)).FlushVars();
             item.m_txtEndTime.visible = shopCfg.EndTime != "";
@@ -104,25 +122,28 @@ namespace GFGGame
 
             int buyNum = ShopDataManager.Instance.GetGoodsBuyNumById(shopCfg.Id);
             item.m_txtLimit.visible = shopCfg.MaxBuyNum > 0;
-            item.m_txtLimit.text = string.Format("{0}({1}/{2})", ShopDataManager.Instance.refreshType[shopCfg.RefreshType], StringUtil.GetColorText(buyNum.ToString(), "#5A3E16"), shopCfg.MaxBuyNum);
+            item.m_txtLimit.text = string.Format("{0}({1}/{2})",
+                ShopDataManager.Instance.refreshType[shopCfg.RefreshType],
+                StringUtil.GetColorText(buyNum.ToString(), "#5A3E16"), shopCfg.MaxBuyNum);
 
             item.m_c1.selectedIndex = shopCfg.MaxBuyNum == 0 || buyNum < shopCfg.MaxBuyNum ? 0 : 1;
-            if (item.m_c1.selectedIndex == 0)//可购买
+            if (item.m_c1.selectedIndex == 0) //可购买
             {
                 item.m_btnBuy.m_txtOriginalPrice.text = NumberUtil.ChangeNumberUnit(shopCfg.OriginalPrice);
-                if (shopCfg.Price > 0 && shopCfg.CostTypeReal != CostType.FREE)//不免费
+                if (shopCfg.Price > 0 && shopCfg.CostTypeReal != CostType.FREE) //不免费
                 {
-                    item.m_btnBuy.m_grpOriginalPrice.visible = shopCfg.OriginalPrice > 0 && shopCfg.OriginalPrice != shopCfg.Price;
+                    item.m_btnBuy.m_grpOriginalPrice.visible =
+                        shopCfg.OriginalPrice > 0 && shopCfg.OriginalPrice != shopCfg.Price;
                     item.m_btnBuy.m_loaIcon.visible = true;
-                    item.m_btnBuy.m_txtPrice.text = NumberUtil.ChangeNumberUnit(shopCfg.Price);// cfg.price.ToString();
+                    item.m_btnBuy.m_txtPrice.text = NumberUtil.ChangeNumberUnit(shopCfg.Price);
 
-                    if (shopCfg.CostTypeReal == CostType.RMB)//人民币
+                    if (shopCfg.CostTypeReal == CostType.RMB) //人民币
                     {
                         item.m_btnBuy.m_loaIcon.visible = false;
                         item.m_btnBuy.m_txtIcon.visible = true;
                         item.m_btnBuy.m_txtIcon.text = "¥";
                     }
-                    else//道具
+                    else //道具
                     {
                         ItemCfg costItemCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(shopCfg.CostIdReal);
                         item.m_btnBuy.m_loaIcon.url = ResPathUtil.GetIconPath(costItemCfg);
@@ -143,6 +164,7 @@ namespace GFGGame
             {
                 item.target.onClick.Add(OnBtnBugItem);
             }
+
             item.target.data = shopCfg;
             bool isRed = item.m_c1.selectedIndex == 0 && item.m_c2.selectedIndex == 0 && shopCfg.Price == 0;
 
@@ -153,7 +175,8 @@ namespace GFGGame
         public void OnBtnBugItem(EventContext context)
         {
             ShopCfg cfg = (context.sender as GObject).data as ShopCfg;
-            bool isSellOut = cfg.MaxBuyNum > 0 && cfg.MaxBuyNum - ShopDataManager.Instance.GetGoodsBuyNumById(cfg.Id) <= 0;
+            bool isSellOut = cfg.MaxBuyNum > 0 &&
+                             cfg.MaxBuyNum - ShopDataManager.Instance.GetGoodsBuyNumById(cfg.Id) <= 0;
             if (isSellOut)
             {
                 PromptController.Instance.ShowFloatTextPrompt("已售罄");

+ 10 - 4
GameClient/Assets/Game/HotUpdate/Effect/EffectUI.cs

@@ -9,13 +9,16 @@ namespace GFGGame
         private GameObject _gameObject;
         private GoWrapper _wrapper;
         public bool Released;
+        public bool IsLoaded { get; private set; }
 
 
         public void Reset(GGraph holder, string uiName, string resName, float scale = 100,
-            EffectUIType effectUIType = EffectUIType.UI, Action onComplete = null)
+            EffectUIType effectUIType = EffectUIType.UI, Action<bool> onComplete = null)
         {
             if (!Released) Release();
             Released = false;
+            IsLoaded = false;
+        
             string resPath;
             switch (effectUIType)
             {
@@ -29,9 +32,9 @@ namespace GFGGame
 
             PrefabManager.Instance.SpawnAsync(resPath, (go) =>
             {
-                if (go == null)
+                if (go == null || Released) // 检查是否已被释放
                 {
-                    onComplete?.Invoke(); // 即使失败也通知
+                    onComplete?.Invoke(false);
                     return;
                 }
 
@@ -50,7 +53,8 @@ namespace GFGGame
                     holder.y = CardDataManager.CardResInitHight / 2 - obj.offset.y * 100;
                 }
 
-                onComplete?.Invoke();
+                IsLoaded = true;
+                onComplete?.Invoke(true);
             });
         }
 
@@ -74,6 +78,8 @@ namespace GFGGame
                 _wrapper.Dispose();
                 _wrapper = null;
             }
+            
+            IsLoaded = false;
         }
 
         public GameObject GetObj()

+ 14 - 4
GameClient/Assets/Game/HotUpdate/Effect/EffectUIPool.cs

@@ -8,8 +8,8 @@ namespace GFGGame
     {
         private static List<EffectUI> effectUIs = new List<EffectUI>();
 
-        public static EffectUI CreateEffectUI(GGraph holder, string uiName, string resName, float scale = 100,
-            Action onComplete = null)
+        public static void CreateEffectUI(GGraph holder, string uiName, string resName, float scale = 100,
+            Action<EffectUI> onComplete = null)
         {
             EffectUI effectUI;
             if (effectUIs.Count > 0)
@@ -23,8 +23,18 @@ namespace GFGGame
                 effectUI = new EffectUI();
             }
 
-            effectUI.Reset(holder, uiName, resName, scale, EffectUIType.UI, onComplete);
-            return effectUI;
+            effectUI.Reset(holder, uiName, resName, scale, EffectUIType.UI, (success) => {
+                if (success)
+                {
+                    onComplete?.Invoke(effectUI);
+                }
+                else
+                {
+                    // 加载失败,回收effectUI
+                    Recycle(effectUI);
+                    onComplete?.Invoke(null);
+                }
+            });
         }
 
         public static void Recycle(EffectUI effect)

+ 1 - 1
GameClient/Assets/Game/HotUpdate/Platform/QDJGameManager.cs

@@ -28,7 +28,7 @@ namespace GFGGame
 
             if (LauncherConfig.IsTest)
             {
-                string testUid =191241.ToString();
+                string testUid =1912269241.ToString();
                 url =
                     $"https://webgltest.goufuguiwxw.com/?user_id={testUid}&user_name=12241433259&timestamp=175074382&sign=88cc86dd40f78dfbbfe46add3e8eaa9dac3ba8&cp_ext=&partner=platform";
             }

+ 29 - 11
GameClient/Assets/Game/HotUpdate/Views/ActivityAfternoonTea/ActivityTeaMainView.cs

@@ -10,6 +10,7 @@ namespace GFGGame
     {
         private UI_ActivityTeaMainUI _ui;
         private EffectUI _effectUI1;
+
         public override void Dispose()
         {
             EffectUIPool.Recycle(_effectUI1);
@@ -19,6 +20,7 @@ namespace GFGGame
                 _ui.Dispose();
                 _ui = null;
             }
+
             base.Dispose();
         }
 
@@ -41,17 +43,34 @@ namespace GFGGame
             _ui.m_twoViewIcon.onClick.Add(OnClickBtnVisitView);
             _ui.m_threeViewIcon.onClick.Add(OnClickBtnMergeView);
 
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_effectBg, "ui_Activity", "GFXWC_bg_tx");
-    }
+            EffectUIPool.CreateEffectUI(_ui.m_effectBg, "ui_Activity", "GFXWC_bg_tx",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                        // 可以在这里添加特效加载完成后的逻辑
+                        Debug.Log("背景特效加载完成");
+                    }
+                    else
+                    {
+                        Debug.LogError("背景特效加载失败");
+                        // 可以在这里添加加载失败的处理逻辑
+                    }
+                });
+        }
 
         protected override void OnShown()
         {
             base.OnShown();
             _ui.m_Bg.url = ResPathUtil.GetBgImgPath("gfxwc_xrbj");
             _ui.m_BgOne.url = "";
-            RedDotController.Instance.SetComRedDot(_ui.m_twoViewIcon, ActivityTeaDataManager.Instance.GetRewardRed()|| ActivityTeaDataManager.Instance.CheckVisitTaskRed());
-            RedDotController.Instance.SetComRedDot(_ui.m_oneViewIcon, ActivityTeaDataManager.Instance.CheckHRDRed(),"",-85);
-            RedDotController.Instance.SetComRedDot(_ui.m_threeViewIcon, ActivityTeaDataManager.Instance.GetActivitySyntheticRed(),"",-85);
+            RedDotController.Instance.SetComRedDot(_ui.m_twoViewIcon,
+                ActivityTeaDataManager.Instance.GetRewardRed() || ActivityTeaDataManager.Instance.CheckVisitTaskRed());
+            RedDotController.Instance.SetComRedDot(_ui.m_oneViewIcon, ActivityTeaDataManager.Instance.CheckHRDRed(), "",
+                -85);
+            RedDotController.Instance.SetComRedDot(_ui.m_threeViewIcon,
+                ActivityTeaDataManager.Instance.GetActivitySyntheticRed(), "", -85);
         }
 
         protected override void OnHide()
@@ -83,8 +102,8 @@ namespace GFGGame
                 return;
             }
 
-                //小游戏入口
-                ViewManager.Show<ActivityHuaRongDaoEntryView>(5003);
+            //小游戏入口
+            ViewManager.Show<ActivityHuaRongDaoEntryView>(5003);
         }
 
         private async void OnClickBtnVisitView()
@@ -94,12 +113,12 @@ namespace GFGGame
                 PromptController.Instance.ShowFloatTextPrompt("活动未在开启时间");
                 return;
             }
+
             var result = await ActivityTeaSProxy.ReqGetNPCVisitInfo(5004);
             if (!result) return;
 
-                //拜访入口
-                ViewManager.Show<ActivityTeaVisitView>();
-
+            //拜访入口
+            ViewManager.Show<ActivityTeaVisitView>();
         }
 
         private void OnClickBtnMergeView()
@@ -113,6 +132,5 @@ namespace GFGGame
             //合成入口
             ViewManager.Show<ActivitySyntheticView>();
         }
-
     }
 }

+ 15 - 1
GameClient/Assets/Game/HotUpdate/Views/ActivityAfternoonTea/ActivityTeaVisitView.cs

@@ -45,7 +45,21 @@ namespace GFGGame
             _ui.m_ruleIcon.onClick.Add(RuleController.ShowRuleView);
             _ui.m_taskList.itemRenderer = RenderTaskList;
 
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_effectBg, "ui_Activity", "XNBH_BG_tx");
+            EffectUIPool.CreateEffectUI(_ui.m_effectBg, "ui_Activity", "XNBH_BG_tx",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                        // 可以在这里添加特效加载完成后的逻辑
+                        Debug.Log("背景特效加载完成");
+                    }
+                    else
+                    {
+                        Debug.LogError("背景特效加载失败");
+                        // 可以在这里添加加载失败的处理逻辑
+                    }
+                });
         }
 
         protected override void OnShown()

+ 30 - 2
GameClient/Assets/Game/HotUpdate/Views/ActivityAfternoonTea/RewardTipsView.cs

@@ -45,8 +45,36 @@ namespace GFGGame
             _ui.m_back.onClick.Add(Hide);
             _ui.m_rewardList.itemRenderer = RenderTaskList;
 
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_effect1, "ui_Activity", "Com_window_L_up");
-            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_effect2, "ui_Activity", "Com_window_R_Down");
+            EffectUIPool.CreateEffectUI(_ui.m_effect1, "ui_Activity", "Com_window_L_up",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                        // 可以在这里添加特效加载完成后的逻辑
+                        Debug.Log("背景特效加载完成");
+                    }
+                    else
+                    {
+                        Debug.LogError("背景特效加载失败");
+                        // 可以在这里添加加载失败的处理逻辑
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_effect2, "ui_Activity", "Com_window_R_Down",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                        // 可以在这里添加特效加载完成后的逻辑
+                        Debug.Log("背景特效加载完成");
+                    }
+                    else
+                    {
+                        Debug.LogError("背景特效加载失败");
+                        // 可以在这里添加加载失败的处理逻辑
+                    }
+                });
         }
 
         protected override void OnShown()

+ 13 - 3
GameClient/Assets/Game/HotUpdate/Views/ActivityDay7/ActivityDay7View.cs

@@ -7,6 +7,7 @@ using FairyGUI;
 using UI.ActivityDay7;
 using UI.CommonGame;
 using UI.Task;
+using UnityEngine;
 
 namespace GFGGame
 {
@@ -259,9 +260,18 @@ namespace GFGGame
 
             if (item.m_c1.selectedIndex == 1)
             {
-                EffectUI _effectUI =
-                    EffectUIPool.CreateEffectUI(item.m_holderfTaskEff, "ui_Small_parts", "store_button_public");
-                _effectTaskUIs.Add(_effectUI);
+              EffectUIPool.CreateEffectUI(item.m_holderfTaskEff, "ui_Small_parts", "store_button_public",
+                        onComplete: (effect) =>
+                        {
+                            if (effect != null)
+                            {
+                                _effectTaskUIs.Add(effect);
+                            }
+                            else
+                            {
+                                Debug.LogError("背景特效加载失败");
+                            }
+                        });
             }
 
             item.m_listTaskReward.data = TaskDataManager.Instance.GetReward(taskCfg);

+ 46 - 14
GameClient/Assets/Game/HotUpdate/Views/ActivityGetYuanXiao/ActivityGetYuanXiaoEntryView.cs

@@ -181,7 +181,7 @@ namespace GFGGame
                 PromptController.Instance.ShowFloatTextPrompt("游园门票不足,请查看任务列表");
                 return;
             }
-            
+
             PickUpGameCfg cfg = CommonDataManager.Tables.TblPickUpGameCfg.DataList[_ui.m_list.selectedIndex];
             ViewManager.Show<ActivityGetYuanXiaoTargetView>(cfg);
         }
@@ -244,19 +244,51 @@ namespace GFGGame
 
         private void AddEffect()
         {
-            _effectUIDic.Add("YXJ_bg_tx",
-                EffectUIPool.CreateEffectUI(_ui.m_bgEffect, "ui_Activity", "CLFG_BG_TX/CLFG_BG_TX "));
-            _effectUIDic.Add("YXJ_Button",
-                EffectUIPool.CreateEffectUI(_ui.m_startBtnEffect, "ui_Activity",
-                    "CLFG_Start_Button/CLFG_Start_Button"));
-            //_effectUIDic.Add("YXJ_Middle", EffectUIPool.CreateEffectUI(_ui.m_yuanXiaoEffect, "ui_Activity", "YXJ_Middle"));
-            _effectUIDic.Add("YXJ_Text",
-                EffectUIPool.CreateEffectUI(_ui.m_titleTextEffect, "ui_Activity", "CLFG_Text/CLFG_Text"));
-            _effectUIDic.Add("YXJ_Open_Down",
-                EffectUIPool.CreateEffectUI(_ui.m_cloudEffect, "ui_Activity", "YXJ_Open_Down"));
-            //_effectUIDic.Add("YXJ_Open_Up", EffectUIPool.CreateEffectUI(_ui.m_leafEffect, "ui_Activity", "YXJ_Open_Up"));
-            _effectUIDic.Add("RedPack_doubao_Loop_R",
-                EffectUIPool.CreateEffectUI(_ui.m_doubaoEffect, "ui_Activity", "CLFG_Mid_Anma/CLFG_Mid_Anma"));
+            EffectUIPool.CreateEffectUI(_ui.m_bgEffect, "ui_Activity", "CLFG_BG_TX/CLFG_BG_TX",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUIDic.Add("YXJ_bg_tx", effect);
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_startBtnEffect, "ui_Activity",
+                "CLFG_Start_Button/CLFG_Start_Button",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUIDic.Add("YXJ_Button", effect);
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_titleTextEffect, "ui_Activity", "CLFG_Text/CLFG_Text",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUIDic.Add("YXJ_Text", effect);
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_cloudEffect, "ui_Activity", "YXJ_Open_Down",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUIDic.Add("YXJ_Open_Down", effect);
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_doubaoEffect, "ui_Activity", "CLFG_Mid_Anma/CLFG_Mid_Anma",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUIDic.Add("RedPack_doubao_Loop_R", effect);
+                    }
+                });
         }
 
         private void AutoLocationCurLevel()

+ 18 - 2
GameClient/Assets/Game/HotUpdate/Views/ActivityGetYuanXiao/ActivityGetYuanXiaoFailView.cs

@@ -17,6 +17,7 @@ namespace GFGGame
             {
                 EffectUIPool.Recycle(v.Value);
             }
+
             _effectUIDic.Clear();
 
             if (_ui != null)
@@ -42,8 +43,23 @@ namespace GFGGame
             _ui.m_btnExit.onClick.Add(OnClickBtnExit);
             _ui.m_btnRetry.onClick.Add(OnClickBtnTryAgain);
 
-            _effectUIDic.Add("YXJ_Quad_star", EffectUIPool.CreateEffectUI(_ui.m_starEffect, "ui_Activity", "YXJ_Quad_star"));
-            _effectUIDic.Add("YXJ_QuadText_Lose", EffectUIPool.CreateEffectUI(_ui.m_titleEffect, "ui_Activity", "YXJ_QuadText_Lose"));
+            EffectUIPool.CreateEffectUI(_ui.m_starEffect, "ui_Activity", "YXJ_Quad_star",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUIDic.Add("YXJ_Quad_star", effect);
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_titleEffect, "ui_Activity", "YXJ_QuadText_Lose",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUIDic.Add("YXJ_QuadText_Lose", effect);
+                    }
+                });
         }
 
         private void OnClickBtnExit()

+ 17 - 4
GameClient/Assets/Game/HotUpdate/Views/ActivityGetYuanXiao/ActivityGetYuanXiaoSuccessView.cs

@@ -28,10 +28,23 @@ namespace GFGGame
             _ui.m_listReward.itemRenderer = RenderListRewardItem;
             _ui.m_btnExit.onClick.Add(OnClickBtnExit);
 
-            _effectUIDic.Add("YXJ_Quad_star",
-                EffectUIPool.CreateEffectUI(_ui.m_starEffect, "ui_Activity", "YXJ_Quad_star"));
-            _effectUIDic.Add("YXJ_QuadText_win",
-                EffectUIPool.CreateEffectUI(_ui.m_titleEffect, "ui_Activity", "YXJ_QuadText_win"));
+            EffectUIPool.CreateEffectUI(_ui.m_starEffect, "ui_Activity", "YXJ_Quad_star",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUIDic.Add("YXJ_Quad_star", effect);
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_titleEffect, "ui_Activity", "YXJ_QuadText_win",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUIDic.Add("YXJ_QuadText_win", effect);
+                    }
+                });
         }
 
         public override void Dispose()

+ 26 - 6
GameClient/Assets/Game/HotUpdate/Views/ActivityGetYuanXiao/ActivityGetYuanXiaoView.cs

@@ -505,12 +505,32 @@ namespace GFGGame
 
         private void AddEffect()
         {
-            _effectUIDic.Add("YXJ_Catch",
-                EffectUIPool.CreateEffectUI(_ui.m_catcher.m_getEffect, "ui_Activity", "YXJ_Catch"));
-            _effectUIDic.Add("YXJ_text_start",
-                EffectUIPool.CreateEffectUI(_ui.m_startEffect, "ui_Activity", "YXJ_text_start"));
-            _effectUIDic.Add("YXJ_gameing_bg_tx",
-                EffectUIPool.CreateEffectUI(_ui.m_bgEffect, "ui_Activity", "YXJ_gameing_bg_tx"));
+            EffectUIPool.CreateEffectUI(_ui.m_catcher.m_getEffect, "ui_Activity", "YXJ_Catch",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUIDic.Add("YXJ_Catch", effect);
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_startEffect, "ui_Activity", "YXJ_text_start",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUIDic.Add("YXJ_text_start", effect);
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_bgEffect, "ui_Activity", "YXJ_gameing_bg_tx",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUIDic.Add("YXJ_gameing_bg_tx", effect);
+                    }
+                });
         }
 
         private void CheckActivityEnd(object param)

+ 45 - 10
GameClient/Assets/Game/HotUpdate/Views/ActivityMainTips/ActivityZCJBChapterView.cs

@@ -99,9 +99,23 @@ namespace GFGGame
 
             _effFirst = new GComponent();
             _effFirst = UIPackage.CreateObject(UI_MainUI.PACKAGE_NAME, "ComEff").asCom;
-            _effectUI3 = EffectUIPool.CreateEffectUI(_ui.m_bgEffect, "ui_zj", "ZX_BG_TX");
-            _effectUI4 =
-                EffectUIPool.CreateEffectUI(_ui.m_chapter.m_compChapterScroll.m_nextEffect, "ui_zj", "ZX_Next_Boat");
+            EffectUIPool.CreateEffectUI(_ui.m_bgEffect, "ui_zj", "ZX_BG_TX",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI3 = effect;
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_chapter.m_compChapterScroll.m_nextEffect, "ui_zj", "ZX_Next_Boat",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI4 = effect;
+                    }
+                });
         }
 
         protected override void AddEventListener()
@@ -164,7 +178,7 @@ namespace GFGGame
                     .Comsume[0].ItemId,
                 ConstItemID.DIAMOND_PURPLE, ConstItemID.DIAMOND_RED
             });
-            
+
             _ui.m_selectChapter.visible = false;
             _ui.m_switchChapter.target.visible = false;
             _ui.m_bonusBox.visible = false;
@@ -332,21 +346,42 @@ namespace GFGGame
                         {
                             if (levelItem.m_c2.selectedIndex == 0)
                             {
-                                _effectUI2 = EffectUIPool.CreateEffectUI(_effFirst.GetChild("effect_jq_left").asGraph,
-                                    "ui_zj", effName);
+                                EffectUIPool.CreateEffectUI(_effFirst.GetChild("effect_jq_left").asGraph,
+                                    "ui_zj", effName,
+                                    onComplete: (effect) =>
+                                    {
+                                        if (effect != null)
+                                        {
+                                            _effectUI2 = effect;
+                                        }
+                                    });
                                 _effFirst.GetChild("effect_jq_left").rotationY = 180;
                             }
                             else
                             {
-                                _effectUI2 = EffectUIPool.CreateEffectUI(_effFirst.GetChild("effect_jq").asGraph,
-                                    "ui_zj", effName);
+                                EffectUIPool.CreateEffectUI(_effFirst.GetChild("effect_jq").asGraph,
+                                    "ui_zj", effName,
+                                    onComplete: (effect) =>
+                                    {
+                                        if (effect != null)
+                                        {
+                                            _effectUI2 = effect;
+                                        }
+                                    });
                                 _effFirst.GetChild("effect_jq").rotationY = 0;
                             }
                         }
                         else
                         {
-                            _effectUI2 = EffectUIPool.CreateEffectUI(_effFirst.GetChild("effect_zd").asGraph, "ui_zj",
-                                effName);
+                            EffectUIPool.CreateEffectUI(_effFirst.GetChild("effect_zd").asGraph, "ui_zj",
+                                effName,
+                                onComplete: (effect) =>
+                                {
+                                    if (effect != null)
+                                    {
+                                        _effectUI2 = effect;
+                                    }
+                                });
                             if (levelItem.m_c2.selectedIndex == 0)
                             {
                                 _effFirst.GetChild("effect_zd").rotationY = 0;

+ 8 - 1
GameClient/Assets/Game/HotUpdate/Views/ActivityMainTips/ActivityZCJBView.cs

@@ -46,7 +46,14 @@ namespace GFGGame
             _ui.m_shopBtn.onClick.Add(OnClickShopBtn);
 
             //_effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_bgEffect, "ui_Activity", "WGSX_All_Tx/WGSX_All_Tx");
-            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_btnEffect, "ui_Activity", "WGSX_Button/WGSX_Button");
+            EffectUIPool.CreateEffectUI(_ui.m_btnEffect, "ui_Activity", "WGSX_Button/WGSX_Button",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                    }
+                });
         }
 
         protected override void OnShown()

+ 17 - 4
GameClient/Assets/Game/HotUpdate/Views/ActivityMainTips/BlindBoxView.cs

@@ -153,14 +153,27 @@ namespace GFGGame
             item.target.onClick.Add(OnClickBuyOne);
             if (!_effectUIDic.ContainsKey("WSJ_Box" + index.ToString()))
             {
-                _effectUIDic.Add("WSJ_Box" + index.ToString(),
-                    EffectUIPool.CreateEffectUI(item.m_effect, "ui_Activity", "WSJ_Box/WSJ_Box"));
+                EffectUIPool.CreateEffectUI(item.m_effect, "ui_Activity", "WSJ_Box/WSJ_Box",
+                    onComplete: (effect) =>
+                    {
+                        if (effect != null)
+                        {
+                            _effectUIDic.Add("WSJ_Box" + index.ToString(), effect);
+                        }
+                    });
             }
 
             if (!_effectUIDic.ContainsKey("WSJ_OpenBox" + index.ToString()))
             {
-                _effectUIDic.Add("WSJ_OpenBox" + index.ToString(),
-                    EffectUIPool.CreateEffectUI(item.m_effectOpen, "ui_Activity", "WSJ_OpenBox/WSJ_OpenBox"));
+                EffectUIPool.CreateEffectUI(item.m_effectOpen, "ui_Activity", "WSJ_OpenBox/WSJ_OpenBox",
+                    onComplete: (effect) =>
+                    {
+                        if (effect != null)
+                        {
+                            _effectUIDic.Add("WSJ_OpenBox" + index.ToString(), effect);
+                        }
+                    });
+
                 item.m_effectOpen.visible = false;
             }
 

+ 26 - 5
GameClient/Assets/Game/HotUpdate/Views/ActivityMainTips/NewPlayerTipsView.cs

@@ -11,6 +11,7 @@ namespace GFGGame
         private UI_NewPlayersTipsUI _ui;
         private EffectUI _effectUI1;
         private EffectUI _effectUI2;
+
         public override void Dispose()
         {
             EffectUIPool.Recycle(_effectUI1);
@@ -22,8 +23,10 @@ namespace GFGGame
                 _ui.Dispose();
                 _ui = null;
             }
+
             base.Dispose();
         }
+
         protected override void OnInit()
         {
             base.OnInit();
@@ -36,28 +39,46 @@ namespace GFGGame
             _ui.m_backBtn.onClick.Add(OnClickChange);
             _ui.m_btnBack.onClick.Add(OnClickChange);
 
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_effectBtn, "ui_Activity", "JLQQ_button");
-            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_effectBG, "ui_Activity", "JLQQ_tx_loop");
+
+            EffectUIPool.CreateEffectUI(_ui.m_effectBtn, "ui_Activity", "JLQQ_button",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_effectBG, "ui_Activity", "JLQQ_tx_loop",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                    }
+                });
         }
+
         protected override void OnShown()
         {
             base.OnShown();
 
             UpdateInfo();
         }
+
         protected override void OnHide()
         {
             base.OnHide();
         }
+
         private void UpdateView()
         {
-
         }
 
         private async void UpdateInfo()
         {
-           await ActivitySProxy.SetNewPlayerOnceStatus(0);
+            await ActivitySProxy.SetNewPlayerOnceStatus(0);
         }
+
         private async void OnClickGetReward()
         {
             bool result;
@@ -65,11 +86,11 @@ namespace GFGGame
             result = await ActivitySProxy.ReqGetNewPlayerBonus();
             this.Hide();
         }
+
         private void OnClickChange()
         {
             GameGlobal.NewPlayerOnceTips = false;
             this.Hide();
         }
-
     }
 }

+ 16 - 2
GameClient/Assets/Game/HotUpdate/Views/ActivityMainTips/PearlRebateTipsView.cs

@@ -47,8 +47,22 @@ namespace GFGGame
             _ui.m_three.target.onClick.Add(UpdateIndex3);
             _ui.m_notTips.onClick.Add(OnClickTips);
 
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_effectBtn, "ui_Activity", "");
-            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_effectBG, "ui_Activity", "");
+            EffectUIPool.CreateEffectUI(_ui.m_effectBtn, "ui_Activity", "",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_effectBG, "ui_Activity", "",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                    }
+                });
         }
 
         protected override void AddEventListener()

+ 16 - 2
GameClient/Assets/Game/HotUpdate/Views/ActivityMainTips/WeeklyGiftTipsView.cs

@@ -41,9 +41,23 @@ namespace GFGGame
             modal = true;
             this.viewCom.Center();
             //邊框左上角特效
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holderLeftTop, "ui_Activity", "Com_window_L_up");
+            EffectUIPool.CreateEffectUI(_ui.m_holderLeftTop, "ui_Activity", "Com_window_L_up",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
             //邊框右下角特效
-            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_holderRightDowm, "ui_Activity", "Com_window_R_Down");
+            EffectUIPool.CreateEffectUI(_ui.m_holderRightDowm, "ui_Activity", "Com_window_R_Down",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                    }
+                });
             viewAnimationType = EnumViewAnimationType.ZOOM_CENTER;
             _ui.m_rewardList.itemRenderer = ListItemRender;
             _ui.m_rewardList.onClickItem.Add(OnListSelectorItemClick);

+ 138 - 36
GameClient/Assets/Game/HotUpdate/Views/ActivityThemeLuckyBox/ActivityThemeLuckyBoxView.cs

@@ -1,4 +1,3 @@
-
 using ET;
 using FairyGUI;
 using System.Collections.Generic;
@@ -22,6 +21,7 @@ namespace GFGGame
                 _ui.Dispose();
                 _ui = null;
             }
+
             base.Dispose();
         }
 
@@ -55,19 +55,20 @@ namespace GFGGame
             if (showTask)
             {
                 OnBtnTaskClick();
-           
             }
-            _activityId = ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitLuckyBox);
+
+            _activityId =
+                ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitLuckyBox);
 
             // 界面根据ID改变
             _ui.m_c1.SetSelectedPage(_activityId.ToString());
             // 活动主界面入场动画
             _ui.target.GetTransition("In_" + _activityId.ToString())?.Play();
-            
-            _activityCfg =  CommonDataManager.Tables.TblActivityOpenCfg.GetOrDefault(_activityId);
-            
+
+            _activityCfg = CommonDataManager.Tables.TblActivityOpenCfg.GetOrDefault(_activityId);
+
             _ui.m_loaBg.url = ResPathUtil.GetBgImgPath(_activityCfg.Res);
-            if(_activityId == 5)
+            if (_activityId == 5)
             {
                 _ui.m_card.target.visible = true;
                 float width = 2560;
@@ -75,7 +76,7 @@ namespace GFGGame
                 float proportion = width / height;
                 float targetWidth = proportion * _ui.target.height;
                 _ui.m_card.m_ComCardImgRes.target.width = targetWidth;
-                _ui.m_card.m_ComCardImgRes.m_loaCard.url = ResPathUtil.GetBgImgPath("bg_jfyl","jpg");
+                _ui.m_card.m_ComCardImgRes.m_loaCard.url = ResPathUtil.GetBgImgPath("bg_jfyl", "jpg");
             }
             else if (_activityId == 7)
             {
@@ -91,6 +92,7 @@ namespace GFGGame
             {
                 _ui.m_card.target.visible = false;
             }
+
             // _ui.m_btnTask.target.visible = false;
             UpdateEffect();
             UpdateRedDot();
@@ -111,11 +113,13 @@ namespace GFGGame
 
             _effectUIDic.Clear();
         }
+
         protected override void RemoveEventListener()
         {
             base.RemoveEventListener();
             EventAgent.RemoveEventListener(ConstMessage.RED_CHANGE, UpdateRedDot);
         }
+
         private void OnBtnBackClick()
         {
             Hide();
@@ -123,16 +127,21 @@ namespace GFGGame
 
         private void OnBtnTaskClick()
         {
-            _activityId = ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitLuckyBox);
-            if (_activityId <= 0) {
+            _activityId =
+                ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitLuckyBox);
+            if (_activityId <= 0)
+            {
                 PromptController.Instance.ShowFloatTextPrompt("活动已结束");
                 return;
             }
+
             ViewManager.Show<ActivityThemeLuckyBoxTaskView>(_activityId);
         }
+
         private void OnBtnChapterClick()
         {
-            _activityId = ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitLuckyBox);
+            _activityId =
+                ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitLuckyBox);
             if (_activityId <= 0)
             {
                 PromptController.Instance.ShowFloatTextPrompt("活动已结束");
@@ -140,7 +149,7 @@ namespace GFGGame
             }
 
             int type = _activityCfg.Type;
-            if(type == 1)
+            if (type == 1)
             {
                 // 剧情+战斗混合
                 ViewManager.Show<StudioActivityView>();
@@ -150,16 +159,18 @@ namespace GFGGame
                 // 纯战斗
                 ViewManager.Show<ActivityStoryChapterView>(_activityId);
             }
-            
         }
+
         private void OnBtnLuckyBoxClick()
         {
-            _activityId = ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitLuckyBox);
+            _activityId =
+                ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitLuckyBox);
             if (_activityId <= 0)
             {
                 PromptController.Instance.ShowFloatTextPrompt("活动已结束");
                 return;
             }
+
             long endTime = TimeUtil.DateTimeToTimestamp(_activityCfg.EndTime);
             long curTime = TimeHelper.ServerNow();
             if (endTime < curTime) return;
@@ -168,13 +179,16 @@ namespace GFGGame
 
         private void OnBtnShopClick()
         {
-            _activityId = ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitLuckyBox);
+            _activityId =
+                ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitLuckyBox);
             if (_activityId <= 0)
             {
                 PromptController.Instance.ShowFloatTextPrompt("活动已结束");
                 return;
             }
-            ViewManager.Show<StoreView>(new object[] { ConstStoreTabId.STORE_EXCHANGE, ConstStoreSubId.STORE_GIFT_BAG_ACTIVITY });
+
+            ViewManager.Show<StoreView>(new object[]
+                { ConstStoreTabId.STORE_EXCHANGE, ConstStoreSubId.STORE_GIFT_BAG_ACTIVITY });
         }
 
         private void UpdateTime(object param = null)
@@ -186,6 +200,7 @@ namespace GFGGame
                 Timers.inst.Remove(UpdateTime);
                 return;
             }
+
             TimeUtil.FormattingTime(curTime, endTime, out int num, out string str);
             string timeStr = TimeUtil.FormattingTimeTo_DDHHmm(endTime - curTime);
             _ui.m_txtTime.text = timeStr;
@@ -197,25 +212,30 @@ namespace GFGGame
                 ((GTextField)activityTimeText).text = timeStr;
             }
         }
+
         private void UpdateRedDot()
         {
             RedDotController.Instance.SetComRedDot(_ui.m_btnLuckyBox.target
-                , RedDotDataManager.Instance.GetMeiRiTeHuiRed() || RedDotDataManager.Instance.GetActLuckyBoxRewardRed(ConstLimitTimeActivityType.ActLimitLuckyBox) 
-                || RedDotDataManager.Instance.GetGiftBagRewardRed(), "", -70, 45);
-            RedDotController.Instance.SetComRedDot(_ui.m_btnTask.target, RedDotDataManager.Instance.GetActLuckyBoxTaskdRed());
+                , RedDotDataManager.Instance.GetMeiRiTeHuiRed() || RedDotDataManager.Instance.GetActLuckyBoxRewardRed(
+                                                                    ConstLimitTimeActivityType.ActLimitLuckyBox)
+                                                                || RedDotDataManager.Instance.GetGiftBagRewardRed(), "",
+                -70, 45);
+            RedDotController.Instance.SetComRedDot(_ui.m_btnTask.target,
+                RedDotDataManager.Instance.GetActLuckyBoxTaskdRed());
 
             int type = _activityCfg.Type;
 
             // 剧情战斗混合
-            if(type == 1)
+            if (type == 1)
             {
-                RedDotController.Instance.SetComRedDot(_ui.m_btnChapter.target, RedDotDataManager.Instance.GetActLuckyBoxStudioFilingRed(),"",-60,60);
+                RedDotController.Instance.SetComRedDot(_ui.m_btnChapter.target,
+                    RedDotDataManager.Instance.GetActLuckyBoxStudioFilingRed(), "", -60, 60);
             }
             else
             {
-                RedDotController.Instance.SetComRedDot(_ui.m_btnChapter.target, RedDotDataManager.Instance.CheckActivityLuckyBoxCanChallenge(300, _activityId));
+                RedDotController.Instance.SetComRedDot(_ui.m_btnChapter.target,
+                    RedDotDataManager.Instance.CheckActivityLuckyBoxCanChallenge(300, _activityId));
             }
-            
         }
 
         private void UpdateEffect()
@@ -224,37 +244,119 @@ namespace GFGGame
             if (_activityId == 2)
             {
                 // Effect
-                _effectUIDic.Add("All_tx", EffectUIPool.CreateEffectUI(_ui.m_bgEffectHolder, "ui_Activity/New_CK_Flower", "All_tx"));
-                _effectUIDic.Add("L", EffectUIPool.CreateEffectUI(_ui.m_btnLuckyBox.m_effectHolder, "ui_Activity/New_CK_Flower", "L"));
-                _effectUIDic.Add("R", EffectUIPool.CreateEffectUI(_ui.m_btnChapter.m_effectHolder, "ui_Activity/New_CK_Flower", "R"));
+                EffectUIPool.CreateEffectUI(_ui.m_bgEffectHolder, "ui_Activity/New_CK_Flower", "All_tx",
+                    onComplete: (effect) =>
+                    {
+                        if (effect != null)
+                        {
+                            _effectUIDic.Add("All_tx", effect);
+                        }
+                    });
+                EffectUIPool.CreateEffectUI(_ui.m_btnLuckyBox.m_effectHolder, "ui_Activity/New_CK_Flower", "L",
+                    onComplete: (effect) =>
+                    {
+                        if (effect != null)
+                        {
+                            _effectUIDic.Add("L", effect);
+                        }
+                    });
+                EffectUIPool.CreateEffectUI(_ui.m_btnChapter.m_effectHolder, "ui_Activity/New_CK_Flower", "R",
+                    onComplete: (effect) =>
+                    {
+                        if (effect != null)
+                        {
+                            _effectUIDic.Add("R", effect);
+                        }
+                    });
             }
 
             // 3表示 水月镜花
-            else if(_activityId == 4)
+            else if (_activityId == 4)
             {
-                _effectUIDic.Add("All_tx", EffectUIPool.CreateEffectUI(_ui.m_bgEffectHolder, "ui_Activity", "SYJHbgtx"));
-                _effectUIDic.Add("L", EffectUIPool.CreateEffectUI(_ui.m_btnLuckyBox.m_effectHolder, "ui_Activity", "SYJH_icon_tx_L"));
-                _effectUIDic.Add("R", EffectUIPool.CreateEffectUI(_ui.m_btnChapter.m_effectHolder, "ui_Activity", "SYJH_icon_tx_R"));
+                EffectUIPool.CreateEffectUI(_ui.m_bgEffectHolder, "ui_Activity", "SYJHbgtx",
+                    onComplete: (effect) =>
+                    {
+                        if (effect != null)
+                        {
+                            _effectUIDic.Add("All_tx", effect);
+                        }
+                    });
+
+                EffectUIPool.CreateEffectUI(_ui.m_btnLuckyBox.m_effectHolder, "ui_Activity", "SYJH_icon_tx_L",
+                    onComplete: (effect) =>
+                    {
+                        if (effect != null)
+                        {
+                            _effectUIDic.Add("L", effect);
+                        }
+                    });
+
+                EffectUIPool.CreateEffectUI(_ui.m_btnChapter.m_effectHolder, "ui_Activity", "SYJH_icon_tx_R",
+                    onComplete: (effect) =>
+                    {
+                        if (effect != null)
+                        {
+                            _effectUIDic.Add("R", effect);
+                        }
+                    });
             }
             else
             {
-                _effectUIDic.Add("All_tx", EffectUIPool.CreateEffectUI(_ui.m_bgEffectHolder, "ui_Activity/JFYL_All_tx", "JFYL_All_tx"));
-                _effectUIDic.Add("L", EffectUIPool.CreateEffectUI(_ui.m_btnLuckyBox.m_effectHolder, "ui_Activity/JFYL_Button_L", "JFYL_Button_L"));
-                _effectUIDic.Add("R", EffectUIPool.CreateEffectUI(_ui.m_btnChapter.m_effectHolder, "ui_Activity/JFYL_Button_R", "JFYL_Button_R"));
-                _effectUIDic.Add("textEff", EffectUIPool.CreateEffectUI(_ui.m_textEffect, "ui_Activity/JFYL_Text", "JFYL_Text"));
+                EffectUIPool.CreateEffectUI(_ui.m_bgEffectHolder, "ui_Activity/JFYL_All_tx", "JFYL_All_tx",
+                    onComplete: (effect) =>
+                    {
+                        if (effect != null)
+                        {
+                            _effectUIDic.Add("All_tx", effect);
+                        }
+                    });
+
+
+                EffectUIPool.CreateEffectUI(_ui.m_btnLuckyBox.m_effectHolder, "ui_Activity/JFYL_Button_L",
+                    "JFYL_Button_L",
+                    onComplete: (effect) =>
+                    {
+                        if (effect != null)
+                        {
+                            _effectUIDic.Add("L", effect);
+                        }
+                    });
+
+
+                EffectUIPool.CreateEffectUI(_ui.m_btnChapter.m_effectHolder, "ui_Activity/JFYL_Button_R",
+                    "JFYL_Button_R",
+                    onComplete: (effect) =>
+                    {
+                        if (effect != null)
+                        {
+                            _effectUIDic.Add("R", effect);
+                        }
+                    });
+
+
+                EffectUIPool.CreateEffectUI(_ui.m_textEffect, "ui_Activity/JFYL_Text", "JFYL_Text",
+                    onComplete: (effect) =>
+                    {
+                        if (effect != null)
+                        {
+                            _effectUIDic.Add("textEff", effect);
+                        }
+                    });
             }
         }
+
         private void PreloadSuitModel()
         {
             List<int> suitIDList = CommonDataManager.Tables.TblActivityOpenCfg.GetOrDefault(2).Params2;
-            
+
             for (int i = 0; i < suitIDList.Count; i++)
             {
                 SuitCfg suitCfg = CommonDataManager.Tables.TblSuitCfg.GetOrDefault(suitIDList[i]);
                 ResType resType = ResType.Sprite;
                 if (suitCfg.AniRes != "")
                     resType = ResType.Animation;
-                PreDownloadManager.Instance.PreDownloadSuitRes(suitIDList[i], resType, new int[] { ConstDressUpItemType.BEI_JING }, true);
+                PreDownloadManager.Instance.PreDownloadSuitRes(suitIDList[i], resType,
+                    new int[] { ConstDressUpItemType.BEI_JING }, true);
             }
         }
     }

+ 8 - 1
GameClient/Assets/Game/HotUpdate/Views/ActivityWanShiLiUI/ActivityWanShiLiView.cs

@@ -51,7 +51,14 @@ namespace GFGGame
             InitReward();
 
             _ui.m_btnBack.onClick.Add(Hide);
-            effect = EffectUIPool.CreateEffectUI(_ui.m_holder, "ui_Activity", "Activity_18_CQ");
+            EffectUIPool.CreateEffectUI(_ui.m_holder, "ui_Activity", "Activity_18_CQ",
+                onComplete: (effect2) =>
+                {
+                    if (effect2 != null)
+                    {
+                        effect = effect2;
+                    }
+                });
         }
 
         protected override void AddEventListener()

+ 12 - 6
GameClient/Assets/Game/HotUpdate/Views/Arena/ArenaLoadingView.cs

@@ -22,6 +22,7 @@ namespace GFGGame
                 _ui.Dispose();
                 _ui = null;
             }
+
             base.Dispose();
         }
 
@@ -34,25 +35,32 @@ namespace GFGGame
             isfullScreen = true;
             //isReturnView = true;
 
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holder, "ui_dljm", "ui_dljm_jdt_tw");
+            EffectUIPool.CreateEffectUI(_ui.m_holder, "ui_dljm", "ui_dljm_jdt_tw",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
         }
 
         protected override void AddEventListener()
         {
             base.AddEventListener();
-
         }
+
         protected override void OnShown()
         {
             base.OnShown();
             string res = CommonDataManager.Tables.TblArenaOpenCfg.GetOrDefault(ArenaDataManager.Instance.SeasonId).Res;
-            
+
             _ui.m_loaBg.url = ResPathUtil.GetBgImgPath(res);
 
             _ui.m_progressBar1.TweenValue(100, 1).OnComplete(Hide);
 
             List<TipsDescCfg> tipsArray = CommonDataManager.Tables.TblTipsDescCfg.DataList;
-            
+
             System.Random rand = new System.Random();
             _ui.m_txtDescLeft.text = tipsArray[rand.Next(0, tipsArray.Count)].Text;
         }
@@ -66,8 +74,6 @@ namespace GFGGame
         protected override void RemoveEventListener()
         {
             base.RemoveEventListener();
-
         }
-
     }
 }

+ 16 - 2
GameClient/Assets/Game/HotUpdate/Views/Bag/GiftBoxSelectorView.cs

@@ -116,10 +116,24 @@ namespace GFGGame
         private void AddEffect()
         {
             //边框左上角特效
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holderLeftTop, "ui_Activity", "Com_window_L_up");
+            EffectUIPool.CreateEffectUI(_ui.m_holderLeftTop, "ui_Activity", "Com_window_L_up",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
 
             //边框右下角特效
-            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_holderRightDowm, "ui_Activity", "Com_window_R_Down");
+            EffectUIPool.CreateEffectUI(_ui.m_holderRightDowm, "ui_Activity", "Com_window_R_Down",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                    }
+                });
         }
 
         protected override void RemoveEventListener()

+ 44 - 14
GameClient/Assets/Game/HotUpdate/Views/Card/CardDetailView.cs

@@ -20,12 +20,14 @@ namespace GFGGame
             {
                 EffectUIPool.Recycle(v);
             }
+
             _effectUIList.Clear();
 
             if (_ui != null)
             {
                 _ui.Dispose();
             }
+
             _ui = null;
             base.Dispose();
         }
@@ -56,6 +58,7 @@ namespace GFGGame
             // });
             _startInAnim = true;
         }
+
         protected override void AddEventListener()
         {
             base.AddEventListener();
@@ -66,6 +69,7 @@ namespace GFGGame
             EventAgent.AddEventListener(ConstMessage.CARD_UP_SKILL, UpdateCardList);
             EventAgent.AddEventListener(ConstMessage.CARD_STAR_REWARD, UpdateCardList);
         }
+
         protected async override void OnShown()
         {
             base.OnShown();
@@ -77,6 +81,7 @@ namespace GFGGame
             {
                 return;
             }
+
             //ViewManager.Hide<ModalStatusView>();
             int listRoleSelect = this.viewData != null ? (int)this.viewData : 0;
             _ui.m_listRole.selectedIndex = listRoleSelect;
@@ -92,12 +97,14 @@ namespace GFGGame
                 //_ui.m_In.Play();
             }
         }
+
         protected override void OnHide()
         {
             base.OnHide();
             this.Clear();
             Timers.inst.Remove(CheckGuide);
         }
+
         protected override void RemoveEventListener()
         {
             base.RemoveEventListener();
@@ -124,6 +131,7 @@ namespace GFGGame
                 //筛选
                 cardList = CardDataManager.FilterCardList(cardList);
             }
+
             cardList = CardDataManager.SortItemList(cardList);
 
             _ui.m_comListCard.m_listCard.data = cardList;
@@ -135,18 +143,24 @@ namespace GFGGame
         private void RenderListCardItem(int index, GObject obj)
         {
             UI_ListCardItem listItem = UI_ListCardItem.Proxy(obj);
-            CardData data = (_ui.m_comListCard.m_listCard.data as List<CardData>)[index];//CardDataManager.GetCardList(_ui.m_listRole.selectedIndex)[index];
+            CardData
+                data = (_ui.m_comListCard.m_listCard
+                    .data as List<CardData>)[index]; //CardDataManager.GetCardList(_ui.m_listRole.selectedIndex)[index];
             data.index = index;
             data.pageIndex = _ui.m_listRole.selectedIndex;
             listItem.target.data = data;
             listItem.m_comCard.m_loaCard.url = ResPathUtil.GetCardIconPath(data.resources[data.resIndex]);
-            RarityIconController.UpdateRarityIcon(listItem.m_loaRarity, data.itemCfg.Id, false);// ResPathUtil.GetCommonGameResPath("kp_sxing_x_" + data.itemCfg.rarity);
+            RarityIconController.UpdateRarityIcon(listItem.m_loaRarity, data.itemCfg.Id,
+                false); // ResPathUtil.GetCommonGameResPath("kp_sxing_x_" + data.itemCfg.rarity);
             listItem.m_loaMainScore.url = ResPathUtil.GetCommonGameResPath("kp_sx_" + (data.itemCfg.MainScore));
 
-            listItem.m_loaBorder.url = "ui://CommonGame/kp_kuang_" + data.itemCfg.Rarity;//ResPathUtil.GetCommonGameResPath("kp_sxing_x_" + data.itemCfg.rarity);
+            listItem.m_loaBorder.url =
+                "ui://CommonGame/kp_kuang_" +
+                data.itemCfg.Rarity; //ResPathUtil.GetCommonGameResPath("kp_sxing_x_" + data.itemCfg.rarity);
             listItem.m_txtLv.text = data.lv + "级";
             listItem.m_txtName.text = data.itemCfg.Name;
-            RedDotController.Instance.SetComRedDot(listItem.target, RedDotDataManager.Instance.GetCardRed(data.id), "", 5, -10);
+            RedDotController.Instance.SetComRedDot(listItem.target, RedDotDataManager.Instance.GetCardRed(data.id), "",
+                5, -10);
             listItem.m_rarity.selectedIndex = data.itemCfg.Rarity;
 
             if (data.itemCfg.Rarity == 5)
@@ -154,19 +168,33 @@ namespace GFGGame
                 if (listItem.m_holderGoldBg.m_used.visible)
                 {
                     listItem.m_holderGoldBg.m_used.visible = false;
-                    _effectUIList.Add(EffectUIPool.CreateEffectUI(listItem.m_holderGoldBg.m_holderBg, "ui_KP", "KP_Gold_Frame"));
+                    EffectUIPool.CreateEffectUI(listItem.m_holderGoldBg.m_holderBg, "ui_KP", "KP_Gold_Frame",
+                        onComplete: (effect) =>
+                        {
+                            if (effect != null)
+                            {
+                                _effectUIList.Add(effect);
+                            }
+                        });
                 }
-                    
             }
             else if (data.itemCfg.Rarity == 3)
             {
                 if (listItem.m_holderPurpleBg.m_used.visible)
                 {
                     listItem.m_holderPurpleBg.m_used.visible = false;
-                    _effectUIList.Add(EffectUIPool.CreateEffectUI(listItem.m_holderPurpleBg.m_holderBg, "ui_KP", "KP_Purple_Frame"));
+                    EffectUIPool.CreateEffectUI(listItem.m_holderPurpleBg.m_holderBg, "ui_KP",
+                        "KP_Purple_Frame",
+                        onComplete: (effect) =>
+                        {
+                            if (effect != null)
+                            {
+                                _effectUIList.Add(effect);
+                            }
+                        });
                 }
             }
-            
+
             int starLevelDodge = data.star / 6;
             listItem.m_starNumType.selectedIndex = data.itemCfg.StarDesc.Count - 1;
             for (int i = 0; i < data.itemCfg.StarDesc.Count; i++)
@@ -185,8 +213,8 @@ namespace GFGGame
             cardData.fromUIType = typeof(CardDetailView).FullName;
             ViewManager.Show<CardFosterView>((context.data as GObject).data);
             // this.Clear();
-
         }
+
         private void RenderListRoleItem(int index, GObject obj)
         {
             obj.data = index == 0 ? 0 : index;
@@ -213,6 +241,7 @@ namespace GFGGame
         {
             ViewManager.Show<CardFilterView>();
         }
+
         private void OnClickBtnBack()
         {
             ViewManager.GoBackFrom(typeof(CardDetailView).FullName);
@@ -223,6 +252,7 @@ namespace GFGGame
         {
             GameController.GoBackToMainView();
         }
+
         private void Clear()
         {
             // this._selectType = 0;
@@ -234,8 +264,8 @@ namespace GFGGame
         private void CheckGuide(object param)
         {
             if (GuideDataManager.IsGuideFinish(ConstGuideId.UP_CARD_LV) <= 0
-            || GuideDataManager.IsGuideFinish(ConstGuideId.ENTER_CHAPTER_1) <= 0
-            || GuideDataManager.IsGuideFinish(ConstGuideId.UP_CARD_STAR) <= 0)
+                || GuideDataManager.IsGuideFinish(ConstGuideId.ENTER_CHAPTER_1) <= 0
+                || GuideDataManager.IsGuideFinish(ConstGuideId.UP_CARD_STAR) <= 0)
             {
                 UpdateToCheckGuide(null);
             }
@@ -244,6 +274,7 @@ namespace GFGGame
                 Timers.inst.Remove(CheckGuide);
             }
         }
+
         protected override void UpdateToCheckGuide(object param)
         {
             if (!ViewManager.CheckIsTopView(this.viewCom)) return;
@@ -255,14 +286,13 @@ namespace GFGGame
             GuideController.TryGuide(_ui.m_btnBack, ConstGuideId.UP_CARD_STAR, 8, "");
             GuideController.TryCompleteGuide(ConstGuideId.UP_CARD_STAR, 8);
         }
+
         protected override void TryCompleteGuide()
         {
             base.TryCompleteGuide();
 
             GuideController.TryCompleteGuideIndex(ConstGuideId.UP_CARD_STAR, 8);
             GuideController.TryCompleteGuide(ConstGuideId.UP_CARD_STAR, 8);
-
         }
     }
-}
-
+}

+ 73 - 9
GameClient/Assets/Game/HotUpdate/Views/Card/CardFosterView.cs

@@ -152,8 +152,22 @@ namespace GFGGame
             _ui.m_comCard.target.onTouchBegin.Add(onTouchCardBegin);
             _ui.m_comCard.target.onTouchEnd.Add(onTouchCardEnd);
 
-            _effectUI3 = EffectUIPool.CreateEffectUI(_ui.m_ComFosterBottom.m_holderflower, "ui_Activity", "SX_Top_TX");
-            _effectUI4 = EffectUIPool.CreateEffectUI(_ui.m_ComFosterBottom.m_holderfBgEff, "ui_Activity", "SX_Down_TX");
+            EffectUIPool.CreateEffectUI(_ui.m_ComFosterBottom.m_holderflower, "ui_Activity", "SX_Top_TX",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI3 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_ComFosterBottom.m_holderfBgEff, "ui_Activity", "SX_Down_TX",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI4 = effect;
+                    }
+                });
 
             _valueBarController = new ValueBarController(_ui.m_ComFosterTop.m_comValueBar, 5);
 
@@ -469,7 +483,15 @@ namespace GFGGame
             if (effLight)
             {
                 EffectUIPool.Recycle(_effectUI6);
-                _effectUI6 = EffectUIPool.CreateEffectUI(_comFosterBottom.m_holderbarLv, "ui_Activity", "SX_JinDuTiao");
+                EffectUIPool.CreateEffectUI(_comFosterBottom.m_holderbarLv, "ui_Activity", "SX_JinDuTiao",
+                    onComplete: (effect) =>
+                    {
+                        if (effect != null)
+                        {
+                            _effectUI6 = effect;
+                        }
+                    });
+                ;
             }
 
             int maxLv = CommonDataManager.Tables.TblCardRarityCfg.GetOrDefault(_cardData.itemCfg.Rarity).MaxCardLvl;
@@ -551,7 +573,14 @@ namespace GFGGame
             Timers.inst.Add(0.3f, 0, OnTimedEvent);
 
             EffectUIPool.Recycle(_effectUI5);
-            _effectUI5 = EffectUIPool.CreateEffectUI(_listEffectHolder[index], "ui_Activity", "SX_DianJi");
+            EffectUIPool.CreateEffectUI(_listEffectHolder[index], "ui_Activity", "SX_DianJi",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI5 = effect;
+                    }
+                });
         }
 
         private void OnTimedEvent(object param)
@@ -726,7 +755,14 @@ namespace GFGGame
             }
 
             //按钮点击特效
-            _effectUI7 = EffectUIPool.CreateEffectUI(_ui.m_ComFosterBottom.m_holderTouchFlower, "ui_Activity", "SX_DJ");
+            EffectUIPool.CreateEffectUI(_ui.m_ComFosterBottom.m_holderTouchFlower, "ui_Activity", "SX_DJ",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI7 = effect;
+                    }
+                });
 
             int itemMoneyId = CommonDataManager.Tables.TblItemCfg.GetOrDefault(upgradeCardItemsArr[0])
                 .CardUpLvGolds[_cardData.itemCfg.Rarity - 1].ItemId;
@@ -1001,7 +1037,14 @@ namespace GFGGame
             }
 
             //按钮点击特效
-            _effectUI7 = EffectUIPool.CreateEffectUI(_ui.m_ComFosterBottom.m_holderTouchFlower, "ui_Activity", "SX_DJ");
+            EffectUIPool.CreateEffectUI(_ui.m_ComFosterBottom.m_holderTouchFlower, "ui_Activity", "SX_DJ",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI7 = effect;
+                    }
+                });
 
 
             CardStarCfg cardStarCfg = CommonDataManager.Tables.TblCardStarCfg.Get(_cardData.id, _cardData.star);
@@ -1075,7 +1118,14 @@ namespace GFGGame
 
             _ui.m_touchLayer.touchable = true;
             //升星字体特效
-            _effectUI8 = EffectUIPool.CreateEffectUI(_ui.m_ComFosterBottom.m_holderUpStar, "ui_Activity", "SX_Text_01");
+            EffectUIPool.CreateEffectUI(_ui.m_ComFosterBottom.m_holderUpStar, "ui_Activity", "SX_Text_01",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI8 = effect;
+                    }
+                });
             _ui.m_ComFosterBottom.m_starItemAlpha.Play();
             Timers.inst.Add(0.3f, 1, EffectTaril);
         }
@@ -1092,7 +1142,14 @@ namespace GFGGame
             UI_ComDodgeStar dodgeStar =
                 UI_ComDodgeStar.Proxy(_comFosterBottom.target.GetChild("dodgeStar" + (starLevelDodge - 1)));
             //升星字体拖尾特效
-            _effectUI9 = EffectUIPool.CreateEffectUI(dodgeStar.m_holderUpStarMove, "ui_Activity", "SX_Text_Taril_02");
+            EffectUIPool.CreateEffectUI(dodgeStar.m_holderUpStarMove, "ui_Activity", "SX_Text_Taril_02",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI9 = effect;
+                    }
+                });
             UI_ComDodgeStar.ProxyEnd();
             UpdateUpStarOfText();
             Timers.inst.Add(1.4f, 1, EffectStar);
@@ -1116,7 +1173,14 @@ namespace GFGGame
             UI_ComDodgeStar dodgeStar =
                 UI_ComDodgeStar.Proxy(_comFosterBottom.target.GetChild("dodgeStar" + (starLevelDodge - 1)));
             //星星特效
-            _effectUI10 = EffectUIPool.CreateEffectUI(dodgeStar.m_holderStarLight, "ui_Activity", "SX_Text_STAR_03");
+            EffectUIPool.CreateEffectUI(dodgeStar.m_holderStarLight, "ui_Activity", "SX_Text_STAR_03",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI10 = effect;
+                    }
+                });
             UI_ComDodgeStar.ProxyEnd();
 
             Timers.inst.Add(0.7f, 1, (obj) =>

+ 8 - 1
GameClient/Assets/Game/HotUpdate/Views/Card/CardSkillView.cs

@@ -101,7 +101,14 @@ namespace GFGGame
                 _effectUI1 = null;
             }
 
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holderIcon, "ui_Activity", "SX_KP_JN_tx", 170);
+            EffectUIPool.CreateEffectUI(_ui.m_holderIcon, "ui_Activity", "SX_KP_JN_tx", 170,
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
         }
 
         private void UpdateComLv(UI_ComSkillDiscribe com, int lv, string title)

+ 16 - 2
GameClient/Assets/Game/HotUpdate/Views/Card/CardUpLevelView.cs

@@ -192,9 +192,23 @@ namespace GFGGame
         private void AddEffect()
         {
             //边框左上角特效
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holderLeftTop, "ui_Activity", "Com_window_L_up");
+            EffectUIPool.CreateEffectUI(_ui.m_holderLeftTop, "ui_Activity", "Com_window_L_up",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
             //边框右下角特效
-            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_holderRightDowm, "ui_Activity", "Com_window_R_Down");
+            EffectUIPool.CreateEffectUI(_ui.m_holderRightDowm, "ui_Activity", "Com_window_R_Down",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                    }
+                });
         }
 
         private void RenderListItem(int index, GObject obj)

+ 37 - 8
GameClient/Assets/Game/HotUpdate/Views/Card/CardUpView.cs

@@ -32,6 +32,7 @@ namespace GFGGame
                 _ui.Dispose();
                 _ui = null;
             }
+
             base.Dispose();
         }
 
@@ -87,6 +88,7 @@ namespace GFGGame
                     _mainScore += cardLvCfg.MainScore;
                     _otherScore += cardLvCfg.OtherScore;
                 }
+
                 _ui.m_listProperty.numItems = _scores.Count;
                 _ui.m_listLastProperty.numItems = _scores.Count;
             }
@@ -102,23 +104,47 @@ namespace GFGGame
                 _ui.m_listCardProperty.numItems = 1;
                 _ui.m_listLastCardProperty.numItems = 1;
             }
-            else { 
+            else
+            {
                 _ui.m_c1.selectedIndex = 2;
                 _cardStarCfg = CommonDataManager.Tables.TblCardStarCfg.Get(_cardId, _lastNum);
                 if (_cardStarCfg == null)
-                    ET.Log.Error("RenderListCardPropertyItemd _cardStarCfg 2 is null=" + _fromUIType +"=="+ _cardId + "==" + _lastNum);
+                    ET.Log.Error("RenderListCardPropertyItemd _cardStarCfg 2 is null=" + _fromUIType + "==" + _cardId +
+                                 "==" + _lastNum);
                 _cardLvCfg = null;
                 _ui.m_listCardProperty.numItems = 1;
                 _ui.m_listLastCardProperty.numItems = 1;
             }
+
             Timers.inst.AddUpdate(CheckGuide);
 
             if (_type == "lv")
-                _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holderTitle, "ui_hd", "GXSJ_Text");
+                EffectUIPool.CreateEffectUI(_ui.m_holderTitle, "ui_hd", "GXSJ_Text",
+                    onComplete: (effect) =>
+                    {
+                        if (effect != null)
+                        {
+                            _effectUI1 = effect;
+                        }
+                    });
             else
-                _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holderTitle, "ui_hd", "GXSX_Text");
+                EffectUIPool.CreateEffectUI(_ui.m_holderTitle, "ui_hd", "GXSX_Text",
+                    onComplete: (effect) =>
+                    {
+                        if (effect != null)
+                        {
+                            _effectUI1 = effect;
+                        }
+                    });
 
-            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_holderBgCom, "ui_hd", "TC_Quad_ALL");
+            EffectUIPool.CreateEffectUI(_ui.m_holderBgCom, "ui_hd", "TC_Quad_ALL",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                    }
+                });
         }
 
         private void RenderListLastCardPropertyItem(int index, GObject obj)
@@ -127,7 +153,8 @@ namespace GFGGame
             int score = 0;
             int typeIndex = 1;
             listItem.m_ArrowsType.selectedIndex = 2;
-            if (_cardStarCfg.Score1 > 0) {
+            if (_cardStarCfg.Score1 > 0)
+            {
                 typeIndex = 1;
                 score = _scores[typeIndex] - _cardStarCfg.Score1;
             }
@@ -146,11 +173,12 @@ namespace GFGGame
                 typeIndex = 4;
                 score = _scores[typeIndex] - _cardStarCfg.Score4;
             }
+
             listItem.m_txtProperty.text = score.ToString();
             listItem.m_loaIcon.url = ResPathUtil.GetCommonGameResPath("kp_sx_" + (typeIndex));
             UI_ListScoreItem2.ProxyEnd();
         }
-        
+
         private void RenderListLastPropertyItem(int index, GObject obj)
         {
             UI_ListScoreItem2 listItem = UI_ListScoreItem2.Proxy(obj);
@@ -210,7 +238,7 @@ namespace GFGGame
         private void CheckGuide(object param)
         {
             if (GuideDataManager.IsGuideFinish(ConstGuideId.UP_CARD_LV) <= 0
-             || GuideDataManager.IsGuideFinish(ConstGuideId.UP_CARD_STAR) <= 0)
+                || GuideDataManager.IsGuideFinish(ConstGuideId.UP_CARD_STAR) <= 0)
             {
                 UpdateToCheckGuide(null);
             }
@@ -219,6 +247,7 @@ namespace GFGGame
                 Timers.inst.Remove(CheckGuide);
             }
         }
+
         protected override void UpdateToCheckGuide(object param)
         {
             if (!ViewManager.CheckIsTopView(this.viewCom)) return;

+ 9 - 3
GameClient/Assets/Game/HotUpdate/Views/ClothingFoster/ClothingView.cs

@@ -314,9 +314,15 @@ namespace GFGGame
                 _effectUI1 = null;
             }
 
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_comFosterAni.m_holder, "ui_gcdh", "ui_gcdh_" + (_index + 1));
-
-
+            EffectUIPool.CreateEffectUI(_ui.m_comFosterAni.m_holder, "ui_gcdh", "ui_gcdh_" + (_index + 1),
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
+            
             _ui.m_comFosterAni.m_t0.Play(() =>
             {
                 ViewManager.Show<ClothingFosterFinishView>(new object[] { _suitId, _index, _propertyList });

+ 48 - 17
GameClient/Assets/Game/HotUpdate/Views/ClothingUpgarde/ClothingSelectView.cs

@@ -29,6 +29,7 @@ namespace GFGGame
                 _ui.Dispose();
                 _ui = null;
             }
+
             base.Dispose();
         }
 
@@ -44,9 +45,24 @@ namespace GFGGame
             _ui.m_btnBack.onClick.Add(OnClickBtnBack);
             _ui.m_selectList.itemRenderer = RenderListItem;
 
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_bgEffect, "ui_gyp", "GYP_ALL");
-            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_birdEffect, "ui_gyp", "GYP_Bird");
+            EffectUIPool.CreateEffectUI(_ui.m_bgEffect, "ui_gyp", "GYP_ALL",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_birdEffect, "ui_gyp", "GYP_Bird",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                    }
+                });
         }
+
         protected override void AddEventListener()
         {
             base.AddEventListener();
@@ -66,22 +82,25 @@ namespace GFGGame
             base.RemoveEventListener();
             EventAgent.RemoveEventListener(ConstMessage.COLLEGE_UPGRADE, UpdateList);
         }
+
         protected override void OnHide()
         {
             base.OnHide();
             Timers.inst.Remove(CheckGuide);
         }
+
         private void UpdateList()
         {
             _ui.m_selectList.numItems = CollectPartDataManager.Count;
         }
+
         private void RenderListItem(int index, GObject obj)
         {
             UI_clothingSelectItem listItem = UI_clothingSelectItem.Proxy(obj);
             int level;
             int levelNum;
             int addNum;
-            if(index < CollectPartDataManager.Count - 1)
+            if (index < CollectPartDataManager.Count - 1)
             {
                 //0表示所有部位,1~7表示各个部位
                 partIndex1 = 0;
@@ -92,40 +111,44 @@ namespace GFGGame
                 partIndex1 = 99;
                 partIndex2 = 99;
             }
+
             level = CollectPartDataManager.Instance.CollectPartDataDic[partIndex2][0];
             levelNum = CollectPartDataManager.Instance.CollectPartDataDic[partIndex2][1];
             if (IsOpenRank(partIndex2))
             {
                 listItem.target.visible = true;
-                RedDotController.Instance.SetComRedDot(listItem.target, CollectPartDataManager.Instance.CheckPartCanUP(partIndex2), "");
+                RedDotController.Instance.SetComRedDot(listItem.target,
+                    CollectPartDataManager.Instance.CheckPartCanUP(partIndex2), "");
                 if (levelNum > 0)
                 {
                     addNum = CommonDataManager.Tables.TblCollegeBoostCfg.Get(partIndex2, level, levelNum).Value;
                     float addNumPercentage = (float)addNum / CollectPartDataManager.Instance.AddtitionRatio;
                     listItem.m_c1.selectedIndex = 0;
-                    listItem.m_partIcon.url = string.Format("ui://ClothingUpgrade/{0}", CollectPartDataManager.Instance.partImage[partIndex2]);
+                    listItem.m_partIcon.url = string.Format("ui://ClothingUpgrade/{0}",
+                        CollectPartDataManager.Instance.partImage[partIndex2]);
                     CollegeRankCfg rankItemList = CommonDataManager.Tables.TblCollegeRankCfg.Get(partIndex1, level);
                     listItem.m_levelText.text = rankItemList.GradeName;
                     listItem.m_levelNumText.text = string.Format("{0}级", levelNum.ToString());
                     listItem.m_nameText.text = CollectPartDataManager.Instance.partNameDic[partIndex2];
                     listItem.m_levelDescText.text = string.Format("{0}%", addNumPercentage);
-
                 }
                 else
                 {
-
                     listItem.m_c1.selectedIndex = 0;
-                    listItem.m_partIcon.url = string.Format("ui://ClothingUpgrade/{0}", CollectPartDataManager.Instance.partImage[partIndex2]);
+                    listItem.m_partIcon.url = string.Format("ui://ClothingUpgrade/{0}",
+                        CollectPartDataManager.Instance.partImage[partIndex2]);
                     CollegeRankCfg rankItemList = CommonDataManager.Tables.TblCollegeRankCfg.Get(partIndex1, level);
                     listItem.m_levelText.text = rankItemList.GradeName;
                     listItem.m_levelNumText.text = string.Format("{0}级", "0");
                     listItem.m_nameText.text = CollectPartDataManager.Instance.partNameDic[partIndex2];
                     listItem.m_levelDescText.text = string.Format("{0}%", "0");
                 }
+
                 if (listItem.target.data == null)
                 {
                     listItem.target.onClick.Add(OnBtnItem);
                 }
+
                 listItem.target.data = partIndex2;
             }
             else
@@ -133,14 +156,16 @@ namespace GFGGame
                 listItem.m_c1.selectedIndex = 1;
                 listItem.target.visible = false;
             }
+
             UI_clothingSelectItem.ProxyEnd();
         }
-        private bool IsOpenRank(int partIndex,int levelNum = 9)
+
+        private bool IsOpenRank(int partIndex, int levelNum = 9)
         {
             List<int> openList;
             bool isRank = false;
             bool isLevel = false;
-            bool isPassStory = false ;
+            bool isPassStory = false;
             CollegeRankOpenCfg openitem = CommonDataManager.Tables.TblCollegeRankOpenCfg.GetOrDefault(partIndex);
             openList = GetOpenList(partIndex);
             //判断段位
@@ -158,13 +183,15 @@ namespace GFGGame
                     }
                 }
             }
+
             //判断等级
-            if(RoleDataManager.lvl >= openitem.NeedRoleLv)
+            if (RoleDataManager.lvl >= openitem.NeedRoleLv)
             {
                 isLevel = true;
             }
+
             //判断关卡
-            if(openitem.NeedStoryLevelId == 0 || InstanceZonesDataManager.CheckLevelPass(openitem.NeedStoryLevelId))
+            if (openitem.NeedStoryLevelId == 0 || InstanceZonesDataManager.CheckLevelPass(openitem.NeedStoryLevelId))
             {
                 isPassStory = true;
             }
@@ -173,8 +200,9 @@ namespace GFGGame
                 isPassStory = false;
             }
 
-            return isRank&&isLevel&&isPassStory;
+            return isRank && isLevel && isPassStory;
         }
+
         private List<int> GetOpenList(int partIndex)
         {
             List<int> openList = new List<int>();
@@ -188,6 +216,7 @@ namespace GFGGame
                     openList.Add(int.Parse(match.Value));
                 }
             }
+
             return openList;
         }
 
@@ -195,7 +224,7 @@ namespace GFGGame
         {
             GObject Item = context.sender as GObject;
             int partIndex = (int)Item.data;
-            if(IsOpenRank(partIndex))
+            if (IsOpenRank(partIndex))
             {
                 ViewManager.Show<ClothingUpgradeView>(new object[] { partIndex });
             }
@@ -209,6 +238,7 @@ namespace GFGGame
                 PromptController.Instance.ShowFloatTextPrompt("需要达到特定条件开启");
             }
         }
+
         private void OnClickBtnBack()
         {
             ViewManager.GoBackFrom(typeof(ClothingSelectView).FullName);
@@ -226,8 +256,9 @@ namespace GFGGame
         protected void UpdateCheckGuide(object param)
         {
             if (!ViewManager.CheckIsTopView(this.viewCom)) return;
-            GuideController.TryGuide(null, "ClothingSelectView", 4, "“估衣铺”里可以通过升级各个部位获得加成。", -1, true, _ui.target.height - 600);
-            GuideController.TryGuide(_ui.m_selectList, "ClothingSelectView", 5, "选择升级部位。",0);
+            GuideController.TryGuide(null, "ClothingSelectView", 4, "“估衣铺”里可以通过升级各个部位获得加成。", -1, true,
+                _ui.target.height - 600);
+            GuideController.TryGuide(_ui.m_selectList, "ClothingSelectView", 5, "选择升级部位。", 0);
         }
     }
-}
+}

+ 11 - 1
GameClient/Assets/Game/HotUpdate/Views/Common/ModalStatusView.cs

@@ -27,8 +27,16 @@ namespace GFGGame
             {
                 message = (string)viewData;
             }
+
             _ui.m_txtMessage.text = message;
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holder, "ui_cxlj", "ui_cxlj_gq");
+            EffectUIPool.CreateEffectUI(_ui.m_holder, "ui_cxlj", "ui_cxlj_gq",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
         }
 
         protected override void OnHide()
@@ -37,6 +45,7 @@ namespace GFGGame
             _effectUI1 = null;
             base.OnHide();
         }
+
         public override void Dispose()
         {
             if (_ui != null)
@@ -44,6 +53,7 @@ namespace GFGGame
                 _ui.Dispose();
                 _ui = null;
             }
+
             base.Dispose();
         }
     }

+ 11 - 3
GameClient/Assets/Game/HotUpdate/Views/CommonGame/FunctionOpenView.cs

@@ -22,6 +22,7 @@ namespace GFGGame
                 _ui.Dispose();
                 _ui = null;
             }
+
             base.Dispose();
         }
 
@@ -35,7 +36,6 @@ namespace GFGGame
             this.viewCom.Center();
             this.modal = true;
             this.clickBlankToClose = false;
-
         }
 
         protected override void OnShown()
@@ -56,6 +56,7 @@ namespace GFGGame
                 }
             }
         }
+
         private void UpdateFunIcon()
         {
             if (_funList.Count == 0)
@@ -63,7 +64,15 @@ namespace GFGGame
                 this.Hide();
                 return;
             }
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holder, "ui_xjs", "ui_xjs");
+
+            EffectUIPool.CreateEffectUI(_ui.m_holder, "ui_xjs", "ui_xjs",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
             FunctionOpenCfg cfg = CommonDataManager.Tables.TblFunctionOpenCfg.GetOrDefault(_funList[0]);
             _ui.m_ComFunctionOpen.m_txtName.text = cfg.Name;
             _ui.m_ComFunctionOpen.m_logIcon.url = ResPathUtil.GetCommonGameResPath(cfg.Res);
@@ -75,6 +84,5 @@ namespace GFGGame
         {
             base.OnHide();
         }
-
     }
 }

+ 8 - 1
GameClient/Assets/Game/HotUpdate/Views/CommonGame/GetSuitItemVIew.cs

@@ -48,7 +48,14 @@ namespace GFGGame
             _ui.m_loaBg.onClick.Add(OnClickBg);
             _ui.m_btnShare.onClick.Add(OnClickShare);
 
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holderEffect, "ui_ck", "ui_ck_tz");
+            EffectUIPool.CreateEffectUI(_ui.m_holderEffect, "ui_ck", "ui_ck_tz",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
         }
 
         void onShowAction()

+ 24 - 4
GameClient/Assets/Game/HotUpdate/Views/CommonGame/RewardView.cs

@@ -98,8 +98,22 @@ namespace GFGGame
             counTime += 1;
             if (counTime == 1)
             {
-                _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holderTitle, "ui_hd", "GXHD_Text");
-                _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_holderBgCom, "ui_hd", "TC_Quad_ALL");
+                EffectUIPool.CreateEffectUI(_ui.m_holderTitle, "ui_hd", "GXHD_Text",
+                    onComplete: (effect) =>
+                    {
+                        if (effect != null)
+                        {
+                            _effectUI1 = effect;
+                        }
+                    });
+                EffectUIPool.CreateEffectUI(_ui.m_holderBgCom, "ui_hd", "TC_Quad_ALL",
+                    onComplete: (effect) =>
+                    {
+                        if (effect != null)
+                        {
+                            _effectUI2 = effect;
+                        }
+                    });
             }
             else if (counTime == 2)
             {
@@ -203,8 +217,14 @@ namespace GFGGame
             int childIndex = _ui.m_comList.m_listReward.ItemIndexToChildIndex(index);
             if (_effects.Count <= childIndex)
             {
-                EffectUI _effectUI = EffectUIPool.CreateEffectUI(item.m_holderReware, "ui_hd", "GXHD_WuPin", 120);
-                _effects.Add(_effectUI);
+                EffectUIPool.CreateEffectUI(item.m_holderReware, "ui_hd", "GXHD_WuPin", 120,
+                    onComplete: (effect) =>
+                    {
+                        if (effect != null)
+                        {
+                            _effects.Add(effect);
+                        }
+                    });
             }
 
             if (item.target.data == null)

+ 36 - 9
GameClient/Assets/Game/HotUpdate/Views/CommonGame/SuitItemView.cs

@@ -10,8 +10,8 @@ namespace GFGGame
     {
         private UI_SuitItemUI _ui;
         private int suitID;
-        private int countSuitId;//当前获得的物品还有多少个相同套装的部件需要展示
-        private int count = 0;//套装当前拥有的部件数量
+        private int countSuitId; //当前获得的物品还有多少个相同套装的部件需要展示
+        private int count = 0; //套装当前拥有的部件数量
         private int totalCount = 1;
 
         private EffectUI _effectUI1;
@@ -31,6 +31,7 @@ namespace GFGGame
                 _ui.Dispose();
                 _ui = null;
             }
+
             base.Dispose();
         }
 
@@ -44,18 +45,42 @@ namespace GFGGame
             _ui.m_loaBg.onTouchBegin.Add(OnClickBg);
             _ui.m_probar.max = 0;
 
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_topEffect, "ui_LuckyBox", "SJJD_CradUp");
-            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_probarEffect, "ui_LuckyBox", "SJJD_CradUP_once");
-            _effectUI3 = EffectUIPool.CreateEffectUI(_ui.m_downEffect, "ui_LuckyBox", "SJJD_CradDown");
+            EffectUIPool.CreateEffectUI(_ui.m_topEffect, "ui_LuckyBox", "SJJD_CradUp",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_probarEffect, "ui_LuckyBox", "SJJD_CradUP_once",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_downEffect, "ui_LuckyBox", "SJJD_CradDown",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI3 = effect;
+                    }
+                });
         }
+
         protected override void OnShown()
         {
             base.OnShown();
             _ui.m_loaBg.touchable = false;
-            if (this.viewData != null) { 
+            if (this.viewData != null)
+            {
                 suitID = (int)(this.viewData as object[])[0];
                 countSuitId = (int)(this.viewData as object[])[1];
             }
+
             UpdateView();
             Timers.inst.Add(0.5f, 1, OnTimerClick);
         }
@@ -66,11 +91,12 @@ 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);
             }
+
             _ui.m_probar.max = totalCount;
             _ui.m_probar.value = count - 1;
             _ui.m_t_open.Play();
@@ -84,12 +110,13 @@ namespace GFGGame
 
         private void OnClickBg()
         {
-            if(!GetSuitItemController.isAuto)
+            if (!GetSuitItemController.isAuto)
             {
                 if (count == totalCount)
                 {
                     ViewManager.Show<GetSuitItemVIew>(suitID);
                 }
+
                 this.Hide();
                 //EventAgent.DispatchEvent(ConstMessage.LUCKY_BOX_SHOW_VIEW_CLOSE);
             }

+ 91 - 31
GameClient/Assets/Game/HotUpdate/Views/CreateRole/CreateRoleView.cs

@@ -65,38 +65,98 @@ namespace GFGGame
 
             _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("bg_yaoqinghan");
 
-            _effectUIDic.Add("FX_player",
-                EffectUIPool.CreateEffectUI(_ui.m_envelopeModel.m_envelope.m_playerClickTipEffectHolder,
-                    "ui_CreateRoleUI/Before_Open", "FX_player", 100, () =>
+            EffectUIPool.CreateEffectUI(_ui.m_envelopeModel.m_envelope.m_playerClickTipEffectHolder,
+                "ui_CreateRoleUI/Before_Open", "FX_player", 100, onComplete: (effect) =>
+                {
+                    _effectUIDic.Add("FX_player", effect);
+
+                    EffectUIPool.CreateEffectUI(_ui.m_envelopeModel.m_btnDice.m_holder,
+                        "ui_CreateRoleUI/After_Open",
+                        "FX_TZ_DJ", 100, (effect2) =>
+                        {
+                            _ui.m_envelopeModel.m_btnSure.onClick.Add(OnClickBtnSure);
+                            _effectUIDic.Add("FX_TZ_DJ", effect2);
+                        });
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_BgEffectHolder, "ui_CreateRoleUI/After_Open", "FX_ALL_BG",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUIDic.Add("FX_ALL_BG", effect);
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_envelopeModel.m_envelope.m_flowerEffectHolder,
+                "ui_CreateRoleUI/Before_Open", "FX_Flower",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUIDic.Add("FX_Flower", effect);
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_envelopeModel.m_envelope.m_LiuSuEffectHolder,
+                "ui_CreateRoleUI/Before_Open", "FX_LiuSu",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUIDic.Add("FX_LiuSu", effect);
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_envelopeModel.m_trailEffectHolder, "ui_CreateRoleUI/Before_Open",
+                "FX_taril",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
                     {
-                        _effectUIDic.Add("FX_TZ_DJ",
-                            EffectUIPool.CreateEffectUI(_ui.m_envelopeModel.m_btnDice.m_holder,
-                                "ui_CreateRoleUI/After_Open",
-                                "FX_TZ_DJ", 100, () => { _ui.m_envelopeModel.m_btnSure.onClick.Add(OnClickBtnSure); }));
-                    }));
-            _effectUIDic.Add("FX_ALL_BG",
-                EffectUIPool.CreateEffectUI(_ui.m_BgEffectHolder, "ui_CreateRoleUI/After_Open", "FX_ALL_BG"));
-            _effectUIDic.Add("FX_Flower",
-                EffectUIPool.CreateEffectUI(_ui.m_envelopeModel.m_envelope.m_flowerEffectHolder,
-                    "ui_CreateRoleUI/Before_Open", "FX_Flower"));
-            _effectUIDic.Add("FX_LiuSu",
-                EffectUIPool.CreateEffectUI(_ui.m_envelopeModel.m_envelope.m_LiuSuEffectHolder,
-                    "ui_CreateRoleUI/Before_Open", "FX_LiuSu"));
-            _effectUIDic.Add("FX_taril",
-                EffectUIPool.CreateEffectUI(_ui.m_envelopeModel.m_trailEffectHolder, "ui_CreateRoleUI/Before_Open",
-                    "FX_taril"));
-            _effectUIDic.Add("FX_XINF",
-                EffectUIPool.CreateEffectUI(_ui.m_envelopeModel.m_envelope.m_XINFEffectHolder,
-                    "ui_CreateRoleUI/Before_Open", "FX_XINF"));
-            _effectUIDic.Add("FX_Text",
-                EffectUIPool.CreateEffectUI(_ui.m_envelopeModel.m_TextEffectHolder, "ui_CreateRoleUI/After_Open",
-                    "FX_Text"));
-            _effectUIDic.Add("FX_ShanZi",
-                EffectUIPool.CreateEffectUI(_ui.m_envelopeModel.m_ShanZiEffectHolder, "ui_CreateRoleUI/After_Open",
-                    "FX_ShanZi"));
-            _effectUIDic.Add("FX_Niao",
-                EffectUIPool.CreateEffectUI(_ui.m_envelopeModel.m_NiaoEffectHolder, "ui_CreateRoleUI/After_Open",
-                    "FX_Niao"));
+                        _effectUIDic.Add("FX_taril", effect);
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_envelopeModel.m_envelope.m_XINFEffectHolder,
+                "ui_CreateRoleUI/Before_Open", "FX_XINF",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUIDic.Add("FX_XINF", effect);
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_envelopeModel.m_TextEffectHolder, "ui_CreateRoleUI/After_Open",
+                "FX_Text",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUIDic.Add("FX_Text", effect);
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_envelopeModel.m_ShanZiEffectHolder, "ui_CreateRoleUI/After_Open",
+                "FX_ShanZi",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUIDic.Add("FX_ShanZi", effect);
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_envelopeModel.m_NiaoEffectHolder, "ui_CreateRoleUI/After_Open",
+                "FX_Niao",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUIDic.Add("FX_Niao", effect);
+                    }
+                });
         }
 
         private void CreateUnityInputField(Action action = null)

+ 49 - 7
GameClient/Assets/Game/HotUpdate/Views/DailyWelfare/DailySignView.cs

@@ -64,10 +64,38 @@ namespace GFGGame
             _ui.m_btnClose.onClick.Add(Hide);
             _ui.m_list.itemRenderer = ListItemRender;
 
-            _effectUI0 = EffectUIPool.CreateEffectUI(_ui.m_holderFlower, "ui_league", "Answer_bgtx");
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holderLizi, "ui_Activity", "Everyday_2lizi");
-            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_holderRole, "ui_Activity", "Everydayy_people");
-            _effectUI4 = EffectUIPool.CreateEffectUI(_ui.m_proSign.m_holder, "ui_fight_new", "Progress_head");
+            EffectUIPool.CreateEffectUI(_ui.m_holderFlower, "ui_league", "Answer_bgtx",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI0 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_holderLizi, "ui_Activity", "Everyday_2lizi",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_holderRole, "ui_Activity", "Everydayy_people",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_proSign.m_holder, "ui_fight_new", "Progress_head",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI4 = effect;
+                    }
+                });
         }
 
         protected override void AddEventListener()
@@ -195,8 +223,15 @@ namespace GFGGame
                 {
                     if (_effectUI5 == null)
                     {
-                        _effectUI5 = EffectUIPool.CreateEffectUI(_ui.m_proSign.m_holderReward, "ui_Activity",
-                            "Everyday_enable");
+                        EffectUIPool.CreateEffectUI(_ui.m_proSign.m_holderReward, "ui_Activity",
+                            "Everyday_enable",
+                            onComplete: (effect) =>
+                            {
+                                if (effect != null)
+                                {
+                                    _effectUI5 = effect;
+                                }
+                            });
                     }
 
                     _ui.m_proSign.m_holderReward.visible = canGet;
@@ -262,7 +297,14 @@ namespace GFGGame
             bool isGot = MathUtil.isBitSet(GameGlobal.myNumericComponent.GetAsLong(NumericType.SignDay), bonusCfg.Day);
             if (bonusCfg.Day == _day && !isGot && _effectUI3 == null)
             {
-                _effectUI3 = EffectUIPool.CreateEffectUI(item.m_holderSign, "ui_Activity", "everyday_kuang");
+                EffectUIPool.CreateEffectUI(item.m_holderSign, "ui_Activity", "everyday_kuang",
+                    onComplete: (effect) =>
+                    {
+                        if (effect != null)
+                        {
+                            _effectUI3 = effect;
+                        }
+                    });
                 m_holderSign = item.m_holderSign;
             }
 

+ 34 - 6
GameClient/Assets/Game/HotUpdate/Views/DailyWelfare/DailySupplyView.cs

@@ -67,12 +67,40 @@ namespace GFGGame
 
         private void UpdateEffect()
         {
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holder, "ui_Activity", "Time_thing_book");
-            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_comSupply.m_holder, "ui_Activity", "Time_thing_hudie");
-            _effectUI3 = EffectUIPool.CreateEffectUI(_ui.m_comSupply.m_comSupply0.m_holder, "ui_Activity",
-                "Time_thing_zhuti");
-            _effectUI4 = EffectUIPool.CreateEffectUI(_ui.m_comSupply.m_comSupply1.m_holder, "ui_Activity",
-                "Time_thing_zhuti");
+            EffectUIPool.CreateEffectUI(_ui.m_holder, "ui_Activity", "Time_thing_book",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_comSupply.m_holder, "ui_Activity", "Time_thing_hudie",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_comSupply.m_comSupply0.m_holder, "ui_Activity",
+                "Time_thing_zhuti",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI3 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_comSupply.m_comSupply1.m_holder, "ui_Activity",
+                "Time_thing_zhuti",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI4 = effect;
+                    }
+                });
         }
 
         protected override void AddEventListener()

+ 109 - 14
GameClient/Assets/Game/HotUpdate/Views/EnduringGiftBox/EnduringGiftBoxView.cs

@@ -59,10 +59,21 @@ namespace GFGGame
         protected override void OnShown()
         {
             base.OnShown();
-            AddEffect();
-            _ui.m_t1.Play();
-            _ui.m_t2.Play();
-            _ui.m_t3.Play(CheckGuide);
+            AddEffect(() =>
+            {
+                // 确保所有特效加载完成后再播放动画
+                if (_effectUI1 != null && _effectUI1.IsLoaded &&
+                    _effectUI2 != null && _effectUI2.IsLoaded &&
+                    _effectUI3 != null && _effectUI3.IsLoaded &&
+                    _effectUI4 != null && _effectUI4.IsLoaded)
+                {
+                    _ui.m_t1.Play();
+                    _ui.m_t2.Play();
+                    _ui.m_t3.Play(CheckGuide);
+                }
+
+                UpdateView();
+            });
 
             UpdateView();
         }
@@ -81,26 +92,110 @@ namespace GFGGame
             base.RemoveEventListener();
         }
 
-        private void AddEffect()
+        private void AddEffect(Action onComplete)
         {
-            //小人
+            int effectsToLoad = 4;
+            int loadedCount = 0;
+            bool hasError = false;
+
+            Action effectLoaded = () =>
+            {
+                loadedCount++;
+                if (loadedCount == effectsToLoad)
+                {
+                    if (hasError)
+                    {
+                        // 处理加载失败的情况
+                        PromptController.Instance.ShowFloatTextPrompt("部分特效加载失败");
+                    }
+
+                    onComplete?.Invoke();
+                }
+            };
+
+            // 小人
             if (_itemId == ConstItemID.POWER)
             {
-                _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holderBaby, "ui_Activity", "Activity_people02");
+                EffectUIPool.CreateEffectUI(_ui.m_holderBaby, "ui_Activity", "Activity_people02",
+                    scale: 100, onComplete: (effect) =>
+                    {
+                        if (effect != null)
+                        {
+                            _effectUI1 = effect;
+                        }
+                        else
+                        {
+                            hasError = true;
+                        }
+
+                        effectLoaded();
+                    });
             }
             else
             {
-                _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holderBaby, "ui_Activity", "Activity_people01");
+                EffectUIPool.CreateEffectUI(_ui.m_holderBaby, "ui_Activity", "Activity_people01",
+                    scale: 100, onComplete: (effect) =>
+                    {
+                        if (effect != null)
+                        {
+                            _effectUI1 = effect;
+                        }
+                        else
+                        {
+                            hasError = true;
+                        }
+
+                        effectLoaded();
+                    });
             }
 
-            //爆发,大泡泡
-            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_holderPaoMax, "ui_Activity", "Activity_baofa");
+            // 爆发,大泡泡
+            EffectUIPool.CreateEffectUI(_ui.m_holderPaoMax, "ui_Activity", "Activity_baofa",
+                scale: 100, onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                    }
+                    else
+                    {
+                        hasError = true;
+                    }
+
+                    effectLoaded();
+                });
 
-            //持续的小泡泡
-            _effectUI3 = EffectUIPool.CreateEffectUI(_ui.m_holderPaoMin, "ui_Activity", "Activity_chixu");
+            // 持续的小泡泡
+            EffectUIPool.CreateEffectUI(_ui.m_holderPaoMin, "ui_Activity", "Activity_chixu",
+                scale: 100, onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI3 = effect;
+                    }
+                    else
+                    {
+                        hasError = true;
+                    }
+
+                    effectLoaded();
+                });
+
+            // 爆发时候的发光
+            EffectUIPool.CreateEffectUI(_ui.m_holderFg, "ui_Activity", "Activity_glow",
+                scale: 100, onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI4 = effect;
+                    }
+                    else
+                    {
+                        hasError = true;
+                    }
 
-            //爆发时候的发光
-            _effectUI4 = EffectUIPool.CreateEffectUI(_ui.m_holderFg, "ui_Activity", "Activity_glow");
+                    effectLoaded();
+                });
         }
 
         public void SetParams(int itemId, int count, Action onSuccess, string message = "", int type = 0)

+ 55 - 17
GameClient/Assets/Game/HotUpdate/Views/EnduringGiftBox/RushSaleGiftBoxView.cs

@@ -27,7 +27,9 @@ namespace GFGGame
         private List<Transition> _transitionList = new List<Transition>();
 
         private EffectUI _effectUI1;
+
         private EffectUI _effectUI2;
+
         //private EffectUI _effectUI3;
         private EffectUI _effectUI4;
         private EffectUI _effectUI5;
@@ -82,7 +84,14 @@ namespace GFGGame
 
         private void AddEffect()
         {
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holderPaoBaby, "ui_Activity", "Limite_pepole");
+            EffectUIPool.CreateEffectUI(_ui.m_holderPaoBaby, "ui_Activity", "Limite_pepole",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
 
             //_effectUI3 = EffectUIPool.CreateEffectUI(_ui.m_holderZheKouChiXu, "ui_Activity", "Limite_discount_chixu");
             Timers.inst.Add(0.8f, 1, (obj) =>
@@ -90,12 +99,34 @@ namespace GFGGame
                     //防止手速超快关了又开开了又关导致的特效重复加载,因为这里是通过Timers延时加载的
                     if (ViewManager.isViewOpen(nameof(RushSaleGiftBoxView)))
                     {
-                        _effectUI4 = EffectUIPool.CreateEffectUI(_ui.m_holderZheKou, "ui_Activity", "Limite_discount_baofa");
-                        _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_holderBtnBy, "ui_Activity", "Limite_button");
+                        EffectUIPool.CreateEffectUI(_ui.m_holderZheKou, "ui_Activity",
+                            "Limite_discount_baofa",
+                            onComplete: (effect) =>
+                            {
+                                if (effect != null)
+                                {
+                                    _effectUI4 = effect;
+                                }
+                            });
+                        EffectUIPool.CreateEffectUI(_ui.m_holderBtnBy, "ui_Activity", "Limite_button",
+                            onComplete: (effect) =>
+                            {
+                                if (effect != null)
+                                {
+                                    _effectUI2 = effect;
+                                }
+                            });
                     }
                 }
             );
-            _effectUI5 = EffectUIPool.CreateEffectUI(_ui.m_holderStar, "ui_Activity", "Limite_star");
+            EffectUIPool.CreateEffectUI(_ui.m_holderStar, "ui_Activity", "Limite_star",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI5 = effect;
+                    }
+                });
         }
 
         //实例化索引
@@ -140,23 +171,25 @@ namespace GFGGame
                 list = LimitedTimeGiftBoxDataManager.Instance.LtgGbItemData4;
             else if (_type == ActivityType.XSLB3)
                 list = LimitedTimeGiftBoxDataManager.Instance.LtgGbItemData5;
-            else if(_type == ActivityType.LuckyDiscount)
+            else if (_type == ActivityType.LuckyDiscount)
                 list = LimitedTimeGiftBoxDataManager.Instance.LtgGbItemData16;
 
             list = list.Where(a => a.EndTime > TimeInfo.Instance.ServerNow()).ToList();
-                if (list.Count == 0)
-                {
-                    PromptController.Instance.ShowFloatTextPrompt("活动已结束");
-                    this.Hide();
-                    return;
-                }
+            if (list.Count == 0)
+            {
+                PromptController.Instance.ShowFloatTextPrompt("活动已结束");
+                this.Hide();
+                return;
+            }
+
             _ui.m_txtBoxResidueTime.text = TimeUtil.GetTimeLeft(TimeInfo.Instance.ServerNow(), list[0].EndTime);
         }
 
         private void UpdateView(ListUtil.NavigateType type)
         {
             List<LimitedTimeGiftBoxItemYxData> list = new List<LimitedTimeGiftBoxItemYxData>();
-            if(_type == ActivityType.XSLB2) {
+            if (_type == ActivityType.XSLB2)
+            {
                 _ui.m_showType.selectedIndex = 0;
                 list = LimitedTimeGiftBoxDataManager.Instance.LtgGbItemData4;
             }
@@ -165,7 +198,7 @@ namespace GFGGame
                 _ui.m_showType.selectedIndex = 0;
                 list = LimitedTimeGiftBoxDataManager.Instance.LtgGbItemData5;
             }
-            else if(_type == ActivityType.LuckyDiscount)
+            else if (_type == ActivityType.LuckyDiscount)
             {
                 _ui.m_showType.selectedIndex = 1;
                 list = LimitedTimeGiftBoxDataManager.Instance.LtgGbItemData16;
@@ -177,6 +210,7 @@ namespace GFGGame
                 this.Hide();
                 return;
             }
+
             var data = ListUtil.Navigate(list, type, _pageIndex, out int newIndex);
             _pageIndex = newIndex;
             _ui.m_btnUp.visible = true;
@@ -193,11 +227,13 @@ namespace GFGGame
                 {
                     _ui.m_btnNext.visible = false;
                 }
+
                 if (_pageIndex == 0)
                 {
                     _ui.m_btnUp.visible = false;
                 }
             }
+
             var shopCfg = CommonDataManager.Tables.TblShopCfg.GetOrDefault(data.ShopCfgId);
             var boxItemCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(shopCfg.ItemId);
             var remainBuyNum = shopCfg.MaxBuyNum - ShopDataManager.Instance.GetGoodsBuyNumById(shopCfg.Id);
@@ -245,7 +281,7 @@ namespace GFGGame
                 //_ui.m_btnBuyPink.m_txtNewPrice.align = AlignType.Left;
                 // _ui.m_btnBuyPink.m_txtNewPrice.x = 166;
             }
-            
+
             if (remainBuyNum == 0)
             {
                 //已售完
@@ -267,8 +303,8 @@ namespace GFGGame
 
                 _ui.m_btnBuyPink.m_txtSoldOut.visible = false;
                 _ui.m_btnBuyPink.m_txtSoldOut.text = "";
-               // _ui.m_holderBtnBy.visible = true;
-               _ui.m_btnBuyPink.m_loaIcon.visible = true;
+                // _ui.m_holderBtnBy.visible = true;
+                _ui.m_btnBuyPink.m_loaIcon.visible = true;
                 _ui.m_btnBuyPink.m_txtOldPrice.visible = true;
                 _ui.m_btnBuyPink.m_txtNewPrice.visible = true;
             }
@@ -364,13 +400,15 @@ namespace GFGGame
 
         private void DestroyObjectFromView()
         {
-            for (int i = 0; i < _effectUIList.Count; i++) {
+            for (int i = 0; i < _effectUIList.Count; i++)
+            {
                 if (_effectUIList[i] != null)
                 {
                     EffectUIPool.Recycle(_effectUIList[i]);
                     _effectUIList[i] = null;
                 }
             }
+
             _effectUIList.Clear();
 
             _graphList.Clear();

+ 48 - 11
GameClient/Assets/Game/HotUpdate/Views/EnduringGiftBox/SpecialOfferGiftBoxView.cs

@@ -17,7 +17,7 @@ namespace GFGGame
         //private int _pageIndex; //当前页码,需要显示的数据的索引
         private List<EffectUI> _effectUIList = new List<EffectUI>();
         private List<EffectUI> _effect1UIList = new List<EffectUI>();
-        
+
         private EffectUI _effectUI1;
         private EffectUI _effectUI2;
         private EffectUI _effectUI3;
@@ -55,6 +55,7 @@ namespace GFGGame
                 _ui.Dispose();
                 _ui = null;
             }
+
             base.Dispose();
         }
 
@@ -63,7 +64,7 @@ namespace GFGGame
             base.OnShown();
             GameGlobal.AutoSpecialOfferGiftBoxView = false;
             _ui.m_t0.Play();
-           
+
             UpViewNone();
             //InitPageInex();
         }
@@ -88,6 +89,7 @@ namespace GFGGame
                 EffectUIPool.Recycle(_effectUIList[i]);
                 _effectUIList[i] = null;
             }
+
             _effectUIList.Clear();
 
             for (int i = 0; i < _effect1UIList.Count; i++)
@@ -95,6 +97,7 @@ namespace GFGGame
                 EffectUIPool.Recycle(_effect1UIList[i]);
                 _effect1UIList[i] = null;
             }
+
             _effect1UIList.Clear();
         }
 
@@ -179,8 +182,14 @@ namespace GFGGame
                 uiItem.m_btnBuy.m_txtNewPrice.visible = true;
                 uiItem.m_btnBuy.m_loaIcon.visible = true;
 
-                EffectUI _effectUI1 = EffectUIPool.CreateEffectUI(uiItem.m_holderBtn, "ui_Activity", "Prefer_button_buy");
-                _effect1UIList.Add(_effectUI1);
+                EffectUIPool.CreateEffectUI(uiItem.m_holderBtn, "ui_Activity", "Prefer_button_buy",
+                    onComplete: (effect) =>
+                    {
+                        if (effect != null)
+                        {
+                            _effect1UIList.Add(effect);
+                        }
+                    });
             }
 
             uiItem.m_comDiscount.m_txtDiscountNum.text =
@@ -191,12 +200,18 @@ namespace GFGGame
             uiItem.m_btnBuy.target.onClick.Add(OnBtnBuyClick);
             uiItem.m_txtBoxItemName.text = shopCfg.ItemName;
 
-            EffectUI _effectUI = EffectUIPool.CreateEffectUI(uiItem.m_holderZheKou, "ui_Activity", "Prefer_but_zhekou");
-            _effectUIList.Add(_effectUI);
-            uiItem.m_t0.Play();
+            EffectUIPool.CreateEffectUI(uiItem.m_holderZheKou, "ui_Activity", "Prefer_but_zhekou",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUIList.Add(effect);
+                        uiItem.m_t0.Play();
+                    }
+                });
 
             ////子列表
-            if(uiItem.m_list.data == null)
+            if (uiItem.m_list.data == null)
                 uiItem.m_list.itemRenderer = ChildListItemRender;
 
             uiItem.m_list.data = 1;
@@ -208,11 +223,32 @@ namespace GFGGame
         private void AddEffect()
         {
             if (_effectUI1 == null)
-                _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holderBaby, "ui_Activity", "Prefer_person");
+                EffectUIPool.CreateEffectUI(_ui.m_holderBaby, "ui_Activity", "Prefer_person",
+                    onComplete: (effect) =>
+                    {
+                        if (effect != null)
+                        {
+                            _effectUI1 = effect;
+                        }
+                    });
             if (_effectUI2 == null)
-                _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_holderChiXuTx, "ui_Activity", "Prefer_chixu_tx");
+                EffectUIPool.CreateEffectUI(_ui.m_holderChiXuTx, "ui_Activity", "Prefer_chixu_tx",
+                    onComplete: (effect) =>
+                    {
+                        if (effect != null)
+                        {
+                            _effectUI2 = effect;
+                        }
+                    });
             if (_effectUI3 == null)
-                _effectUI3 = EffectUIPool.CreateEffectUI(_ui.m_holderOneTx, "ui_Activity", "Prefer_one_tx");
+                EffectUIPool.CreateEffectUI(_ui.m_holderOneTx, "ui_Activity", "Prefer_one_tx",
+                    onComplete: (effect) =>
+                    {
+                        if (effect != null)
+                        {
+                            _effectUI3 = effect;
+                        }
+                    });
         }
 
         protected override void AddEventListener()
@@ -300,6 +336,7 @@ namespace GFGGame
                 this.Hide();
                 return;
             }
+
             _ui.m_txtBoxResidueTime.text = TimeUtil.GetTimeLeft(TimeInfo.Instance.ServerNow(), list[0].EndTime);
         }
 

+ 33 - 14
GameClient/Assets/Game/HotUpdate/Views/FieldGuide/SuitGuideDetailView.cs

@@ -17,13 +17,17 @@ namespace GFGGame
         private int _suitTypeId;
         private Dictionary<int, EffectUI> _effectUIDic = new Dictionary<int, EffectUI>();
         private int index = 0;
-        private Dictionary<int, string> IdToImageDic = new Dictionary<int, string> {[201024] = "changxiawuj",[201025] = "xiangfengmr",[202027] = "qiannianws",[202025] = "jiaohuass" };
+
+        private Dictionary<int, string> IdToImageDic = new Dictionary<int, string>
+            { [201024] = "changxiawuj", [201025] = "xiangfengmr", [202027] = "qiannianws", [202025] = "jiaohuass" };
+
         public override void Dispose()
         {
             foreach (var v in _effectUIDic)
             {
                 EffectUIPool.Recycle(v.Value);
             }
+
             _effectUIDic.Clear();
 
             if (_ui != null)
@@ -31,6 +35,7 @@ namespace GFGGame
                 _ui.Dispose();
                 _ui = null;
             }
+
             base.Dispose();
         }
 
@@ -52,9 +57,10 @@ namespace GFGGame
             _ui.m_rightBtn.onClick.Add(OnClickRight);
             _ui.m_lookBtn.onClick.Add(OnClickLook);
 
-            _ui.m_listSuitCom.m_listSuit.scrollPane.onScroll.Add(DoTouch);//滚动时派发事件
-            _ui.m_listSuitCom.m_listSuit.scrollPane.onScrollEnd.Add(DoTouchEnd);//滚动时派发事件
+            _ui.m_listSuitCom.m_listSuit.scrollPane.onScroll.Add(DoTouch); //滚动时派发事件
+            _ui.m_listSuitCom.m_listSuit.scrollPane.onScrollEnd.Add(DoTouchEnd); //滚动时派发事件
         }
+
         protected override void AddEventListener()
         {
             base.AddEventListener();
@@ -66,6 +72,7 @@ namespace GFGGame
             EventAgent.AddEventListener(ConstMessage.DRESS_FILTER, FilterItems);
             EventAgent.AddEventListener(ConstMessage.DRESS_FILTER_RESET, ResetFilter);
         }
+
         protected override void OnShown()
         {
             base.OnShown();
@@ -86,6 +93,7 @@ namespace GFGGame
             // 清空服装过滤界面选择
             EventAgent.DispatchEvent(ConstMessage.DRESS_FILTER_RESET_ALL);
         }
+
         protected override void RemoveEventListener()
         {
             base.RemoveEventListener();
@@ -96,7 +104,6 @@ namespace GFGGame
             EventAgent.RemoveEventListener(ConstMessage.DRESS_SEARCH, FilterItems);
             EventAgent.RemoveEventListener(ConstMessage.DRESS_FILTER, FilterItems);
             EventAgent.RemoveEventListener(ConstMessage.DRESS_FILTER_RESET, ResetFilter);
-
         }
 
         private void FilterItems(EventContext context)
@@ -116,7 +123,6 @@ namespace GFGGame
             _ui.m_listSuitCom.m_listSuit.numItems = _suitIds.Count;
             UpdateProgress();
             _ui.m_Refresh.Play();
-
         }
 
         private void OnClickBtnBack()
@@ -136,17 +142,19 @@ namespace GFGGame
         }
 
         private void UpdateProgress()
-        {          
+        {
             int haveCount = SuitUtil.GetHaveSuitCount(_suitIds);
             int totalCount = _suitIds.Count;
             SuitGuideMenuCfg cfg = CommonDataManager.Tables.TblSuitGuideMenuCfg.GetOrDefault(_suitTypeId);
             _ui.m_title.text = cfg.Name;
             _ui.m_progress.target.value = haveCount;
             _ui.m_progress.target.max = totalCount;
-            _ui.m_progress.m_title1.SetVar("value", haveCount.ToString()).SetVar("max", totalCount.ToString()).FlushVars();
+            _ui.m_progress.m_title1.SetVar("value", haveCount.ToString()).SetVar("max", totalCount.ToString())
+                .FlushVars();
             if (totalCount > 0)
             {
-                _ui.m_progress.m_rate.SetVar("rate", FieldGuideView.ProgressCalculate(haveCount, totalCount).ToString()).FlushVars();
+                _ui.m_progress.m_rate.SetVar("rate", FieldGuideView.ProgressCalculate(haveCount, totalCount).ToString())
+                    .FlushVars();
             }
             else
             {
@@ -158,6 +166,7 @@ namespace GFGGame
             {
                 EffectUIPool.Recycle(v.Value);
             }
+
             _effectUIDic.Clear();
 
             _ui.m_listSuitCom.m_listSuit.numItems = _suitIds.Count;
@@ -186,7 +195,14 @@ namespace GFGGame
                 bool haveSuit = DressUpMenuSuitDataManager.CheckHaveSuit(suitId);
                 if (haveSuit && !_effectUIDic.ContainsKey(index))
                 {
-                    _effectUIDic.Add(index, EffectUIPool.CreateEffectUI(listItem.m_holderBg, "ui_KP", "KP_Other_Gold_Frame"));
+                    EffectUIPool.CreateEffectUI(listItem.m_holderBg, "ui_KP", "KP_Other_Gold_Frame",
+                        onComplete: (effect) =>
+                        {
+                            if (effect != null)
+                            {
+                                _effectUIDic.Add(index, effect);
+                            }
+                        });
                 }
             }
 
@@ -200,15 +216,13 @@ namespace GFGGame
             {
                 imageName = suitCfg.Res;
             }
+
             listItem.m_loaderPic.url = ResPathUtil.GetChapterGuideIconPath(imageName);
             RarityIconController.UpdateRarityIcon(listItem.m_rarity, suitId, false, true);
             listItem.target.data = suitId;
             UpdateSuitStatusView(listItem);
             listItem.m_loaderBonusBox.target.onClick.Clear();
-            listItem.m_loaderBonusBox.target.onClick.Add(() =>
-            {
-                SuitUtil.ShowSuitGuideBonus(suitId);
-            });
+            listItem.m_loaderBonusBox.target.onClick.Add(() => { SuitUtil.ShowSuitGuideBonus(suitId); });
             UI_CompSuitItem.ProxyEnd();
         }
 
@@ -234,7 +248,8 @@ namespace GFGGame
             bool haveSuit = DressUpMenuSuitDataManager.CheckHaveSuit(suitId);
             listItem.m_state.selectedIndex = (haveSuit ? 0 : 1);
             int status = DressUpMenuSuitDataManager.GetSuitGuideBonusStatus(suitId);
-            RedDotController.Instance.SetComRedDot(listItem.m_loaderBonusBox.target, status == ConstBonusStatus.CAN_GET, "", -3, -1);
+            RedDotController.Instance.SetComRedDot(listItem.m_loaderBonusBox.target, status == ConstBonusStatus.CAN_GET,
+                "", -3, -1);
             if (status == ConstBonusStatus.CAN_GET)
             {
                 listItem.m_loaderBonusBox.m_loaderBonusBox.url = "ui://FieldGuide/tujian_lw_1";
@@ -278,6 +293,7 @@ namespace GFGGame
                 _ui.m_rightBtn.visible = false;
             }
         }
+
         private void OnClickLeft()
         {
             index--;
@@ -293,6 +309,7 @@ namespace GFGGame
                 _ui.m_rightBtn.visible = false;
             }
         }
+
         private void OnClickLook()
         {
             int suitid = _suitIds[index];
@@ -306,6 +323,7 @@ namespace GFGGame
                 ViewManager.Show<SuitPartsDetailView>(suitid);
             }
         }
+
         private void DoTouchEnd()
         {
             _ui.m_leftBtn.touchable = true;
@@ -323,6 +341,7 @@ namespace GFGGame
                 _ui.m_rightBtn.visible = false;
             }
         }
+
         private void DoTouch()
         {
             _ui.m_leftBtn.touchable = false;

+ 23 - 11
GameClient/Assets/Game/HotUpdate/Views/FieldGuide/SuitGuideListView.cs

@@ -16,12 +16,14 @@ namespace GFGGame
         private List<int> _suitIds;
         private int _suitTypeId;
         private Dictionary<int, EffectUI> _effectUIDic = new Dictionary<int, EffectUI>();
+
         public override void Dispose()
         {
             foreach (var v in _effectUIDic)
             {
                 EffectUIPool.Recycle(v.Value);
             }
+
             _effectUIDic.Clear();
 
             if (_ui != null)
@@ -29,6 +31,7 @@ namespace GFGGame
                 _ui.Dispose();
                 _ui = null;
             }
+
             base.Dispose();
         }
 
@@ -47,6 +50,7 @@ namespace GFGGame
             _ui.m_btnBack.onClick.Add(OnClickBtnBack);
             _ui.m_btnSearch.onClick.Add(OnClickBtnSearch);
         }
+
         protected override void AddEventListener()
         {
             base.AddEventListener();
@@ -58,6 +62,7 @@ namespace GFGGame
             EventAgent.AddEventListener(ConstMessage.DRESS_FILTER, FilterItems);
             EventAgent.AddEventListener(ConstMessage.DRESS_FILTER_RESET, ResetFilter);
         }
+
         protected override void OnShown()
         {
             base.OnShown();
@@ -78,6 +83,7 @@ namespace GFGGame
             // 清空服装过滤界面选择
             EventAgent.DispatchEvent(ConstMessage.DRESS_FILTER_RESET_ALL);
         }
+
         protected override void RemoveEventListener()
         {
             base.RemoveEventListener();
@@ -88,13 +94,12 @@ namespace GFGGame
             EventAgent.RemoveEventListener(ConstMessage.DRESS_SEARCH, FilterItems);
             EventAgent.RemoveEventListener(ConstMessage.DRESS_FILTER, FilterItems);
             EventAgent.RemoveEventListener(ConstMessage.DRESS_FILTER_RESET, ResetFilter);
-
         }
 
         private void FilterItems(EventContext context)
         {
             UpdateListSuit();
-            
+
             if (context.data.ToString() == ConstMessage.DRESS_SEARCH)
             {
                 _suitIds = DressUpMenuItemDataManager.DressSearch(_suitIds, DressFilterItemType.Suit);
@@ -108,7 +113,6 @@ namespace GFGGame
             _ui.m_listSuitCom.m_listSuit.numItems = _suitIds.Count;
             UpdateProgress();
             _ui.m_Refresh.Play();
-
         }
 
         private void OnClickBtnBack()
@@ -135,10 +139,12 @@ namespace GFGGame
             _ui.m_title.text = cfg.Name;
             _ui.m_progress.target.value = haveCount;
             _ui.m_progress.target.max = totalCount;
-            _ui.m_progress.m_title1.SetVar("value", haveCount.ToString()).SetVar("max", totalCount.ToString()).FlushVars();
+            _ui.m_progress.m_title1.SetVar("value", haveCount.ToString()).SetVar("max", totalCount.ToString())
+                .FlushVars();
             if (totalCount > 0)
             {
-                _ui.m_progress.m_rate.SetVar("rate", FieldGuideView.ProgressCalculate(haveCount, totalCount).ToString()).FlushVars();
+                _ui.m_progress.m_rate.SetVar("rate", FieldGuideView.ProgressCalculate(haveCount, totalCount).ToString())
+                    .FlushVars();
             }
             else
             {
@@ -150,6 +156,7 @@ namespace GFGGame
             {
                 EffectUIPool.Recycle(v.Value);
             }
+
             _effectUIDic.Clear();
 
             _ui.m_listSuitCom.m_listSuit.numItems = _suitIds.Count;
@@ -168,7 +175,14 @@ namespace GFGGame
                 bool haveSuit = DressUpMenuSuitDataManager.CheckHaveSuit(suitId);
                 if (haveSuit && !_effectUIDic.ContainsKey(index))
                 {
-                    _effectUIDic.Add(index, EffectUIPool.CreateEffectUI(listItem.m_holderBg, "ui_KP", "KP_Other_Gold_Frame"));
+                    EffectUIPool.CreateEffectUI(listItem.m_holderBg, "ui_KP", "KP_Other_Gold_Frame",
+                        onComplete: (effect) =>
+                        {
+                            if (effect != null)
+                            {
+                                _effectUIDic.Add(index, effect);
+                            }
+                        });
                 }
             }
 
@@ -177,10 +191,7 @@ namespace GFGGame
             RarityIconController.UpdateRarityIcon(listItem.m_rarity, suitId, false, true);
             listItem.target.data = suitId;
             listItem.m_loaderBonusBox.target.onClick.Clear();
-            listItem.m_loaderBonusBox.target.onClick.Add(() =>
-            {
-                SuitUtil.ShowSuitGuideBonus(suitId);
-            });
+            listItem.m_loaderBonusBox.target.onClick.Add(() => { SuitUtil.ShowSuitGuideBonus(suitId); });
             UI_SuitComitem.ProxyEnd();
         }
 
@@ -206,7 +217,8 @@ namespace GFGGame
             bool haveSuit = DressUpMenuSuitDataManager.CheckHaveSuit(suitId);
             listItem.m_state.selectedIndex = (haveSuit ? 0 : 1);
             int status = DressUpMenuSuitDataManager.GetSuitGuideBonusStatus(suitId);
-            RedDotController.Instance.SetComRedDot(listItem.m_loaderBonusBox.target, status == ConstBonusStatus.CAN_GET, "", -3, -1);
+            RedDotController.Instance.SetComRedDot(listItem.m_loaderBonusBox.target, status == ConstBonusStatus.CAN_GET,
+                "", -3, -1);
             if (status == ConstBonusStatus.CAN_GET)
             {
                 listItem.m_loaderBonusBox.m_loaderBonusBox.url = "ui://FieldGuide/tujian_lw_1";

+ 24 - 3
GameClient/Assets/Game/HotUpdate/Views/FieldWork/FieldWorkChooseCardView.cs

@@ -292,7 +292,14 @@ namespace GFGGame
             item.m_t0.Play();
             EffectUIPool.Recycle(_effectUI3);
             _effectUI3 = null;
-            _effectUI3 = EffectUIPool.CreateEffectUI(item.m_effect, "ui_KP", "KP_Select");
+            EffectUIPool.CreateEffectUI(item.m_effect, "ui_KP", "KP_Select",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI3 = effect;
+                    }
+                });
 
             UpdateView(_ui.m_listCard.selectedIndex);
 
@@ -408,10 +415,24 @@ namespace GFGGame
         private void AddEffect()
         {
             //邊框左上角特效
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holderLeftTop, "ui_Activity", "Com_window_L_up");
+            EffectUIPool.CreateEffectUI(_ui.m_holderLeftTop, "ui_Activity", "Com_window_L_up",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
 
             //邊框右下角特效
-            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_holderRightDowm, "ui_Activity", "Com_window_R_Down");
+            EffectUIPool.CreateEffectUI(_ui.m_holderRightDowm, "ui_Activity", "Com_window_R_Down",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                    }
+                });
         }
     }
 }

+ 32 - 4
GameClient/Assets/Game/HotUpdate/Views/FieldWork/FieldWorkFightResultView.cs

@@ -73,10 +73,38 @@ namespace GFGGame
             //_effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderResult1, "ui_fight_new", "ZDJS_qualified");
             //_effectUI3 = EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderResult2, "ui_fight_new", "ZDJS_good");
             //_effectUI4 = EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderResult3, "ui_fight_new", "ZDJS_Perfect");
-            _effectUI5 = EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderScore, "ui_fight_new", "ZDJS_Text_kuang");
-            _effectUI6 = EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderStar3, "ui_fight_new", "ZDJS_STAR");
-            _effectUI7 = EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderStar2, "ui_fight_new", "ZDJS_STAR");
-            _effectUI8 = EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderStar1, "ui_fight_new", "ZDJS_STAR");
+            EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderScore, "ui_fight_new", "ZDJS_Text_kuang",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI5 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderStar3, "ui_fight_new", "ZDJS_STAR",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI6 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderStar2, "ui_fight_new", "ZDJS_STAR",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI7 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderStar1, "ui_fight_new", "ZDJS_STAR",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI8 = effect;
+                    }
+                });
         }
 
         protected override void OnShown()

+ 61 - 26
GameClient/Assets/Game/HotUpdate/Views/FieldWork/FieldWorkLevelView.cs

@@ -17,6 +17,7 @@ namespace GFGGame
         private float indexY;
         private EffectUI _effectUI1;
         private GComponent objGuide;
+
         public override void Dispose()
         {
             if (_ui != null)
@@ -24,11 +25,13 @@ namespace GFGGame
                 _ui.Dispose();
                 _ui = null;
             }
+
             if (_effectUI1 != null)
             {
                 EffectUIPool.Recycle(_effectUI1);
                 _effectUI1 = null;
             }
+
             base.Dispose();
         }
 
@@ -49,24 +52,35 @@ namespace GFGGame
             _ui.m_ruleBtn.onClick.Add(RuleController.ShowRuleView);
             _ui.m_ruleBtn.data = 300035;
 
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_bgEffect, "ui_zj", "Tydc_All/Tydc_All");
+            EffectUIPool.CreateEffectUI(_ui.m_bgEffect, "ui_zj", "Tydc_All/Tydc_All",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
         }
+
         protected override void AddEventListener()
         {
             base.AddEventListener();
             EventAgent.AddEventListener(ConstMessage.FieldWork_STARTCHANGE, StartCalculateScore);
             EventAgent.AddEventListener(ConstMessage.FieldWork_StateCHANGE, UpdateLevel);
         }
+
         protected override void RemoveEventListener()
         {
             base.RemoveEventListener();
             EventAgent.RemoveEventListener(ConstMessage.FieldWork_STARTCHANGE, StartCalculateScore);
             EventAgent.RemoveEventListener(ConstMessage.FieldWork_StateCHANGE, UpdateLevel);
         }
+
         protected override void OnShown()
         {
             base.OnShown();
-            gamey = GameObject.Find("Stage/GRoot/Window - FieldWorkLevelUI/ContentPane/CompChapter/Container/Container");
+            gamey = GameObject.Find(
+                "Stage/GRoot/Window - FieldWorkLevelUI/ContentPane/CompChapter/Container/Container");
             _ui.m_Bg.url = ResPathUtil.GetBgImgPath("bg_tydc");
             _ui.m_shopBtn.target.visible = false;
             LevelList = CommonDataManager.Tables.TblCimbingTowerLevelCfg.DataList;
@@ -74,6 +88,7 @@ namespace GFGGame
             UpdateLevel();
             Timers.inst.AddUpdate(CheckGuide);
         }
+
         private IEnumerator InitChapter()
         {
             yield return new WaitForSeconds(0.1f);
@@ -89,13 +104,13 @@ namespace GFGGame
             {
                 GObject obj = _ui.m_chapter.m_compChapterScroll.target.GetChild("g" + i);
                 UI_CompStoryLevelItem levelItem = UI_CompStoryLevelItem.Proxy(obj);
-                if(i == LevelList.Count-1)
+                if (i == LevelList.Count - 1)
                 {
                     levelItem.m_c1.selectedIndex = 2;
-
                 }
+
                 CimbingTowerLevelCfg levelCfg = LevelList[i];
-                if(FieldWorkDataManager.Instance.CheckLevelPass(levelCfg.Id) || i == 0)
+                if (FieldWorkDataManager.Instance.CheckLevelPass(levelCfg.Id) || i == 0)
                 {
                     levelItem.m_lock.visible = false;
                 }
@@ -103,6 +118,7 @@ namespace GFGGame
                 {
                     levelItem.m_lock.visible = true;
                 }
+
                 levelItem.target.visible = true;
                 levelItem.m_txtFightOrder.text = levelCfg.Name;
                 levelItem.m_levelIcon.text = FieldWorkDataManager.Instance.nameList[i];
@@ -110,51 +126,56 @@ namespace GFGGame
                 levelItem.target.onClick.Add(OnClickLevelItem);
                 UI_CompStoryLevelItem.ProxyEnd();
             }
+
             //Timers.inst.StartCoroutine(InitChapter());
             int isPassCount = 0;
-            foreach(var item in FieldWorkDataManager.Instance.CimbingTowerLevelInfoList)
+            foreach (var item in FieldWorkDataManager.Instance.CimbingTowerLevelInfoList)
             {
-                if(item.Value.IsPass)
+                if (item.Value.IsPass)
                 {
                     isPassCount++;
                 }
             }
-            
+
             if (isPassCount >= CommonDataManager.Tables.TblCimbingTowerLevelCfg.DataList.Count)
             {
-                isPassCount = CommonDataManager.Tables.TblCimbingTowerLevelCfg.DataList.Count  - 1;
+                isPassCount = CommonDataManager.Tables.TblCimbingTowerLevelCfg.DataList.Count - 1;
             }
+
             string ObjGuidename = "g" + isPassCount.ToString();
             objGuide = _ui.m_chapter.m_compChapterScroll.target.GetChild(ObjGuidename).asCom;
-            float levelCount = CommonDataManager.Tables.TblCimbingTowerLevelCfg.DataList.Count  - isPassCount;
+            float levelCount = CommonDataManager.Tables.TblCimbingTowerLevelCfg.DataList.Count - isPassCount;
             float height = _ui.m_chapter.target.height;
             float value = levelCount / CommonDataManager.Tables.TblCimbingTowerLevelCfg.DataList.Count;
             indexY = value * Mathf.Max(0, (float)levelCount);
             _ui.m_chapter.target.scrollPane.SetPercY(value, false);
         }
+
         private void OnClickLevelItem(EventContext context)
         {
             UI_CompStoryLevelItem levelItem = UI_CompStoryLevelItem.Proxy(context.sender as GObject);
             int levelCfgId = (int)levelItem.target.data;
-            if(levelItem.m_lock.visible)
+            if (levelItem.m_lock.visible)
             {
                 PromptController.Instance.ShowFloatTextPrompt("请通过前置关卡");
                 return;
             }
             else
             {
-                if(FieldWorkDataManager.Instance.CimbingTowerLevelInfoList.ContainsKey(levelCfgId))
+                if (FieldWorkDataManager.Instance.CimbingTowerLevelInfoList.ContainsKey(levelCfgId))
                 {
-                    if(FieldWorkDataManager.Instance.CimbingTowerLevelInfoList[levelCfgId].IsPass)
+                    if (FieldWorkDataManager.Instance.CimbingTowerLevelInfoList[levelCfgId].IsPass)
                     {
                         PromptController.Instance.ShowFloatTextPrompt("关卡已通过!");
                         return;
                     }
                 }
             }
+
             UI_CompStoryLevelItem.ProxyEnd();
             ViewManager.Show<FieldWorkLevelInfoView>(new object[] { levelCfgId });
         }
+
         private void RenderListTagItem(int index, GObject obj)
         {
             UI_ComTag item = UI_ComTag.Proxy(obj);
@@ -164,6 +185,7 @@ namespace GFGGame
             item.m_loaTag.url = ResPathUtil.GetCommonGameResPath("fzd_bqbq_" + tagType);
             UI_ComTag.ProxyEnd();
         }
+
         protected override void OnHide()
         {
             base.OnHide();
@@ -175,26 +197,31 @@ namespace GFGGame
             ViewManager.Show<StoryFightSingleView>(null, true);
             ViewManager.DeleteViewStackCountDown(null, 1);
         }
+
         private void OnClickBtnBack()
         {
             ViewManager.GoBackFrom(typeof(FieldWorkLevelView).FullName);
         }
+
         private void OnClickBtnShop()
         {
             ViewManager.Show<StoreView>(new object[] { ConstStoreTabId.STORE_EXCHANGE, 3 });
         }
+
         private void OnClickBtnReSet()
         {
             if (GuideDataManager.IsGuideFinish(ConstGuideId.FIELD) <= 0)
             {
                 return;
             }
+
             if (FieldWorkDataManager.Instance.CimbingTowerLevelInfoList.Count == 0)
             {
                 PromptController.Instance.ShowFloatTextPrompt("本周暂未参与该玩法,无法使用此功能!");
                 return;
             }
-                AlertUI.Show("重置后当前关卡进度将被清空,每周可使用一次,是否重置?")
+
+            AlertUI.Show("重置后当前关卡进度将被清空,每周可使用一次,是否重置?")
                 .SetLeftButton(true, "否").SetRightButton(true, "是", async (object data) =>
                 {
                     bool result = await FieldWorkSproxy.ReqFieldWorkReset();
@@ -209,6 +236,7 @@ namespace GFGGame
                     }
                 });
         }
+
         private void OnClickBtnSkip()
         {
             int normal = CommonDataManager.Tables.TblCimbingTowerCfg.DataList[0].ClearanceLimit;
@@ -222,6 +250,7 @@ namespace GFGGame
                     isPassCount++;
                 }
             }
+
             if (RoleDataManager.CheckIsMonthCardOpenByType(1) || RoleDataManager.CheckIsMonthCardOpenByType(1))
             {
                 canPassCount = vip;
@@ -230,34 +259,38 @@ namespace GFGGame
             {
                 canPassCount = normal;
             }
+
             if (isPassCount > canPassCount)
             {
                 PromptController.Instance.ShowFloatTextPrompt("通关数量已超过最大可通关数量!");
                 return;
             }
-            else if((isPassCount >= FieldWorkDataManager.Instance.MaxLevelId && FieldWorkDataManager.Instance.MaxLevelId < canPassCount))
+            else if ((isPassCount >= FieldWorkDataManager.Instance.MaxLevelId &&
+                      FieldWorkDataManager.Instance.MaxLevelId < canPassCount))
             {
                 PromptController.Instance.ShowFloatTextPrompt("通关数量已超过最大可通关数量!");
                 return;
             }
+
             if (FieldWorkDataManager.Instance.MaxLevelId != 0)
             {
                 AlertUI.Show("一键通关不消耗服装和词牌的使用次数,是否快速通关?")
-                .SetLeftButton(true, "否").SetRightButton(true, "是", async (object data) =>
-                {
-                    bool result = await FieldWorkSproxy.ReqFieldWorkOneClickPass();
-                    if (result)
+                    .SetLeftButton(true, "否").SetRightButton(true, "是", async (object data) =>
                     {
-                        UpdateLevel();
-                        PromptController.Instance.ShowFloatTextPrompt("一键通关成功!");
-                    }
-                });
+                        bool result = await FieldWorkSproxy.ReqFieldWorkOneClickPass();
+                        if (result)
+                        {
+                            UpdateLevel();
+                            PromptController.Instance.ShowFloatTextPrompt("一键通关成功!");
+                        }
+                    });
             }
             else
             {
                 PromptController.Instance.ShowFloatTextPrompt("暂未满足通关要求,无法使用此功能!");
             }
         }
+
         private void CheckGuide(object param)
         {
             if (GuideDataManager.IsGuideFinish(ConstGuideId.FIELD) <= 0)
@@ -269,13 +302,15 @@ namespace GFGGame
                 Timers.inst.Remove(CheckGuide);
             }
         }
+
         protected void UpdateCheckGuide(object param)
         {
             if (!ViewManager.CheckIsTopView(this.viewCom)) return;
-            GuideController.TryGuide(_ui.m_listTag, ConstGuideId.FIELD, 2, "每周主题标签将会获得额外的属性加成!");          
+            GuideController.TryGuide(_ui.m_listTag, ConstGuideId.FIELD, 2, "每周主题标签将会获得额外的属性加成!");
             GuideController.TryGuide(objGuide, ConstGuideId.FIELD, 3, "点击开始挑战!");
-            GuideController.TryGuide(_ui.m_resetBtn.target, ConstGuideId.FIELD, 16, "每周一5:00可以获得一次重置的机会,若遇到困难时可以考虑重置后再试试哦!", -1, true, _ui.target.height - 600);
+            GuideController.TryGuide(_ui.m_resetBtn.target, ConstGuideId.FIELD, 16,
+                "每周一5:00可以获得一次重置的机会,若遇到困难时可以考虑重置后再试试哦!", -1, true, _ui.target.height - 600);
             GuideController.TryCompleteGuide(ConstGuideId.FIELD, 16);
         }
     }
-}
+}

+ 15 - 2
GameClient/Assets/Game/HotUpdate/Views/FieldWork/FieldWorkRoundTipsView.cs

@@ -11,6 +11,7 @@ namespace GFGGame
     {
         private UI_FieldWorkRoundTips _ui;
         private EffectUI _effectUI1;
+
         public override void Dispose()
         {
             if (_ui != null)
@@ -18,13 +19,16 @@ namespace GFGGame
                 _ui.Dispose();
                 _ui = null;
             }
+
             if (_effectUI1 != null)
             {
                 EffectUIPool.Recycle(_effectUI1);
                 _effectUI1 = null;
             }
+
             base.Dispose();
         }
+
         protected override void OnInit()
         {
             base.OnInit();
@@ -34,17 +38,26 @@ namespace GFGGame
             this.viewCom.Center();
             modal = true;
             clickBlankToClose = false;
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_effect, "ui_zj", "Tydc_Text_tx/Tydc_Text_tx");
+            EffectUIPool.CreateEffectUI(_ui.m_effect, "ui_zj", "Tydc_Text_tx/Tydc_Text_tx",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
         }
+
         protected override void OnShown()
         {
             base.OnShown();
             _ui.m_icon.url = "ui://FieldWork/wz_" + FieldWorkDataManager.Instance.CurFightIndex;
             _ui.m_t0.Play(this.Hide);
         }
+
         protected override void OnHide()
         {
             base.OnHide();
         }
     }
-}
+}

+ 44 - 21
GameClient/Assets/Game/HotUpdate/Views/Guide/GuideView.cs

@@ -1,4 +1,3 @@
-
 using UI.Guide;
 using FairyGUI;
 using UnityEngine;
@@ -16,14 +15,14 @@ namespace GFGGame
         private string guideKey;
         private int guideId;
         private int guideIndex;
-        private int _countGuideRect = 0;//需要找到引导对象没有找到对象的帧数计数
-        private bool justHint;//仅提示,无遮罩,点击任何地方可关闭引导
-        private bool NoTips;//无遮罩,无点击特效
+        private int _countGuideRect = 0; //需要找到引导对象没有找到对象的帧数计数
+        private bool justHint; //仅提示,无遮罩,点击任何地方可关闭引导
+        private bool NoTips; //无遮罩,无点击特效
 
-        private float compTxtY = 0;//提示语位置
+        private float compTxtY = 0; //提示语位置
         private string txtContent = "";
         private EffectUI _effectUI1;
-        
+
         public override void Dispose()
         {
             EffectUIPool.Recycle(_effectUI1);
@@ -34,6 +33,7 @@ namespace GFGGame
                 _ui.Dispose();
                 _ui = null;
             }
+
             base.Dispose();
         }
 
@@ -50,7 +50,14 @@ namespace GFGGame
 
             _ui.m_loaMask.onClick.Add(OnClickTarget);
 
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_comHolder.m_holder, "ui_zjm", "ui_zjm_xszy", 90);
+            EffectUIPool.CreateEffectUI(_ui.m_comHolder.m_holder, "ui_zjm", "ui_zjm_xszy", 90,
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
         }
 
         protected override void OnShown()
@@ -92,9 +99,9 @@ namespace GFGGame
                 {
                     _ui.m_compTxt.target.y = compTxtY;
                 }
+
                 _ui.m_comHolder.target.visible = false;
                 _ui.m_compTxt.target.visible = !String.IsNullOrEmpty(txtContent);
-
             }
 
             if (justHint)
@@ -102,6 +109,7 @@ namespace GFGGame
                 _ui.m_maskCom.target.visible = false;
                 _ui.m_loaMask.visible = true;
             }
+
             if (NoTips)
             {
                 _ui.m_maskCom.target.visible = false;
@@ -109,17 +117,20 @@ namespace GFGGame
             }
 
             //一些特殊引导
-            GuideCfg cfg = CommonDataManager.Tables.TblGuideCfg.GetOrDefault(ConstGuideId.STUDIO_PORCELAIN);   //作室书简修复
-            GuideCfg cfg1 = CommonDataManager.Tables.TblGuideCfg.GetOrDefault(ConstGuideId.STUDIO_FILING);  //引导查阅建档
-            GuideCfg cfg2 = CommonDataManager.Tables.TblGuideCfg.GetOrDefault(ConstGuideId.FIELD);  //田野调查
-            GuideCfg cfg4 = CommonDataManager.Tables.TblGuideCfg.GetOrDefault(ConstGuideId.STUDIO_PROPERTY);   //书简修复
-            GuideCfg cfg5 = CommonDataManager.Tables.TblGuideCfg.GetOrDefault(ConstGuideId.FREEDOM_DRESS);   //换装和拍照
-            if (guideId == cfg.Id && guideIndex == 2 || guideId == cfg1.Id && guideIndex == 2 || guideId == cfg2.Id && guideIndex == 1 || guideId == cfg4.Id && guideIndex == 1 || guideId == cfg5.Id && guideIndex == 1)
+            GuideCfg cfg = CommonDataManager.Tables.TblGuideCfg.GetOrDefault(ConstGuideId.STUDIO_PORCELAIN); //作室书简修复
+            GuideCfg cfg1 = CommonDataManager.Tables.TblGuideCfg.GetOrDefault(ConstGuideId.STUDIO_FILING); //引导查阅建档
+            GuideCfg cfg2 = CommonDataManager.Tables.TblGuideCfg.GetOrDefault(ConstGuideId.FIELD); //田野调查
+            GuideCfg cfg4 = CommonDataManager.Tables.TblGuideCfg.GetOrDefault(ConstGuideId.STUDIO_PROPERTY); //书简修复
+            GuideCfg cfg5 = CommonDataManager.Tables.TblGuideCfg.GetOrDefault(ConstGuideId.FREEDOM_DRESS); //换装和拍照
+            if (guideId == cfg.Id && guideIndex == 2 || guideId == cfg1.Id && guideIndex == 2 ||
+                guideId == cfg2.Id && guideIndex == 1 || guideId == cfg4.Id && guideIndex == 1 ||
+                guideId == cfg5.Id && guideIndex == 1)
             {
                 _ui.m_loaMask.visible = false;
                 MainDataManager.Instance.CanSwipe = true;
                 Timers.inst.AddUpdate(UpdateStudioMetalGuide);
             }
+
             GuideCfg cfg3 = CommonDataManager.Tables.TblGuideCfg.GetOrDefault(ConstGuideId.LUCKY_BOX_LINE); // 引导抽奖连线
             if (guideId == cfg3.Id && guideIndex == 1)
             {
@@ -164,15 +175,18 @@ namespace GFGGame
                 this._ui.m_compTxt.m_txtBg.height = this._ui.m_compTxt.m_txtBg.initHeight;
                 if (this._ui.m_compTxt.m_txt.textHeight > this._ui.m_compTxt.m_txt.textFormat.size * 3)
                 {
-                    this._ui.m_compTxt.m_txtBg.height = this._ui.m_compTxt.m_txtBg.height + this._ui.m_compTxt.m_txt.textFormat.size;
+                    this._ui.m_compTxt.m_txtBg.height =
+                        this._ui.m_compTxt.m_txtBg.height + this._ui.m_compTxt.m_txt.textFormat.size;
                 }
             }
         }
+
         private void UpdateTime(object param = null)
         {
             _countGuideRect = 0;
             Timers.inst.AddUpdate(UpdateGuideRect);
         }
+
         private void UpdateGuideRect(object param = null)
         {
             if (!isShowing)
@@ -180,6 +194,7 @@ namespace GFGGame
                 Timers.inst.Remove(UpdateGuideRect);
                 return;
             }
+
             if (guideTarget != null)
             {
                 Vector2 pos = guideTarget.LocalToGlobal(Vector2.zero);
@@ -194,12 +209,13 @@ namespace GFGGame
 
                     if (logicScreenPos.x > GRoot.inst.width / 2)
                     {
-                        _ui.m_comHolder.m_c1.selectedIndex = 0;//手在左边
+                        _ui.m_comHolder.m_c1.selectedIndex = 0; //手在左边
                     }
                     else
                     {
-                        _ui.m_comHolder.m_c1.selectedIndex = 1;//手在右边
+                        _ui.m_comHolder.m_c1.selectedIndex = 1; //手在右边
                     }
+
                     _ui.m_comHolder.target.visible = !NoTips;
                     _ui.m_maskCom.target.visible = !NoTips;
                     _ui.m_mask.visible = false;
@@ -209,28 +225,35 @@ namespace GFGGame
                     int padding = 100;
                     if (logicScreenPos.y < GRoot.inst.height - 700)
                     {
-                        _ui.m_compTxt.target.y = logicScreenPos.y + _ui.m_comHolder.target.height + padding;//在下
+                        _ui.m_compTxt.target.y = logicScreenPos.y + _ui.m_comHolder.target.height + padding; //在下
                     }
                     else
                     {
-                        _ui.m_compTxt.target.y = logicScreenPos.y - _ui.m_comHolder.target.height - _ui.m_compTxt.target.height - padding;//在上
+                        _ui.m_compTxt.target.y = logicScreenPos.y - _ui.m_comHolder.target.height -
+                                                 _ui.m_compTxt.target.height - padding; //在上
                     }
+
                     if (compTxtY > 0)
                     {
                         _ui.m_compTxt.target.y = compTxtY;
                     }
+
                     return;
                 }
+
                 _ui.m_maskCom.m_guideArea.SetXY(logicScreenPos.x, logicScreenPos.y);
             }
-            else {
+            else
+            {
                 _countGuideRect += 1;
                 //找不到引导对象3秒后关闭引导界面
-                if (_countGuideRect > 3 * 60) {
+                if (_countGuideRect > 3 * 60)
+                {
                     this.Hide();
                 }
             }
         }
+
         private void UpdateStudioMetalGuide(object param)
         {
             if (MainDataManager.Instance.ViewType == 1)

+ 80 - 24
GameClient/Assets/Game/HotUpdate/Views/InstanceZones/InstanceZonesView.cs

@@ -36,6 +36,7 @@ namespace GFGGame
                 _ui.Dispose();
                 _ui = null;
             }
+
             base.Dispose();
         }
 
@@ -59,8 +60,22 @@ namespace GFGGame
             _ui.m_instance.m_btnFieldWork.target.onClick.Add(OnFieldWorkClick);
             _ui.m_btnBack.onClick.Add(OnClickBtnBack);
             _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("hzs_bg");
-            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_bg_eff, "ui_HaiZhiShi", "Bg_All_Tx");
-            _effectUI3 = EffectUIPool.CreateEffectUI(_ui.m_fish_eff, "ui_HaiZhiShi", "Bg_Yu");
+            EffectUIPool.CreateEffectUI(_ui.m_bg_eff, "ui_HaiZhiShi", "Bg_All_Tx",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_fish_eff, "ui_HaiZhiShi", "Bg_Yu",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI3 = effect;
+                    }
+                });
             PreloadSuitModel();
         }
 
@@ -69,10 +84,11 @@ namespace GFGGame
             base.OnShown();
             _valueBarController.OnShown();
             _valueBarController.UpdateList(new List<int>() { ConstItemID.POWER });
-            
+
             CheckFunOpen();
             UpdateRedDot();
-            if(GuideDataManager.IsGuideFinish(ConstGuideId.FIELD) <= 0 && InstanceZonesDataManager.CheckLevelPass(fieldWorkLockLevel))
+            if (GuideDataManager.IsGuideFinish(ConstGuideId.FIELD) <= 0 &&
+                InstanceZonesDataManager.CheckLevelPass(fieldWorkLockLevel))
             {
                 _ui.m_instance.target.scrollPane.posY = 540;
             }
@@ -80,8 +96,16 @@ namespace GFGGame
             {
                 _ui.m_instance.target.scrollPane.posY = 0;
             }
+
             Timers.inst.AddUpdate(CheckGuide);
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_eff, "ui_HaiZhiShi", "Bg_ZhuanChang_NiuQu");
+            EffectUIPool.CreateEffectUI(_ui.m_eff, "ui_HaiZhiShi", "Bg_ZhuanChang_NiuQu",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
         }
 
         protected override void OnHide()
@@ -110,9 +134,16 @@ namespace GFGGame
                 || GuideDataManager.IsGuideFinish(ConstGuideId.STUDIO_FILING) <= 0
                 || GuideDataManager.IsGuideFinish("TimeTracingShowView") <= 0
                 || GuideDataManager.IsGuideFinish("ClothingSelectView") <= 0
-                || (GuideDataManager.IsGuideFinish("DAPEISAI_1") <=0 && MatchingCompetitionDataManager.Instance.MatchingState == 1 && MatchingCompetitionDataManager.Instance.MatchingCompetitionSeason != 0 && InstanceZonesDataManager.CheckLevelPass(100003004))
-                || (GuideDataManager.IsGuideFinish("DAPEISAI_2") <= 0 && MatchingCompetitionDataManager.Instance.MatchingState == 2 && MatchingCompetitionDataManager.Instance.MatchingCompetitionSeason != 0 && InstanceZonesDataManager.CheckLevelPass(100003004))
-                || (GuideDataManager.IsGuideFinish(ConstGuideId.FIELD) <= 0 && InstanceZonesDataManager.CheckLevelPass(FieldWorkDataManager.Instance.guideLevelID)))
+                || (GuideDataManager.IsGuideFinish("DAPEISAI_1") <= 0 &&
+                    MatchingCompetitionDataManager.Instance.MatchingState == 1 &&
+                    MatchingCompetitionDataManager.Instance.MatchingCompetitionSeason != 0 &&
+                    InstanceZonesDataManager.CheckLevelPass(100003004))
+                || (GuideDataManager.IsGuideFinish("DAPEISAI_2") <= 0 &&
+                    MatchingCompetitionDataManager.Instance.MatchingState == 2 &&
+                    MatchingCompetitionDataManager.Instance.MatchingCompetitionSeason != 0 &&
+                    InstanceZonesDataManager.CheckLevelPass(100003004))
+                || (GuideDataManager.IsGuideFinish(ConstGuideId.FIELD) <= 0 &&
+                    InstanceZonesDataManager.CheckLevelPass(FieldWorkDataManager.Instance.guideLevelID)))
             {
                 UpdateToCheckGuide(null);
             }
@@ -125,19 +156,30 @@ namespace GFGGame
         private void UpdateRedDot()
         {
             _valueBarController.UpdateRedPoint();
-            RedDotController.Instance.SetComRedDot(_ui.m_instance.m_btnStudio.target, RedDotDataManager.Instance.GetStudioFilingRed(), "", -126, 22);
-            RedDotController.Instance.SetComRedDot(_ui.m_instance.m_btnTravel.target, RedDotDataManager.Instance.GetTravelRed(), "", -152, 85);
-            RedDotController.Instance.SetComRedDot(_ui.m_instance.m_btnField.target, TimeTracingDataManager.Instance.GetLevelRewardStatus() || TimeTracingDataManager.Instance.GetAllChapterReward(), "", -103, 43);
+            RedDotController.Instance.SetComRedDot(_ui.m_instance.m_btnStudio.target,
+                RedDotDataManager.Instance.GetStudioFilingRed(), "", -126, 22);
+            RedDotController.Instance.SetComRedDot(_ui.m_instance.m_btnTravel.target,
+                RedDotDataManager.Instance.GetTravelRed(), "", -152, 85);
+            RedDotController.Instance.SetComRedDot(_ui.m_instance.m_btnField.target,
+                TimeTracingDataManager.Instance.GetLevelRewardStatus() ||
+                TimeTracingDataManager.Instance.GetAllChapterReward(), "", -103, 43);
         }
 
         private void CheckFunOpen()
         {
-            _ui.m_instance.m_btnPoem.m_loaLockIcon.visible = !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(MatchingCompetitionGatheringView).Name, false);
-            _ui.m_instance.m_btnStudio.m_loaLockIcon.visible = !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(StudioView).Name, false);
-            _ui.m_instance.m_btnTravel.m_loaLockIcon.visible = !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(TravelView).Name, false);
-            _ui.m_instance.m_btnField.m_loaLockIcon.visible = !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(TimeTracingShowView).Name, false);
-            _ui.m_instance.m_btnArena.m_loaLockIcon.visible = !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(ArenaView).Name, false);
-            _ui.m_instance.m_btnFieldWork.m_loaLockIcon.visible = !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(FieldWorkLevelView).Name, false);
+            _ui.m_instance.m_btnPoem.m_loaLockIcon.visible =
+                !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(MatchingCompetitionGatheringView).Name,
+                    false);
+            _ui.m_instance.m_btnStudio.m_loaLockIcon.visible =
+                !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(StudioView).Name, false);
+            _ui.m_instance.m_btnTravel.m_loaLockIcon.visible =
+                !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(TravelView).Name, false);
+            _ui.m_instance.m_btnField.m_loaLockIcon.visible =
+                !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(TimeTracingShowView).Name, false);
+            _ui.m_instance.m_btnArena.m_loaLockIcon.visible =
+                !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(ArenaView).Name, false);
+            _ui.m_instance.m_btnFieldWork.m_loaLockIcon.visible =
+                !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(FieldWorkLevelView).Name, false);
         }
 
         private void OnClickBtnBack()
@@ -188,10 +230,12 @@ namespace GFGGame
             LogServerHelper.SendPlayParticipationLog((int)PlayParticipationEnum.TIAN_YE_DIAO_CHA, 1);
             ViewManager.Show<FieldView>();
         }
+
         private void OnTimeTracingClick()
         {
             ViewManager.Show<TimeTracingShowView>();
         }
+
         private void OnFieldWorkClick()
         {
             ViewManager.Show<FieldWorkLevelView>();
@@ -203,11 +247,13 @@ namespace GFGGame
             {
                 return;
             }
+
             if (!ArenaDataManager.Instance.IsSeasonOpen)
             {
                 PromptController.Instance.ShowFloatTextPrompt("赛季未开始");
                 return;
             }
+
             await ArenaSproxy.ReqArenaInfos();
             ViewManager.Show<ArenaView>(this.viewData);
             ViewManager.Show<ArenaLoadingView>();
@@ -217,21 +263,30 @@ namespace GFGGame
         {
             if (!ViewManager.CheckIsTopView(this.viewCom)) return;
             //_ui.m_loaGuidestudio.visible = false;
-            GuideController.TryGuide(_ui.m_instance.m_btnStudio.target, ConstGuideId.STUDIO_PORCELAIN, 3, "工作室开门啦,进去看看~");
+            GuideController.TryGuide(_ui.m_instance.m_btnStudio.target, ConstGuideId.STUDIO_PORCELAIN, 3,
+                "工作室开门啦,进去看看~");
             GuideController.TryGuide(_ui.m_instance.m_btnStudio.target, ConstGuideId.STUDIO_FILING, 3, "工作室有新的任务啦。");
-            if (GuideDataManager.IsGuideFinish(ConstGuideId.FIELD) <= 0 && InstanceZonesDataManager.CheckLevelPass(FieldWorkDataManager.Instance.guideLevelID))
+            if (GuideDataManager.IsGuideFinish(ConstGuideId.FIELD) <= 0 &&
+                InstanceZonesDataManager.CheckLevelPass(FieldWorkDataManager.Instance.guideLevelID))
             {
-                GuideController.TryGuide(_ui.m_instance.m_btnFieldWork.target, ConstGuideId.FIELD, 1, "外出进行考察,会有意想不到的收获哦。");
+                GuideController.TryGuide(_ui.m_instance.m_btnFieldWork.target, ConstGuideId.FIELD, 1,
+                    "外出进行考察,会有意想不到的收获哦。");
             }
+
             GuideController.TryGuide(_ui.m_instance.m_btnStudio.target, ConstGuideId.STUDIO_PROPERTY, 2, "");
-            if(MatchingCompetitionDataManager.Instance.MatchingState == 1 && MatchingCompetitionDataManager.Instance.MatchingCompetitionSeason != 0 && InstanceZonesDataManager.CheckLevelPass(100003004))
+            if (MatchingCompetitionDataManager.Instance.MatchingState == 1 &&
+                MatchingCompetitionDataManager.Instance.MatchingCompetitionSeason != 0 &&
+                InstanceZonesDataManager.CheckLevelPass(100003004))
             {
                 GuideController.TryGuide(_ui.m_instance.m_btnPoemGudie, "DAPEISAI_1", 1, "进入搭配赛,进行搭配!");
             }
-            else if(MatchingCompetitionDataManager.Instance.MatchingState == 2 && MatchingCompetitionDataManager.Instance.MatchingCompetitionSeason != 0 && InstanceZonesDataManager.CheckLevelPass(100003004))
+            else if (MatchingCompetitionDataManager.Instance.MatchingState == 2 &&
+                     MatchingCompetitionDataManager.Instance.MatchingCompetitionSeason != 0 &&
+                     InstanceZonesDataManager.CheckLevelPass(100003004))
             {
                 GuideController.TryGuide(_ui.m_instance.m_btnPoemGudie, "DAPEISAI_2", 1, "进入搭配赛,进行评选!");
             }
+
             GuideController.TryGuide(_ui.m_instance.m_btnArena.target, ConstGuideId.ARENA_OPEN, 3, "在这里可以与其他小伙伴比拼搭配哦~");
             GuideController.TryGuide(_ui.m_btnBack, ConstGuideId.ENTER_CHAPTER_5, 1, "", -1, false);
             GuideController.TryGuide(_ui.m_instance.m_btnField.target, "TimeTracingShowView", 3, "合成副本可获得奖励和服装哦~");
@@ -240,6 +295,7 @@ namespace GFGGame
                 GuideController.TryCompleteGuide(ConstGuideId.ARENA_OPEN, 3);
             }
         }
+
         private void PreloadSuitModel()
         {
             List<int> suitIdList = new List<int>() { 201030, 201010, 202006 };
@@ -249,9 +305,9 @@ namespace GFGGame
                 ResType resType = ResType.Sprite;
                 if (suitCfg.AniRes != "")
                     resType = ResType.Animation;
-                PreDownloadManager.Instance.PreDownloadSuitRes(suitIdList[i], resType, new int[] { ConstDressUpItemType.BEI_JING }, false);
+                PreDownloadManager.Instance.PreDownloadSuitRes(suitIdList[i], resType,
+                    new int[] { ConstDressUpItemType.BEI_JING }, false);
             }
         }
-
     }
 }

+ 135 - 50
GameClient/Assets/Game/HotUpdate/Views/League/LeagueAnsweringView.cs

@@ -29,6 +29,7 @@ namespace GFGGame
                 _ui.Dispose();
                 _ui = null;
             }
+
             base.Dispose();
         }
 
@@ -53,9 +54,24 @@ namespace GFGGame
             _ui.m_listChat.SetVirtual();
             //_ui.m_txtResult.onFocusOut.Add(OnFocuseOut);
 
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holder, "ui_league", "Answer_bgtx");
-            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_holderHead, "ui_league", "Answer_Succeed");
+            EffectUIPool.CreateEffectUI(_ui.m_holder, "ui_league", "Answer_bgtx",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_holderHead, "ui_league", "Answer_Succeed",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                    }
+                });
         }
+
         protected override void AddEventListener()
         {
             base.AddEventListener();
@@ -114,19 +130,21 @@ namespace GFGGame
             else
             {
                 AlertUI.Show("退出活动会损失奖励哦,是否仍要退出?")
-                .SetLeftButton(true, "否")
-                .SetRightButton(true, "是", (object data) =>
-                {
-                    LeagueSproxy.ReqQuitAnswer().Coroutine();
-                    // ViewManager.GoBackFrom(typeof(LeagueAnsweringView).FullName);
-                    Hide();
-                });
+                    .SetLeftButton(true, "否")
+                    .SetRightButton(true, "是", (object data) =>
+                    {
+                        LeagueSproxy.ReqQuitAnswer().Coroutine();
+                        // ViewManager.GoBackFrom(typeof(LeagueAnsweringView).FullName);
+                        Hide();
+                    });
             }
         }
+
         private void OnBtnRuleClick()
         {
             ViewManager.Show<LeagueAnswerRewardView>();
         }
+
         private async void OnBtnSendClick()
         {
             if (_ui.m_btnSend.m_c1.selectedIndex == 1)
@@ -134,19 +152,19 @@ namespace GFGGame
                 PromptController.Instance.ShowFloatTextPrompt("消息发送频繁");
                 return;
             }
-            
+
             if (string.IsNullOrEmpty(_ui.m_txtChat.text))
             {
                 PromptController.Instance.ShowFloatTextPrompt("还没有输入想发送的内容哦");
                 return;
             }
-            
+
             bool result = await ChatSProxy.ReqSendChatMsg(ChatType.LeagueQuestion, _ui.m_txtChat.text);
             if (result)
             {
                 _ui.m_txtChat.text = "";
                 UpdateChatList();
-                
+
                 int num = CommonDataManager.Tables.TblGlobalCfg.ChatTime;
                 _ui.m_btnSend.m_timeStr.text = num.ToString();
                 _ui.m_btnSend.m_c1.selectedIndex = 1;
@@ -161,17 +179,22 @@ namespace GFGGame
                 });
             }
         }
+
         private void UpdateActiveTime(object param)
         {
             long curTime = TimeHelper.ServerNow();
             long endTime = 0;
             string str = "";
             //leagueQuestionStartTimeArr与leagueQuestionCloseTimeArr与leagueQuestionEndTimeArr数组长度相同,且索引对应。跟曾威定的
-            int curIndex = DateUtil.GetNearestStartTimeIndex( CommonDataManager.Tables.TblGlobalCfg.LeagueQuestionCloseTime );
-            if (LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionStatus) == LeagueQuestionStatus.End
-            || LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionStatus) == LeagueQuestionStatus.AnswerEnd)
+            int curIndex =
+                DateUtil.GetNearestStartTimeIndex(CommonDataManager.Tables.TblGlobalCfg.LeagueQuestionCloseTime);
+            if (LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionStatus) ==
+                LeagueQuestionStatus.End
+                || LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionStatus) ==
+                LeagueQuestionStatus.AnswerEnd)
             {
-                endTime = TimeUtil.GetCurDayTime( CommonDataManager.Tables.TblGlobalCfg.LeagueQuestionCloseTime[curIndex]);
+                endTime = TimeUtil.GetCurDayTime(
+                    CommonDataManager.Tables.TblGlobalCfg.LeagueQuestionCloseTime[curIndex]);
                 str = "房间剩余时间 ";
             }
             else
@@ -179,85 +202,126 @@ namespace GFGGame
                 endTime = TimeUtil.GetCurDayTime(CommonDataManager.Tables.TblGlobalCfg.LeagueQuestionEndTime[curIndex]);
                 str = "活动剩余时间 ";
             }
-            if (endTime - curTime < 0 && LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionStatus) == LeagueQuestionStatus.End)
+
+            if (endTime - curTime < 0 &&
+                LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionStatus) ==
+                LeagueQuestionStatus.End)
             {
                 Timers.inst.Remove(UpdateResultTime);
                 // ViewManager.GoBackFrom(typeof(LeagueAnsweringView).FullName);
                 Hide();
                 return;
             }
-            _ui.m_txtTime.text = string.Format("{0}[color=#E07748]{1}[/color]", str, TimeUtil.FormattingTimeTo_mmss(endTime - curTime));
+
+            _ui.m_txtTime.text = string.Format("{0}[color=#E07748]{1}[/color]", str,
+                TimeUtil.FormattingTimeTo_mmss(endTime - curTime));
         }
+
         private void UpdateQuestionState()
         {
-            if (LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionStatus) == LeagueQuestionStatus.Open)//答题中
+            if (LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionStatus) ==
+                LeagueQuestionStatus.Open) //答题中
             {
                 UpdateQuestion();
             }
-            else//cd中、答题结束
+            else //cd中、答题结束
             {
                 UpdateResult();
             }
+
             UpdateJoinList();
         }
+
         private void UpdateQuestion()
         {
             _ui.m_holderHead.visible = false;
-            _ui.m_txtRightCount.SetVar("value", LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionTrueCount).ToString()).FlushVars(); ;
-            _ui.m_txtRightCount1.SetVar("value", LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionTrueCount).ToString()).FlushVars(); ;
+            _ui.m_txtRightCount.SetVar("value",
+                    LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionTrueCount).ToString())
+                .FlushVars();
+            ;
+            _ui.m_txtRightCount1.SetVar("value",
+                    LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionTrueCount).ToString())
+                .FlushVars();
+            ;
             _ui.m_ctrlQuestionState.selectedIndex = 0;
             int questionId = (int)LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionId);
             LeagueQuestionCfg questionCfg = CommonDataManager.Tables.TblLeagueQuestionCfg.GetOrDefault(questionId);
 
-            _ui.m_txtAnswerNum.text = string.Format("第{0}/{1}题", LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionCount), CommonDataManager.Tables.TblGlobalCfg.LeagueQuestionNum);
+            _ui.m_txtAnswerNum.text = string.Format("第{0}/{1}题",
+                LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionCount),
+                CommonDataManager.Tables.TblGlobalCfg.LeagueQuestionNum);
             _ui.m_ctrlHasIcon.selectedIndex = string.IsNullOrEmpty(questionCfg.Res) ? 1 : 0;
-            _ui.m_loaIocn.url = string.IsNullOrEmpty(questionCfg.Res) ? "" : ResPathUtil.GetIconPath(questionCfg.Res, "png");
+            _ui.m_loaIocn.url = string.IsNullOrEmpty(questionCfg.Res)
+                ? ""
+                : ResPathUtil.GetIconPath(questionCfg.Res, "png");
             _ui.m_txtContent.text = questionCfg.Question;
 
-            bool isAnswer = !string.IsNullOrEmpty(LeagueDataManager.Instance.LastAnswerRoleData.MyAnswer) && LeagueDataManager.Instance.LastAnswerRoleData.LastQuestionId == LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionId);
+            bool isAnswer = !string.IsNullOrEmpty(LeagueDataManager.Instance.LastAnswerRoleData.MyAnswer) &&
+                            LeagueDataManager.Instance.LastAnswerRoleData.LastQuestionId ==
+                            LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionId);
             _ui.m_txtResult.text = isAnswer ? LeagueDataManager.Instance.LastAnswerRoleData.MyAnswer : "";
-            _ui.m_txtResult.enabled = !(isAnswer && LeagueDataManager.Instance.LastAnswerRoleData.MyAnswer != questionCfg.AnswerCorrect);
-            _ui.m_imgFault.visible = isAnswer && LeagueDataManager.Instance.LastAnswerRoleData.MyAnswer != questionCfg.AnswerCorrect;
+            _ui.m_txtResult.enabled = !(isAnswer &&
+                                        LeagueDataManager.Instance.LastAnswerRoleData.MyAnswer !=
+                                        questionCfg.AnswerCorrect);
+            _ui.m_imgFault.visible = isAnswer &&
+                                     LeagueDataManager.Instance.LastAnswerRoleData.MyAnswer !=
+                                     questionCfg.AnswerCorrect;
             _ui.m_ctrlQuestionType.selectedIndex = questionCfg.Type;
             if (questionCfg.Type == 1)
             {
                 _ui.m_listResult.numItems = questionCfg.Answer.Count;
             }
+
             _ui.m_txtAnswerTime.text = "00:" + CommonDataManager.Tables.TblGlobalCfg.LeagueQuestionRunTime;
 
             Timers.inst.Remove(UpdateAnswerTime);
             Timers.inst.Add(1, 0, UpdateAnswerTime);
         }
+
         private void UpdateAnswerTime(object param)
         {
             long curTime = TimeHelper.ServerNow();
             long endTime = LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionStatusEndTime);
-            if (LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionStatus) == LeagueQuestionStatus.End
-            || LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionStatus) == LeagueQuestionStatus.AnswerEnd
-            || endTime - curTime < 0)
+            if (LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionStatus) ==
+                LeagueQuestionStatus.End
+                || LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionStatus) ==
+                LeagueQuestionStatus.AnswerEnd
+                || endTime - curTime < 0)
             {
                 Debug.Log("endTime:" + endTime + "   curTime:" + curTime);
                 Timers.inst.Remove(UpdateAnswerTime);
                 return;
             }
+
             _ui.m_txtAnswerTime.text = TimeUtil.FormattingTimeTo_mmss((int)(endTime - curTime));
         }
+
         private void UpdateResult()
         {
             _ui.m_ctrlResult.selectedIndex = LeagueDataManager.Instance.LastAnswerRoleData.LastQuestionResult;
-            _ui.m_txtRightCount.text = string.Format("全员已答对[color=#AF5638]{0}[/color]题", LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionTrueCount));
-            _ui.m_txtRightCount.SetVar("value", LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionTrueCount).ToString()).FlushVars();
-            _ui.m_txtRightCount1.SetVar("value", LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionTrueCount).ToString()).FlushVars();
-            _ui.m_txtCdTime.SetVar("value", CommonDataManager.Tables.TblGlobalCfg.LeagueQuestionNextTime.ToString()).FlushVars();
+            _ui.m_txtRightCount.text = string.Format("全员已答对[color=#AF5638]{0}[/color]题",
+                LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionTrueCount));
+            _ui.m_txtRightCount.SetVar("value",
+                    LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionTrueCount).ToString())
+                .FlushVars();
+            _ui.m_txtRightCount1.SetVar("value",
+                    LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionTrueCount).ToString())
+                .FlushVars();
+            _ui.m_txtCdTime.SetVar("value", CommonDataManager.Tables.TblGlobalCfg.LeagueQuestionNextTime.ToString())
+                .FlushVars();
             _ui.m_ctrlQuestionState.selectedIndex = 1;
 
             if (LeagueDataManager.Instance.LastAnswerRoleData.LastQuestionResult == LastQuestionResult.SomeBodyRight)
             {
-
                 _ui.m_comRightHead.target.visible = true;
                 _ui.m_imgFail.visible = false;
-                OtherRoleInfoData roleInfoData = LeagueDataManager.Instance.GetMemberRoleInfo(LeagueDataManager.Instance.LastAnswerRoleData.RightRoleId);
-                ItemCfg headCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(roleInfoData.headId == 0 ? ConstItemID.HEADID : roleInfoData.headId);
+                OtherRoleInfoData roleInfoData =
+                    LeagueDataManager.Instance.GetMemberRoleInfo(LeagueDataManager.Instance.LastAnswerRoleData
+                        .RightRoleId);
+                ItemCfg headCfg =
+                    CommonDataManager.Tables.TblItemCfg.GetOrDefault(roleInfoData.headId == 0
+                        ? ConstItemID.HEADID
+                        : roleInfoData.headId);
                 _ui.m_comRightHead.m_loaIcon.url = ResPathUtil.GetHeadPath(headCfg.Res);
                 _ui.m_txtInfo.text = string.Format("{0} [color=#915E15]答对了![/color]", roleInfoData.roleName);
                 _ui.m_holderHead.visible = true;
@@ -276,38 +340,44 @@ namespace GFGGame
             {
                 _ui.m_comRightHead.target.visible = false;
                 _ui.m_imgFail.visible = false;
-                if (LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionCount) == CommonDataManager.Tables.TblGlobalCfg.LeagueQuestionNum)//全部答完
+                if (LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionCount) ==
+                    CommonDataManager.Tables.TblGlobalCfg.LeagueQuestionNum) //全部答完
                 {
                     _ui.m_txtInfo.text = "全部题目答完啦,活动结束啦~";
                 }
-                else//答题时间结束
+                else //答题时间结束
                 {
                     _ui.m_txtInfo.text = "活动结束啦~";
                 }
             }
         }
+
         private void UpdateResultTime(object param)
         {
             long curTime = TimeHelper.ServerNow();
             long endTime = LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionStatusEndTime);
-            if (LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionStatus) != LeagueQuestionStatus.WaitNext
-            || endTime - curTime < 0)
+            if (LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionStatus) !=
+                LeagueQuestionStatus.WaitNext
+                || endTime - curTime < 0)
             {
                 Timers.inst.Remove(UpdateResultTime);
                 return;
             }
-            _ui.m_txtCdTime.SetVar("value", (((endTime - curTime) / 1000) + 1).ToString()).FlushVars();
 
+            _ui.m_txtCdTime.SetVar("value", (((endTime - curTime) / 1000) + 1).ToString()).FlushVars();
         }
+
         private void UpdateJoinList()
         {
             _memberIds = LeagueDataManager.Instance.ListAnsweringDatas
                 .OrderByDescending(pair => pair.Value) // 按值(答题数量)降序排序
                 .Select(pair => pair.Key)
-                .ToList(); 
+                .ToList();
             _ui.m_listJoin.numItems = _memberIds.Count;
-            _ui.m_txtJoinNum.text = string.Format("当前参与人员:{0}/{1}", _memberIds.Count, LeagueDataManager.Instance.LeagueData.LeagueMemberDatas.Count);
+            _ui.m_txtJoinNum.text = string.Format("当前参与人员:{0}/{1}", _memberIds.Count,
+                LeagueDataManager.Instance.LeagueData.LeagueMemberDatas.Count);
         }
+
         private void UpdateChatList()
         {
             _memberIds.Sort((long a, long b) =>
@@ -321,10 +391,12 @@ namespace GFGGame
             _ui.m_listChat.numItems = ChatDataManager.Instance.GetChatDatas(ChatType.LeagueQuestion).Count;
             _ui.m_listChat.scrollPane.ScrollBottom(true);
         }
+
         private void RenderListResultItem(int index, GObject obj)
         {
             int questionId = (int)LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionId);
-            LeagueQuestionCfg cfg = CommonDataManager.Tables.TblLeagueQuestionCfg.GetOrDefault(questionId); ;
+            LeagueQuestionCfg cfg = CommonDataManager.Tables.TblLeagueQuestionCfg.GetOrDefault(questionId);
+            ;
             UI_Button123 item = UI_Button123.Proxy(obj);
             int data = index + 1;
 
@@ -334,18 +406,23 @@ namespace GFGGame
             //{
             //    item.target.title = string.Format("{0}.{1} 正确", data, cfg.answerArr[index]);
             //}
-            
+
             string myAnswer = LeagueDataManager.Instance.LastAnswerRoleData.MyAnswer;
-            bool isAnswer = !string.IsNullOrEmpty(LeagueDataManager.Instance.LastAnswerRoleData.MyAnswer) && LeagueDataManager.Instance.LastAnswerRoleData.LastQuestionId == LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionId);
+            bool isAnswer = !string.IsNullOrEmpty(LeagueDataManager.Instance.LastAnswerRoleData.MyAnswer) &&
+                            LeagueDataManager.Instance.LastAnswerRoleData.LastQuestionId ==
+                            LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionId);
             item.target.touchable = !isAnswer;
-            item.m_c1.selectedIndex = isAnswer && myAnswer == data.ToString() && myAnswer != cfg.AnswerCorrect.ToString() ? 0 : 1;
+            item.m_c1.selectedIndex =
+                isAnswer && myAnswer == data.ToString() && myAnswer != cfg.AnswerCorrect.ToString() ? 0 : 1;
             if (item.target.data == null)
             {
                 item.target.onClick.Add(OnBtnChooseClick);
             }
+
             item.target.data = data;
             UI_Button123.ProxyEnd();
         }
+
         private async void OnBtnChooseClick(EventContext context)
         {
             GObject obj = context.sender as GObject;
@@ -358,6 +435,7 @@ namespace GFGGame
                 _ui.m_listResult.numItems = cfg.Answer.Count;
             }
         }
+
         private async void OnFocuseOut()
         {
             if (string.IsNullOrEmpty(_ui.m_txtResult.text))
@@ -365,6 +443,7 @@ namespace GFGGame
                 PromptController.Instance.ShowFloatTextPrompt("还没有输入答案哦");
                 return;
             }
+
             int questionId = (int)LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionId);
             bool result = await LeagueSproxy.ReqAnswerQuestion(questionId, _ui.m_txtResult.text);
             if (result)
@@ -374,6 +453,7 @@ namespace GFGGame
                 _ui.m_imgFault.visible = _ui.m_txtResult.text != questionCfg.AnswerCorrect;
             }
         }
+
         private void RenderListJoinItem(int index, GObject obj)
         {
             OtherRoleInfoData roleInfo = LeagueDataManager.Instance.GetMemberRoleInfo(_memberIds[index]);
@@ -383,13 +463,15 @@ namespace GFGGame
             item.m_txtAnswerCount.text = LeagueDataManager.Instance.ListAnsweringDatas[roleInfo.roleId].ToString();
             UI_ListAnswerJoinItem.ProxyEnd();
         }
+
         private void RenderListChatItem(int index, GObject obj)
         {
             ChatData chatData = ChatDataManager.Instance.ChatDatas[ChatType.LeagueQuestion][index];
             OtherRoleInfoData roleInfo = chatData.RoleInfo;
             UI_ListChatAnswerItem item = UI_ListChatAnswerItem.Proxy(obj);
 
-            RoleInfoManager.Instance.UpdateHeadWithLv(item.m_comHead, roleInfo.headId, roleInfo.headBorderId, roleInfo.roleLv);
+            RoleInfoManager.Instance.UpdateHeadWithLv(item.m_comHead, roleInfo.headId, roleInfo.headBorderId,
+                roleInfo.roleLv);
             item.m_txtName.text = roleInfo.roleName;
             int roldRank = _memberIds.IndexOf(roleInfo.roleId);
             item.m_c1.selectedIndex = roldRank < 3 && roldRank > 0 ? roldRank : 3;
@@ -399,13 +481,16 @@ namespace GFGGame
                 string str = i == 12 * (i + 1) ? chatData.Content[i] + "/n" : chatData.Content[i].ToString();
                 content += str;
             }
+
             item.m_txtChatContent.text = chatData.Content;
 
             UI_ListChatAnswerItem.ProxyEnd();
         }
+
         private string GetListChatItemResource(int index)
         {
-            if (ChatDataManager.Instance.GetChatDatas(ChatType.LeagueQuestion)[index].RoleInfo.roleId == RoleDataManager.roleId)
+            if (ChatDataManager.Instance.GetChatDatas(ChatType.LeagueQuestion)[index].RoleInfo.roleId ==
+                RoleDataManager.roleId)
                 return "ui://League/ListChatAnswerItemMine";
             else
                 return "ui://League/ListChatAnswerItem";

+ 32 - 5
GameClient/Assets/Game/HotUpdate/Views/League/LeagueSkillUpView.cs

@@ -72,9 +72,30 @@ namespace GFGGame
 
             _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("lm_ch_jnbg");
 
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holder, "ui_league", "TEA", 110);
-            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_holderSkill, "ui_league", "tea_unlock");
-            _effectUI3 = EffectUIPool.CreateEffectUI(_ui.m_holderScore, "ui_league", "tea_unlock");
+            EffectUIPool.CreateEffectUI(_ui.m_holder, "ui_league", "TEA", 110,
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_holderSkill, "ui_league", "tea_unlock",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_holderScore, "ui_league", "tea_unlock",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI3 = effect;
+                    }
+                });
         }
 
         protected override void AddEventListener()
@@ -272,8 +293,14 @@ namespace GFGGame
 
             if (_showEff && isLock && canActive && _effectUIs.Count <= index)
             {
-                EffectUI _effectUI = EffectUIPool.CreateEffectUI(item.m_holdeLight, "ui_league", "tea_nolearn");
-                _effectUIs.Add(_effectUI);
+                EffectUIPool.CreateEffectUI(item.m_holdeLight, "ui_league", "tea_nolearn",
+                    onComplete: (effect) =>
+                    {
+                        if (effect != null)
+                        {
+                            _effectUIs.Add(effect);
+                        }
+                    });
             }
 
             if (isLock && canActive)

+ 97 - 20
GameClient/Assets/Game/HotUpdate/Views/League/LeagueView.cs

@@ -18,6 +18,7 @@ namespace GFGGame
         private EffectUI _effectUI5;
         private EffectUI _effectUI6;
         private EffectUI _effectUI7;
+
         public override void Dispose()
         {
             EffectUIPool.Recycle(_effectUI1);
@@ -39,6 +40,7 @@ namespace GFGGame
                 _ui.Dispose();
                 _ui = null;
             }
+
             base.Dispose();
         }
 
@@ -68,13 +70,62 @@ namespace GFGGame
             _ui.m_btnRule.onClick.Add(RuleController.ShowRuleView);
             _ui.m_btnRule.data = 300015;
 
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holderfBgEff, "ui_Small_parts", "YaJi_Ui");
-            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_btnPray.m_effect, "ui_Small_parts", "YaJi_TuBiao");
-            _effectUI3 = EffectUIPool.CreateEffectUI(_ui.m_btnSkill.m_Effect, "ui_Small_parts", "YaJi_TuBiao");
-            _effectUI4 = EffectUIPool.CreateEffectUI(_ui.m_btnAnswer.m_Effect, "ui_Small_parts", "YaJi_TuBiao");
-            _effectUI5 = EffectUIPool.CreateEffectUI(_ui.m_btnParty.m_Effect, "ui_Small_parts", "YaJi_TuBiao");
-            _effectUI6 = EffectUIPool.CreateEffectUI(_ui.m_btnGift.m_Effect, "ui_Small_parts", "YaJi_TuBiao");
-            _effectUI7 = EffectUIPool.CreateEffectUI(_ui.m_btnShop.m_Effect, "ui_Small_parts", "YaJi_TuBiao");
+            EffectUIPool.CreateEffectUI(_ui.m_holderfBgEff, "ui_Small_parts", "YaJi_Ui",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_btnPray.m_effect, "ui_Small_parts", "YaJi_TuBiao",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_btnSkill.m_Effect, "ui_Small_parts", "YaJi_TuBiao",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI3 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_btnAnswer.m_Effect, "ui_Small_parts", "YaJi_TuBiao",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI4 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_btnParty.m_Effect, "ui_Small_parts", "YaJi_TuBiao",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI5 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_btnGift.m_Effect, "ui_Small_parts", "YaJi_TuBiao",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI6 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_btnShop.m_Effect, "ui_Small_parts", "YaJi_TuBiao",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI7 = effect;
+                    }
+                });
         }
 
         protected override void AddEventListener()
@@ -86,7 +137,6 @@ namespace GFGGame
             EventAgent.AddEventListener(ConstMessage.NOTICE_CHAT_MESSAGE, UpdateRedChatBtn);
             EventAgent.AddEventListener(ConstMessage.OPEN_CHAT_MESSAGE, UpdateRedChatBtn);
             EventAgent.AddEventListener(ConstMessage.GET_LEAGUE_INFO, UpdateRedGiftBtn);
-            
         }
 
         protected override void OnShown()
@@ -123,22 +173,27 @@ namespace GFGGame
         {
             ViewManager.GoBackFrom(typeof(LeagueView).FullName);
         }
+
         private void OnBtnMemberClick()
         {
             ViewManager.Show<LeagueMemberView>();
         }
+
         private void OnBtnConstructClick()
         {
             ViewManager.Show<LeagueConstructView>();
         }
+
         private void OnComLeagueHeadClick()
         {
             ViewManager.Show<LeagueChangeNameView>();
         }
+
         private void OnBtnChangeNoticeClick()
         {
             ViewManager.Show<LeagueChangeNoticeView>();
         }
+
         private async void OnShowOhterInfo()
         {
             long roleId = LeagueDataManager.Instance.LeagueData.OwnerId;
@@ -146,34 +201,45 @@ namespace GFGGame
             OtherRoleInfoDetailData detailData = await RoleInfoSProxy.ReqOtherRoleDetailInfo(roleId);
             ViewManager.Show<OtherRoleInfoView>(new object[] { roleInfoData, detailData });
         }
+
         private void OnBtnChatClick()
         {
             ViewManager.Show<LeagueChatView>();
         }
+
         private void OnBtnPrayClick()
         {
             ViewManager.Show<LeaguePrayView>();
         }
+
         private void OnBtnPartyClick()
         {
             ViewManager.Show<LeagueAnswerView>(1);
         }
+
         private void OnBtnShopClick()
         {
-            ViewManager.Show<StoreView>(new object[] { ConstStoreTabId.STORE_EXCHANGE, ConstStoreSubId.STORE_EXCHANGE_LEAGUE });//new object[] { typeof(LeaguePrayView).FullName, true }
+            ViewManager.Show<StoreView>(new object[]
+            {
+                ConstStoreTabId.STORE_EXCHANGE, ConstStoreSubId.STORE_EXCHANGE_LEAGUE
+            }); //new object[] { typeof(LeaguePrayView).FullName, true }
         }
+
         private void OnBtnSkillClick()
         {
             ViewManager.Show<LeagueSkillView>();
         }
+
         private void OnBtnAnswerClick()
         {
             ViewManager.Show<LeagueAnswerView>();
         }
+
         private void OnBtnGiftClick()
         {
             ViewManager.Show<LeagueGiftView>();
         }
+
         private void UpdateView()
         {
             UpdateInfo();
@@ -182,6 +248,7 @@ namespace GFGGame
             UpdateRedDot();
             UpdateEffect();
         }
+
         private void UpdateInfo()
         {
             LeagueData leagueData = LeagueDataManager.Instance.LeagueData;
@@ -193,32 +260,39 @@ namespace GFGGame
             _ui.m_comLeagueHead.m_txtUnionLv.text = LeagueDataManager.Instance.HallLevel.ToString();
             _ui.m_comtxtNotice.m_txtNotice.text = leagueData.Notice;
             _ui.m_txtLeaderName.text = leagueData.LeagueMemberDatas[leagueData.OwnerId].RoleInfo.roleName;
-            RoleInfoManager.Instance.UpdateHead(_ui.m_comHead, leagueData.LeagueMemberDatas[leagueData.OwnerId].RoleInfo.headId, leagueData.LeagueMemberDatas[leagueData.OwnerId].RoleInfo.headBorderId);
+            RoleInfoManager.Instance.UpdateHead(_ui.m_comHead,
+                leagueData.LeagueMemberDatas[leagueData.OwnerId].RoleInfo.headId,
+                leagueData.LeagueMemberDatas[leagueData.OwnerId].RoleInfo.headBorderId);
         }
+
         private void UpdateValue()
         {
             LeagueData leagueData = LeagueDataManager.Instance.LeagueData;
             _ui.m_btnMember.m_txtCount.SetVar("value", leagueData.Num.ToString()).FlushVars();
-            LeagueHotelCfg hotelCfg = CommonDataManager.Tables.TblLeagueHotelCfg.GetOrDefault(LeagueDataManager.Instance.HotelLevel);
+            LeagueHotelCfg hotelCfg =
+                CommonDataManager.Tables.TblLeagueHotelCfg.GetOrDefault(LeagueDataManager.Instance.HotelLevel);
             _ui.m_btnMember.m_txtCount.SetVar("maxValue", hotelCfg.Limit.ToString()).FlushVars();
 
-            _ui.m_btnConstruct.m_txtCount.SetVar("value", LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueCoin).ToString()).FlushVars();
-            LeagueStoreCfg storeCfg = CommonDataManager.Tables.TblLeagueStoreCfg.GetOrDefault(LeagueDataManager.Instance.StoreLevel);
+            _ui.m_btnConstruct.m_txtCount.SetVar("value",
+                LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueCoin).ToString()).FlushVars();
+            LeagueStoreCfg storeCfg =
+                CommonDataManager.Tables.TblLeagueStoreCfg.GetOrDefault(LeagueDataManager.Instance.StoreLevel);
             _ui.m_btnConstruct.m_txtCount.SetVar("maxValue", storeCfg.LimitStore.ToString()).FlushVars();
             ItemCfg itemCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(ConstItemID.LEAGUE_COIN);
-
         }
 
         private void UpdateButton()
         {
             Timers.inst.Add(1, 0, UpdateTime);
         }
+
         private void UpdateTime(object param)
         {
             if (LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionStatus) ==
                 LeagueQuestionStatus.End)
             {
-                int curIndex = DateUtil.GetNearestStartTimeIndex( CommonDataManager.Tables.TblGlobalCfg.LeagueQuestionCloseTime);
+                int curIndex =
+                    DateUtil.GetNearestStartTimeIndex(CommonDataManager.Tables.TblGlobalCfg.LeagueQuestionCloseTime);
                 var questionStartTimeStr = CommonDataManager.Tables.TblGlobalCfg.LeagueQuestionStartTime[curIndex];
                 var endTime = TimeUtil.GetNextTime(questionStartTimeStr);
 
@@ -253,15 +327,19 @@ namespace GFGGame
 
         private void UpdateRedDot()
         {
-            RedDotController.Instance.SetComRedDot(_ui.m_btnMember.target, RedDotDataManager.Instance.GetLeagueMemberJoinRed());
-            RedDotController.Instance.SetComRedDot(_ui.m_btnPray.target, RedDotDataManager.Instance.GetLeaguePrayRed(), "", -70, 60);
-            RedDotController.Instance.SetComRedDot(_ui.m_btnParty.target, RedDotDataManager.Instance.GetLeagueTeaPartyRed(), "", -440, 60);
+            RedDotController.Instance.SetComRedDot(_ui.m_btnMember.target,
+                RedDotDataManager.Instance.GetLeagueMemberJoinRed());
+            RedDotController.Instance.SetComRedDot(_ui.m_btnPray.target, RedDotDataManager.Instance.GetLeaguePrayRed(),
+                "", -70, 60);
+            RedDotController.Instance.SetComRedDot(_ui.m_btnParty.target,
+                RedDotDataManager.Instance.GetLeagueTeaPartyRed(), "", -440, 60);
             UpdateRedGiftBtn();
         }
 
         private void UpdateRedGiftBtn()
         {
-            RedDotController.Instance.SetComRedDot(_ui.m_btnGift.target, RedDotDataManager.Instance.GetLeagueGiftBoxRed(), "", -120, 100);
+            RedDotController.Instance.SetComRedDot(_ui.m_btnGift.target,
+                RedDotDataManager.Instance.GetLeagueGiftBoxRed(), "", -120, 100);
         }
 
         private void UpdateRedChatBtn()
@@ -296,7 +374,6 @@ namespace GFGGame
             bool result = await LeagueSproxy.GetTeapartyMatchingInfos(RoleDataManager.roleId);
             if (result)
             {
-
             }
         }
     }

+ 21 - 11
GameClient/Assets/Game/HotUpdate/Views/Loading/LoadingView.cs

@@ -8,13 +8,14 @@ namespace GFGGame
 {
     public class LoadingView : BaseWindow
     {
-
         private UI_LoadingView _ui;
+
         //每个进度需要的时间,单位为毫秒
         private const float TimePerProgress = 0.005f;
         private string[] resNames = { "11", "33" };
 
         private EffectUI _effectUI1;
+
         //每个进度需要的时间,单位为毫秒
         private float timePerProgress;
 
@@ -29,12 +30,13 @@ namespace GFGGame
                     // m_Instance = new LauncherView();
                     m_Instance = ViewManager.GetUIView(typeof(LoadingView).Name) as LoadingView;
                 }
+
                 return m_Instance;
             }
         }
+
         public override void Dispose()
         {
-
             m_Instance = null;
             EffectUIPool.Recycle(_effectUI1);
             _effectUI1 = null;
@@ -43,6 +45,7 @@ namespace GFGGame
                 _ui.Dispose();
                 _ui = null;
             }
+
             base.Dispose();
         }
 
@@ -53,15 +56,21 @@ namespace GFGGame
             _ui = UI_LoadingView.Create();
             this.viewCom = _ui.target;
             isfullScreen = true;
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holder, "ui_dljm", "ui_dljm_jdt_tw");
-
+            EffectUIPool.CreateEffectUI(_ui.m_holder, "ui_dljm", "ui_dljm_jdt_tw",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
         }
 
         protected override void OnShown()
         {
-            base.OnShown();//1;//
+            base.OnShown(); //1;//
             SetProgress(0);
-            if(this.viewData != null)
+            if (this.viewData != null)
             {
                 timePerProgress = (float)this.viewData;
             }
@@ -69,6 +78,7 @@ namespace GFGGame
             {
                 timePerProgress = TimePerProgress;
             }
+
             int index = Random.Range(0, resNames.Length);
             _ui.m_loaBg.url = ResPathUtil.GetBgImgPath(resNames[index]);
 
@@ -92,7 +102,8 @@ namespace GFGGame
             {
                 return;
             }
-            string str = string.Format("{0}  {1}", desc, descRight);//  + descRight;
+
+            string str = string.Format("{0}  {1}", desc, descRight); //  + descRight;
             _ui.m_txtDescLeft.text = str;
             // _ui.m_txtDescLeft.text = desc ?? "";
             // _ui.m_txtDescRight.text = descRight ?? "";
@@ -109,6 +120,7 @@ namespace GFGGame
             {
                 return;
             }
+
             double oldValule;
             GTweener twener = GTween.GetTween(_ui.m_progressBar1, TweenPropType.Progress);
             if (twener != null)
@@ -119,6 +131,7 @@ namespace GFGGame
             {
                 oldValule = _ui.m_progressBar1.value;
             }
+
             if (progress < oldValule)
             {
                 _ui.m_progressBar1.value = progress;
@@ -133,7 +146,6 @@ namespace GFGGame
                 {
                     float posX = _ui.m_progressBar1.width * (t.value.x / 100) + _ui.m_progressBar1.x;
                     _ui.m_imgAni.x = Mathf.Min(posX, _ui.m_progressBar1.width + _ui.m_progressBar1.x);
-
                 });
                 if (callback != null)
                 {
@@ -141,7 +153,5 @@ namespace GFGGame
                 }
             }
         }
-
-
     }
-}
+}

+ 25 - 6
GameClient/Assets/Game/HotUpdate/Views/LuckyBox/LuckyBoxActivityView.cs

@@ -71,10 +71,23 @@ namespace GFGGame
             _ui.m_btnShop.target.onClick.Add(OnClickBtnShop);
             _ui.m_btnGiftBag.target.onClick.Add(OnClickBtnGiftBag);
             _ui.m_btnLuckyDiscount.target.onClick.Add(OnClickBtnLuckyDiscount);
-            _effectUIDic.Add("Button_public",
-                EffectUIPool.CreateEffectUI(_ui.m_comBox.m_btnBuyTen_eff, "ui_LuckyBox", "Button_public"));
-            _effectUIDic.Add("Button_Text_DianCang",
-                EffectUIPool.CreateEffectUI(_ui.m_comBox.m_Special_eff, "ui_LuckyBox", "Button_Text_DianCang"));
+            EffectUIPool.CreateEffectUI(_ui.m_comBox.m_btnBuyTen_eff, "ui_LuckyBox", "Button_public",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUIDic.Add("Button_public", effect);
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_comBox.m_Special_eff, "ui_LuckyBox", "Button_Text_DianCang",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUIDic.Add("Button_Text_DianCang", effect);
+                    }
+                });
         }
 
         protected override void AddEventListener()
@@ -225,8 +238,14 @@ namespace GFGGame
             _ui.m_comLuckyDiscount.visible = ActivityDataManager.Instance.allLimitStlycTimes >= 20 &&
                                              remainBuyNum != 0 && list.Count > 0;
             if (_effectUI1 == null)
-                _effectUI1 =
-                    EffectUIPool.CreateEffectUI(_ui.m_btnLuckyDiscount.m_holderEff, "ui_Activity", "Luckyicon");
+                EffectUIPool.CreateEffectUI(_ui.m_btnLuckyDiscount.m_holderEff, "ui_Activity", "Luckyicon",
+                    onComplete: (effect) =>
+                    {
+                        if (effect != null)
+                        {
+                            _effectUI1 = effect;
+                        }
+                    });
 
             if (LuckyBoxDataManager.Instance.OPEN_LUCKY_DISCONT && _ui.m_btnLuckyDiscount.target.visible)
             {

+ 166 - 41
GameClient/Assets/Game/HotUpdate/Views/LuckyBox/LuckyBoxBonusShowView.cs

@@ -196,9 +196,30 @@ namespace GFGGame
         private IEnumerator LoadAllEffects(Action onComplete)
         {
             // 加载背景特效
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holder_star, "ui_LuckyBox", "bg_liuxing");
-            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_holder_bg, "ui_LuckyBox", "CK_UI");
-            _effectUI3 = EffectUIPool.CreateEffectUI(_ui.m_holder_cloud, "ui_LuckyBox", "bg_cloud");
+            EffectUIPool.CreateEffectUI(_ui.m_holder_star, "ui_LuckyBox", "bg_liuxing",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_holder_bg, "ui_LuckyBox", "CK_UI",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_holder_cloud, "ui_LuckyBox", "bg_cloud",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI3 = effect;
+                    }
+                });
 
             // 等待所有背景特效加载完成
             while (_effectUI1.GetObj() == null || _effectUI2.GetObj() == null ||
@@ -300,24 +321,42 @@ namespace GFGGame
                     case 3:
                         if (!_effectUIDic.ContainsKey("CK_Loop_Wait_Chen" + index))
                         {
-                            _effectUIDic.Add("CK_Loop_Wait_Chen" + index,
-                                EffectUIPool.CreateEffectUI(item.m_waitClick_eff, "ui_LuckyBox", "CK_Loop_Wait_Chen"));
+                            EffectUIPool.CreateEffectUI(item.m_waitClick_eff, "ui_LuckyBox", "CK_Loop_Wait_Chen",
+                                onComplete: (effect) =>
+                                {
+                                    if (effect != null)
+                                    {
+                                        _effectUIDic.Add("CK_Loop_Wait_Chen" + index, effect);
+                                    }
+                                });
                         }
 
                         break;
                     case 4:
                         if (!_effectUIDic.ContainsKey("CK_Loop_Wait_GS" + index))
                         {
-                            _effectUIDic.Add("CK_Loop_Wait_GS" + index,
-                                EffectUIPool.CreateEffectUI(item.m_waitClick_eff, "ui_LuckyBox", "CK_Loop_Wait_GS"));
+                            EffectUIPool.CreateEffectUI(item.m_waitClick_eff, "ui_LuckyBox", "CK_Loop_Wait_GS",
+                                onComplete: (effect) =>
+                                {
+                                    if (effect != null)
+                                    {
+                                        _effectUIDic.Add("CK_Loop_Wait_GS" + index, effect);
+                                    }
+                                });
                         }
 
                         break;
                     case 5:
                         if (!_effectUIDic.ContainsKey("CK_Loop_Wait_Jin" + index))
                         {
-                            _effectUIDic.Add("CK_Loop_Wait_Jin" + index,
-                                EffectUIPool.CreateEffectUI(item.m_waitClick_eff, "ui_LuckyBox", "CK_Loop_Wait_Jin"));
+                            EffectUIPool.CreateEffectUI(item.m_waitClick_eff, "ui_LuckyBox", "CK_Loop_Wait_Jin",
+                                onComplete: (effect) =>
+                                {
+                                    if (effect != null)
+                                    {
+                                        _effectUIDic.Add("CK_Loop_Wait_Jin" + index, effect);
+                                    }
+                                });
                         }
 
                         break;
@@ -713,55 +752,141 @@ namespace GFGGame
                 // 点击特效
                 if (!_effectUIDic.ContainsKey("CK_Cirle_DJ" + index))
                 {
-                    _effectUIDic.Add("CK_Cirle_DJ" + index,
-                        EffectUIPool.CreateEffectUI(item.m_comIcon.m_click_eff, "ui_LuckyBox", "CK_Cirle_DJ"));
+                    EffectUIPool.CreateEffectUI(item.m_comIcon.m_click_eff, "ui_LuckyBox", "CK_Cirle_DJ",
+                        onComplete: (effect) =>
+                        {
+                            if (effect != null)
+                            {
+                                _effectUIDic.Add("CK_Cirle_DJ" + index, effect);
+                            }
+                        });
                 }
                 else
                 {
-                    _effectUIDic["CK_Cirle_DJ" + index] =
-                        EffectUIPool.CreateEffectUI(item.m_comIcon.m_click_eff, "ui_LuckyBox", "CK_Cirle_DJ");
+                    EffectUIPool.CreateEffectUI(item.m_comIcon.m_click_eff, "ui_LuckyBox", "CK_Cirle_DJ",
+                        onComplete: (effect) =>
+                        {
+                            if (effect != null)
+                            {
+                                _effectUIDic["CK_Cirle_DJ" + index] = effect;
+                            }
+                        });
                 }
 
                 // 翻开特效
                 switch (itemCfg.Rarity)
                 {
                     case 1:
-                        _effectUIDic.Add("CK_OpenAfter_LanHui_UI" + index,
-                            EffectUIPool.CreateEffectUI(item.m_comIcon.m_ui_eff, "ui_LuckyBox",
-                                "CK_OpenAfter_HuiLan_UI"));
-                        _effectUIDic.Add("CK_OpenAfter_LanHui_TX" + index,
-                            EffectUIPool.CreateEffectUI(item.m_comIcon.m_flip_eff, "ui_LuckyBox",
-                                "CK_OpenAfter_LanHui_TX"));
+
+                        EffectUIPool.CreateEffectUI(item.m_comIcon.m_ui_eff, "ui_LuckyBox",
+                            "CK_OpenAfter_HuiLan_UI",
+                            onComplete: (effect) =>
+                            {
+                                if (effect != null)
+                                {
+                                    _effectUIDic.Add("CK_OpenAfter_LanHui_UI" + index, effect);
+                                }
+                            });
+
+
+                        EffectUIPool.CreateEffectUI(item.m_comIcon.m_flip_eff, "ui_LuckyBox",
+                            "CK_OpenAfter_LanHui_TX",
+                            onComplete: (effect) =>
+                            {
+                                if (effect != null)
+                                {
+                                    _effectUIDic.Add("CK_OpenAfter_LanHui_TX" + index, effect);
+                                }
+                            });
                         break;
                     case 2:
-                        _effectUIDic.Add("CK_OpenAfter_LanHui_UI" + index,
-                            EffectUIPool.CreateEffectUI(item.m_comIcon.m_ui_eff, "ui_LuckyBox",
-                                "CK_OpenAfter_LanHui_UI"));
-                        _effectUIDic.Add("CK_OpenAfter_LanHui_TX" + index,
-                            EffectUIPool.CreateEffectUI(item.m_comIcon.m_flip_eff, "ui_LuckyBox",
-                                "CK_OpenAfter_LanHui_TX"));
+
+                        EffectUIPool.CreateEffectUI(item.m_comIcon.m_ui_eff, "ui_LuckyBox",
+                            "CK_OpenAfter_LanHui_UI",
+                            onComplete: (effect) =>
+                            {
+                                if (effect != null)
+                                {
+                                    _effectUIDic.Add("CK_OpenAfter_LanHui_UI" + index, effect
+                                    );
+                                }
+                            });
+
+                        EffectUIPool.CreateEffectUI(item.m_comIcon.m_flip_eff, "ui_LuckyBox",
+                            "CK_OpenAfter_LanHui_TX",
+                            onComplete: (effect) =>
+                            {
+                                if (effect != null)
+                                {
+                                    _effectUIDic.Add("CK_OpenAfter_LanHui_TX" + index, effect
+                                    );
+                                }
+                            });
                         break;
                     case 3:
-                        _effectUIDic.Add("CK_OpenAfter_Chen_UI" + index,
-                            EffectUIPool.CreateEffectUI(item.m_comIcon.m_ui_eff, "ui_LuckyBox",
-                                "CK_OpenAfter_Chen_UI"));
-                        _effectUIDic.Add("CK_OpenAfter_Chen_TX" + index,
-                            EffectUIPool.CreateEffectUI(item.m_comIcon.m_flip_eff, "ui_LuckyBox",
-                                "CK_OpenAfter_Chen_TX"));
+
+                        EffectUIPool.CreateEffectUI(item.m_comIcon.m_ui_eff, "ui_LuckyBox",
+                            "CK_OpenAfter_Chen_UI",
+                            onComplete: (effect) =>
+                            {
+                                if (effect != null)
+                                {
+                                    _effectUIDic.Add("CK_OpenAfter_Chen_UI" + index, effect);
+                                }
+                            });
+
+                        EffectUIPool.CreateEffectUI(item.m_comIcon.m_flip_eff, "ui_LuckyBox",
+                            "CK_OpenAfter_Chen_TX",
+                            onComplete: (effect) =>
+                            {
+                                if (effect != null)
+                                {
+                                    _effectUIDic.Add("CK_OpenAfter_Chen_TX" + index, effect);
+                                }
+                            });
                         break;
                     case 4:
-                        _effectUIDic.Add("CK_OpenAfter_GS_UI" + index,
-                            EffectUIPool.CreateEffectUI(item.m_comIcon.m_ui_eff, "ui_LuckyBox", "CK_OpenAfter_GS_UI"));
-                        _effectUIDic.Add("CK_OpenAfter_GS_TX" + index,
-                            EffectUIPool.CreateEffectUI(item.m_comIcon.m_flip_eff, "ui_LuckyBox",
-                                "CK_OpenAfter_GS_TX"));
+                        EffectUIPool.CreateEffectUI(item.m_comIcon.m_ui_eff, "ui_LuckyBox", "CK_OpenAfter_GS_UI",
+                            onComplete: (effect) =>
+                            {
+                                if (effect != null)
+                                {
+                                    _effectUIDic.Add("CK_OpenAfter_GS_UI" + index, effect);
+                                }
+                            });
+
+                        EffectUIPool.CreateEffectUI(item.m_comIcon.m_flip_eff, "ui_LuckyBox",
+                            "CK_OpenAfter_GS_TX",
+                            onComplete: (effect) =>
+                            {
+                                if (effect != null)
+                                {
+                                    _effectUIDic.Add("CK_OpenAfter_GS_TX" + index, effect);
+                                }
+                            });
+
                         break;
                     case 5:
-                        _effectUIDic.Add("CK_OpenAfter_Jin_UI" + index,
-                            EffectUIPool.CreateEffectUI(item.m_comIcon.m_ui_eff, "ui_LuckyBox", "CK_OpenAfter_Jin_UI"));
-                        _effectUIDic.Add("CK_OpenAfter_Jin_TX" + index,
-                            EffectUIPool.CreateEffectUI(item.m_comIcon.m_flip_eff, "ui_LuckyBox",
-                                "CK_OpenAfter_Jin_TX"));
+
+                        EffectUIPool.CreateEffectUI(item.m_comIcon.m_ui_eff, "ui_LuckyBox", "CK_OpenAfter_Jin_UI",
+                            onComplete: (effect) =>
+                            {
+                                if (effect != null)
+                                {
+                                    _effectUIDic.Add("CK_OpenAfter_Jin_UI" + index, effect);
+                                }
+                            });
+
+
+                        EffectUIPool.CreateEffectUI(item.m_comIcon.m_flip_eff, "ui_LuckyBox",
+                            "CK_OpenAfter_Jin_TX",
+                            onComplete: (effect) =>
+                            {
+                                if (effect != null)
+                                {
+                                    _effectUIDic.Add("CK_OpenAfter_Jin_TX" + index, effect);
+                                }
+                            });
                         break;
                 }
 

+ 84 - 21
GameClient/Assets/Game/HotUpdate/Views/LuckyBox/LuckyBoxNewDressView.cs

@@ -89,10 +89,38 @@ namespace GFGGame
 
         private void UpdateEffect()
         {
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_comCard.m_holder, "ui_ck", "ui_ck_zs");
-            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_holder_star, "ui_LuckyBox", "bg_liuxing");
-            _effectUI3 = EffectUIPool.CreateEffectUI(_ui.m_holder_bg, "ui_LuckyBox", "CK_UI");
-            _effectUI4 = EffectUIPool.CreateEffectUI(_ui.m_holder_cloud, "ui_LuckyBox", "bg_cloud");
+            EffectUIPool.CreateEffectUI(_ui.m_comCard.m_holder, "ui_ck", "ui_ck_zs",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_holder_star, "ui_LuckyBox", "bg_liuxing",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_holder_bg, "ui_LuckyBox", "CK_UI",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI3 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_holder_cloud, "ui_LuckyBox", "bg_cloud",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI4 = effect;
+                    }
+                });
         }
 
         protected override void OnShown()
@@ -179,41 +207,76 @@ namespace GFGGame
             switch (itemCfg.Rarity)
             {
                 case ConstDressRarity.Rarity_TIANYI:
-                    _effectUI5 = EffectUIPool.CreateEffectUI(_ui.m_comCard.m_holder, "ui_LuckyBox", "CK_Yellow_01", 100,
-                        () => { _ui.m_comCard.m_holder.visible = true; });
+                    EffectUIPool.CreateEffectUI(_ui.m_comCard.m_holder, "ui_LuckyBox", "CK_Yellow_01", 100,
+                        (effect) =>
+                        {
+                            _effectUI5 = effect;
+                            _ui.m_comCard.m_holder.visible = true;
+                        });
+
 
-                    _effectUI6 =
-                        EffectUIPool.CreateEffectUI(_ui.m_comCard.m_holder1, "ui_LuckyBox", "CK_Yellow_01_top", 100,
-                            () => { _ui.m_comCard.m_holder1.visible = true; });
+                    EffectUIPool.CreateEffectUI(_ui.m_comCard.m_holder1, "ui_LuckyBox", "CK_Yellow_01_top", 100,
+                        (effect) =>
+                        {
+                            _effectUI6 = effect;
+                            _ui.m_comCard.m_holder1.visible = true;
+                        });
 
                     break;
                 case ConstDressRarity.Rarity_GUOSE:
-                    _effectUI5 = EffectUIPool.CreateEffectUI(_ui.m_comCard.m_holder, "ui_LuckyBox", "CK_GS_012", 100,
-                        () => { _ui.m_comCard.m_holder.visible = true; });
+                    EffectUIPool.CreateEffectUI(_ui.m_comCard.m_holder, "ui_LuckyBox", "CK_GS_012", 100,
+                        (effect) =>
+                        {
+                            _effectUI5 = effect;
+                            _ui.m_comCard.m_holder.visible = true;
+                        });
 
                     break;
                 case ConstDressRarity.Rarity_DIANCANG:
-                    _effectUI5 = EffectUIPool.CreateEffectUI(_ui.m_comCard.m_holder, "ui_LuckyBox", "CK_Purple_02", 100,
-                        () => { _ui.m_comCard.m_holder.visible = true; });
+                    EffectUIPool.CreateEffectUI(_ui.m_comCard.m_holder, "ui_LuckyBox", "CK_Purple_02", 100,
+                        (effect) =>
+                        {
+                            _effectUI5 = effect;
+                            _ui.m_comCard.m_holder.visible = true;
+                        });
 
-                    _effectUI6 =
-                        EffectUIPool.CreateEffectUI(_ui.m_comCard.m_holder1, "ui_LuckyBox", "CK_Purple_02_top", 100,
-                            () => { _ui.m_comCard.m_holder1.visible = true; });
+
+                    EffectUIPool.CreateEffectUI(_ui.m_comCard.m_holder1, "ui_LuckyBox", "CK_Purple_02_top", 100,
+                        (effect) =>
+                        {
+                            _effectUI6 = effect;
+                            _ui.m_comCard.m_holder1.visible = true;
+                        });
 
                     break;
                 case ConstDressRarity.Rarity_ZHENXI:
-                    _effectUI5 = EffectUIPool.CreateEffectUI(_ui.m_comCard.m_holder, "ui_LuckyBox", "CK_Bule_03", 100,
-                        () => { _ui.m_comCard.m_holder.visible = true; });
+                    EffectUIPool.CreateEffectUI(_ui.m_comCard.m_holder, "ui_LuckyBox", "CK_Bule_03", 100,
+                        (effect) =>
+                        {
+                            _effectUI5 = effect;
+                            _ui.m_comCard.m_holder.visible = true;
+                        });
 
                     break;
                 case ConstDressRarity.Rarity_FANPIN:
-                    _effectUI5 = EffectUIPool.CreateEffectUI(_ui.m_comCard.m_holder, "ui_LuckyBox", "CK_grey_04", 100,
-                        () => { _ui.m_comCard.m_holder.visible = true; });
+                    EffectUIPool.CreateEffectUI(_ui.m_comCard.m_holder, "ui_LuckyBox", "CK_grey_04", 100,
+                        (effect) =>
+                        {
+                            _effectUI5 = effect;
+                            _ui.m_comCard.m_holder.visible = true;
+                        });
 
                     break;
             }
 
-            _effectUI7 = EffectUIPool.CreateEffectUI(_ui.m_comCard.m_holder_get, "ui_LuckyBox", "CK_OneBigCard_end");
+            EffectUIPool.CreateEffectUI(_ui.m_comCard.m_holder_get, "ui_LuckyBox", "CK_OneBigCard_end",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI7 = effect;
+                    }
+                });
 
             // 更新UI显示
             _ui.m_comCard.m_loaType.url = ResPathUtil.GetCommonGameResPath("hz_bq_shuxing_" + itemCfg.Rarity);

+ 51 - 10
GameClient/Assets/Game/HotUpdate/Views/LuckyBox/LuckyBoxStarView.cs

@@ -143,10 +143,38 @@ namespace GFGGame
         private IEnumerator LoadAllEffects(Action onComplete)
         {
             // 加载背景特效
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holder_star, "ui_LuckyBox", "bg_liuxing");
-            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_holder_bg, "ui_LuckyBox", "bg_thing");
-            _effectUI3 = EffectUIPool.CreateEffectUI(_ui.m_holder_cloud, "ui_LuckyBox", "bg_cloud");
-            _effectUI4 = EffectUIPool.CreateEffectUI(_ui.m_holder_star_sky, "ui_LuckyBox", "Bg_Sky_lizi");
+            EffectUIPool.CreateEffectUI(_ui.m_holder_star, "ui_LuckyBox", "bg_liuxing",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_holder_bg, "ui_LuckyBox", "bg_thing",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_holder_cloud, "ui_LuckyBox", "bg_cloud",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI3 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_holder_star_sky, "ui_LuckyBox", "Bg_Sky_lizi",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI4 = effect;
+                    }
+                });
 
             // 等待所有背景特效加载完成
             while (_effectUI1.GetObj() == null || _effectUI2.GetObj() == null ||
@@ -232,9 +260,15 @@ namespace GFGGame
             else
             {
                 gcom = UIPackage.CreateObject("LuckyBox", "ComHolder").asCom;
-                EffectUI _effectUI =
-                    EffectUIPool.CreateEffectUI(gcom.GetChild("holder").asGraph, "ui_LuckyBox", name, 120);
-                dicEffect.Add(_effectUI);
+
+                EffectUIPool.CreateEffectUI(gcom.GetChild("holder").asGraph, "ui_LuckyBox", name, 120,
+                    onComplete: (effect) =>
+                    {
+                        if (effect != null)
+                        {
+                            dicEffect.Add(effect);
+                        }
+                    });
             }
 
             return gcom;
@@ -281,9 +315,16 @@ namespace GFGGame
                     UI_ComStar comStar = UI_ComStar.Proxy(comStars[i]);
                     comStar.target.GetChildAt(2).asCom.visible = true;
                     string resPath = _isLuckyBox ? "LINE_Bule" : "LINE";
-                    EffectUI _effectUI =
-                        EffectUIPool.CreateEffectUI(comStar.m_comLine.m_holder, "ui_LuckyBox", resPath, 120);
-                    effObj.Add(_effectUI);
+
+                    EffectUIPool.CreateEffectUI(comStar.m_comLine.m_holder, "ui_LuckyBox", resPath, 120,
+                        onComplete: (effect) =>
+                        {
+                            if (effect != null)
+                            {
+                                effObj.Add(effect);
+                            }
+                        });
+
                     UI_ComStar.ProxyEnd();
 
                     curComStar = comStars[i];

+ 170 - 66
GameClient/Assets/Game/HotUpdate/Views/LuckyBox/LuckyBoxView.cs

@@ -23,13 +23,13 @@ namespace GFGGame
         private DressUpObjUI _dressUpObjUIChangXi;
         private string activityEndTime = "[2024][2][2][00:00]";
 
-        Dictionary<int,GObject> _listActivityBtnObj = new Dictionary<int, GObject>();
-        private Dictionary<string, GGraph> effectNameDic = new Dictionary<string, GGraph>() { }; 
+        Dictionary<int, GObject> _listActivityBtnObj = new Dictionary<int, GObject>();
+        private Dictionary<string, GGraph> effectNameDic = new Dictionary<string, GGraph>() { };
 
         private int _activeBoxId = 0;
         private int _curIndex = 0;
         private int _activityId = 0;
-        private bool scrollTouch = true;  //左右箭头点击等滑动完成后才可以再次点击
+        private bool scrollTouch = true; //左右箭头点击等滑动完成后才可以再次点击
 
         private EffectUI _effectUI1;
         private EffectUI _effectUI2;
@@ -43,6 +43,7 @@ namespace GFGGame
             {
                 EffectUIPool.Recycle(v.Value);
             }
+
             EffectUIPool.Recycle(_effectUI1);
             _effectUI1 = null;
             EffectUIPool.Recycle(_effectUI2);
@@ -59,26 +60,31 @@ namespace GFGGame
                 _valueBarController.Dispose();
                 _valueBarController = null;
             }
+
             foreach (int key in _luckyBoxCtrl.Keys)
             {
                 _luckyBoxCtrl[key].Dispose();
             }
+
             _luckyBoxCtrl.Clear();
             if (_dressUpObjUIXiHe != null)
             {
                 _dressUpObjUIXiHe.Dispose();
                 _dressUpObjUIXiHe = null;
             }
+
             if (_dressUpObjUIChangXi != null)
             {
                 _dressUpObjUIChangXi.Dispose();
                 _dressUpObjUIChangXi = null;
             }
+
             if (_ui != null)
             {
                 _ui.Dispose();
                 _ui = null;
             }
+
             base.Dispose();
         }
 
@@ -100,7 +106,7 @@ namespace GFGGame
             _ui.m_btnRight.onClick.Add(OnBtnRightClick);
 
             _ui.m_listBg.itemRenderer = RenderListBgItem;
-            _ui.m_listBg.SetVirtualAndLoop();  //虚拟循环列表
+            _ui.m_listBg.SetVirtualAndLoop(); //虚拟循环列表
             _ui.m_listBg.scrollPane.onScrollEnd.Add(OnScrollEnd);
             _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("zx_bg");
 
@@ -108,12 +114,41 @@ namespace GFGGame
             effectNameDic.Add("zx_twy_cx", _ui.m_effectTWH);
             effectNameDic.Add("zx_twy_xh", _ui.m_effectTWH2);
             effectNameDic.Add("zx_zwy_yjzh", _ui.m_effectZWH2);
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_effectTWH, "ui_LuckyBox", "CK_TWH_01");
-            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_effectZWH, "ui_LuckyBox", "CK_ZWH_01");
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_effectTWH2, "ui_LuckyBox", "CK_TWH_02");
-            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_effectZWH2, "ui_LuckyBox", "CK_ZWH_02");
+            EffectUIPool.CreateEffectUI(_ui.m_effectTWH, "ui_LuckyBox", "CK_TWH_01",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_effectZWH, "ui_LuckyBox", "CK_ZWH_01",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_effectTWH2, "ui_LuckyBox", "CK_TWH_02",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_effectZWH2, "ui_LuckyBox", "CK_ZWH_02",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                    }
+                });
             AdaptScreen();
         }
+
         protected override void AddEventListener()
         {
             base.AddEventListener();
@@ -124,12 +159,12 @@ namespace GFGGame
             EventAgent.AddEventListener(ConstMessage.LUCKY_BOX_ACTIVITY_REWARD, UpdateBtnReward);
             EventAgent.AddEventListener(ConstMessage.ACTIVITY_LUCKY_BOX, UpdateBtnReward);
             EventAgent.AddEventListener(ConstMessage.LUCKY_EFFECT_UPDATE, UpdateEffectVisible);
-
         }
+
         protected override void OnShown()
         {
             base.OnShown();
-            
+
             Debug.Log("OnShown:LuckyBoxView");
             //防止引导检测之前触发点击事件
             GRoot.inst.touchable = false;
@@ -146,21 +181,23 @@ namespace GFGGame
             //第一个活动可能为轮换活动
             if (LuckyBoxDataManager.Instance.RotatingId > 0)
             {
-                RotatingLuckyBoxCfg rotatingLuckyBox = CommonDataManager.Tables.TblRotatingLuckyBoxCfg.GetOrDefault(LuckyBoxDataManager.Instance.RotatingId);
+                RotatingLuckyBoxCfg rotatingLuckyBox =
+                    CommonDataManager.Tables.TblRotatingLuckyBoxCfg.GetOrDefault(
+                        LuckyBoxDataManager.Instance.RotatingId);
                 _activeBoxId = rotatingLuckyBox.LuckyBoxId;
                 LuckyBoxDataManager.Instance.endTime = TimeUtil.GetTimestamp(rotatingLuckyBox.EndTime);
                 LuckyBoxDataManager.Instance.luckyBoxIds.Insert(0, _activeBoxId);
             }
 
-            int boxId = LuckyBoxDataManager.Instance.luckyBoxIds[0];  //默认跳转进来是第一个活动
+            int boxId = LuckyBoxDataManager.Instance.luckyBoxIds[0]; //默认跳转进来是第一个活动
             if (this.viewData != null)
             {
-                int index = (int)this.viewData;  //传入的值为第几个活动,不是活动id
-                boxId = LuckyBoxDataManager.Instance.luckyBoxIds[index - 1];//是1的时候,就使用轮换活动,不是1就是传入的固定活动
+                int index = (int)this.viewData; //传入的值为第几个活动,不是活动id
+                boxId = LuckyBoxDataManager.Instance.luckyBoxIds[index - 1]; //是1的时候,就使用轮换活动,不是1就是传入的固定活动
             }
 
             //新手引导选中第一个活动
-            if (GuideDataManager.IsGuideFinish(ConstGuideId.LUCKY_BOX) <= 0) 
+            if (GuideDataManager.IsGuideFinish(ConstGuideId.LUCKY_BOX) <= 0)
                 boxId = LuckyBoxDataManager.Instance.luckyBoxIds[0];
 
             //第二个活动会有许愿活动出现
@@ -183,7 +220,7 @@ namespace GFGGame
             if (_activeBoxId > 0)
                 Timers.inst.Add(1, 0, CheckTime);
             //第二个活动的倒计时
-            if (actLimitTsyOpen)// && LuckyBoxDataManager.Instance.currentBoxId == LuckyBoxDataManager.BOX_ID_2
+            if (actLimitTsyOpen) // && LuckyBoxDataManager.Instance.currentBoxId == LuckyBoxDataManager.BOX_ID_2
                 Timers.inst.Add(1, 0, UpdateTime);
 
             //第二个活动的模拟活动倒计时
@@ -199,23 +236,26 @@ namespace GFGGame
             UI_ComBox1 comBox = UI_ComBox1.Proxy(obj);
             LuckyBoxCfg cfg = CommonDataManager.Tables.TblLuckyBoxCfg.GetOrDefault(boxId);
             LuckyBoxDataManager.Instance.InitData(boxId);
-            if(!_listActivityBtnObj.ContainsKey(boxId))
-                _listActivityBtnObj.Add(boxId,obj);
+            if (!_listActivityBtnObj.ContainsKey(boxId))
+                _listActivityBtnObj.Add(boxId, obj);
             else
                 _listActivityBtnObj[boxId] = obj;
 
             comBox.m_ImgUp.visible = index == 0;
-            int activityId = ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitTsy);
+            int activityId =
+                ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitTsy);
             if (activityId > 0 && boxId == LuckyBoxDataManager.BOX_ID_2)
             {
                 comBox.m_showActivityType.selectedIndex = 1;
                 UpGiftBox(comBox);
             }
-            else if (boxId == LuckyBoxDataManager.BOX_ID_2) { 
+            else if (boxId == LuckyBoxDataManager.BOX_ID_2)
+            {
                 long endTime = TimeUtil.DateTimeToTimestamp(activityEndTime);
                 if (endTime < TimeHelper.ServerNow())
                     comBox.m_showActivityType.selectedIndex = 0;
-                else { 
+                else
+                {
                     comBox.m_showActivityType.selectedIndex = 2;
                     long curTime = TimeHelper.ServerNow();
                     if (endTime >= curTime)
@@ -241,13 +281,16 @@ namespace GFGGame
 
             //comBox.m_comLuckBoxBtn.m_holder.visible = boxId != LuckyBoxDataManager.BOX_ID_3;
             comBox.m_comLuckBoxBtn.m_comCostOne.m_txtCost.text = cfg.CostNum.ToString();
-            comBox.m_comLuckBoxBtn.m_comCostOne.m_loaCost.url = ResPathUtil.GetCommonGameResPath(CommonDataManager.Tables.TblItemCfg.GetOrDefault(cfg.CostID).Res);
+            comBox.m_comLuckBoxBtn.m_comCostOne.m_loaCost.url =
+                ResPathUtil.GetCommonGameResPath(CommonDataManager.Tables.TblItemCfg.GetOrDefault(cfg.CostID).Res);
 
             comBox.m_comLuckBoxBtn.m_comCostTen.m_txtCost.text = cfg.CostNumTen.ToString();
-            comBox.m_comLuckBoxBtn.m_comCostTen.m_loaCost.url = ResPathUtil.GetCommonGameResPath(CommonDataManager.Tables.TblItemCfg.GetOrDefault(cfg.CostID).Res);
+            comBox.m_comLuckBoxBtn.m_comCostTen.m_loaCost.url =
+                ResPathUtil.GetCommonGameResPath(CommonDataManager.Tables.TblItemCfg.GetOrDefault(cfg.CostID).Res);
 
             comBox.m_comLuckBoxBtn.m_comCostFifty.m_txtCost.text = cfg.CostNumfifty.ToString();
-            comBox.m_comLuckBoxBtn.m_comCostFifty.m_loaCost.url = ResPathUtil.GetCommonGameResPath(CommonDataManager.Tables.TblItemCfg.GetOrDefault(cfg.CostID).Res);
+            comBox.m_comLuckBoxBtn.m_comCostFifty.m_loaCost.url =
+                ResPathUtil.GetCommonGameResPath(CommonDataManager.Tables.TblItemCfg.GetOrDefault(cfg.CostID).Res);
 
             if (comBox.m_comLuckBoxBtn.m_btnBuyOne.data == null)
                 comBox.m_comLuckBoxBtn.m_btnBuyOne.onClick.Add(OnClickBtnBuyOne);
@@ -255,14 +298,38 @@ namespace GFGGame
 
             if (comBox.m_comLuckBoxBtn.m_btnBuyTen.data == null)
             {
-                if (boxId != LuckyBoxDataManager.BOX_ID_3) { 
+                if (boxId != LuckyBoxDataManager.BOX_ID_3)
+                {
                     if (!_effectUIDic.ContainsKey("Button_Text_DianCang" + boxId))
-                        _effectUIDic.Add("Button_Text_DianCang" + boxId, EffectUIPool.CreateEffectUI(comBox.m_comLuckBoxBtn.m_Special_eff, "ui_LuckyBox", "Button_Text_DianCang"));
-                    if(!_effectUIDic.ContainsKey("Button_public" + boxId))
-                        _effectUIDic.Add("Button_public" + boxId, EffectUIPool.CreateEffectUI(comBox.m_comLuckBoxBtn.m_btnBuyTen_eff, "ui_LuckyBox", "Button_public"));
+                    {
+                        EffectUIPool.CreateEffectUI(comBox.m_comLuckBoxBtn.m_Special_eff, "ui_LuckyBox",
+                            "Button_Text_DianCang",
+                            onComplete: (effect) =>
+                            {
+                                if (effect != null)
+                                {
+                                    _effectUIDic.Add("Button_Text_DianCang" + boxId, effect);
+                                }
+                            });
+                    }
+
+                    if (!_effectUIDic.ContainsKey("Button_public" + boxId))
+                    {
+                        EffectUIPool.CreateEffectUI(comBox.m_comLuckBoxBtn.m_btnBuyTen_eff, "ui_LuckyBox",
+                            "Button_public",
+                            onComplete: (effect) =>
+                            {
+                                if (effect != null)
+                                {
+                                    _effectUIDic.Add("Button_public" + boxId, effect);
+                                }
+                            });
+                    }
                 }
+
                 comBox.m_comLuckBoxBtn.m_btnBuyTen.onClick.Add(OnClickBtnBuyTen);
             }
+
             comBox.m_comLuckBoxBtn.m_btnBuyTen.data = boxId;
 
             if (comBox.m_comLuckBoxBtn.m_btnBuyFifty.data == null)
@@ -279,6 +346,7 @@ namespace GFGGame
                 comBox.m_btnShop.target.onClick.Add(OnClikcBtnShop);
                 comBox.m_btnGiftBag.target.onClick.Add(OnClikcBtnGiftBag);
             }
+
             comBox.m_btnReward.target.data = boxId;
 
             obj.data = boxId;
@@ -288,9 +356,12 @@ namespace GFGGame
                 long endTime = LuckyBoxDataManager.Instance.endTime;
                 long curTime = TimeHelper.ServerNow();
                 long time = endTime - curTime;
-                string strTime = time > TimeUtil.SECOND_PER_DAY * 100 ? TimeUtil.FormattingTimeTo_DDHHmm(time) : TimeUtil.FormattingTimeTo_HHmmss(time);
+                string strTime = time > TimeUtil.SECOND_PER_DAY * 100
+                    ? TimeUtil.FormattingTimeTo_DDHHmm(time)
+                    : TimeUtil.FormattingTimeTo_HHmmss(time);
                 comBox.m_txtTime.text = string.Format("轮换倒计时:{0}", strTime);
             }
+
             UI_ComBox1.ProxyEnd();
         }
 
@@ -334,6 +405,7 @@ namespace GFGGame
             {
                 return;
             }
+
             OnListBgScroll();
         }
 
@@ -346,12 +418,15 @@ namespace GFGGame
 
             _curIndex = _ui.m_listBg.GetFirstChildInView();
             LuckyBoxDataManager.Instance.currentBoxId = LuckyBoxDataManager.Instance.luckyBoxIds[_curIndex];
-            if (LuckyBoxDataManager.Instance.currentBoxId == LuckyBoxDataManager.BOX_ID_3) {
+            if (LuckyBoxDataManager.Instance.currentBoxId == LuckyBoxDataManager.BOX_ID_3)
+            {
                 _valueBarController.Controller(3);
             }
-            else {
+            else
+            {
                 _valueBarController.Controller(4);
             }
+
             _valueBarController.UpdateCJ();
 
             _luckyBoxCtrl[LuckyBoxDataManager.Instance.currentBoxId].OnShown(LuckyBoxDataManager.Instance.currentBoxId);
@@ -360,6 +435,7 @@ namespace GFGGame
             UpdateListItemData();
             UpdateEffect();
         }
+
         private void UpdateEffect()
         {
             //LuckyBoxCfg luckybox = LuckyBoxCfgArray.Instance.GetCfg(LuckyBoxDataManager.Instance.currentBoxId);
@@ -382,11 +458,14 @@ namespace GFGGame
 
         private void UpdateBtnReward()
         {
-            if (_curIndex == 1) {
+            if (_curIndex == 1)
+            {
                 int boxId = LuckyBoxDataManager.Instance.luckyBoxIds[_curIndex];
                 GObject obj = _listActivityBtnObj[boxId];
                 UI_ComBox1 comBox = UI_ComBox1.Proxy(obj);
-                RedDotController.Instance.SetComRedDot(comBox.m_btnReward.target, RedDotDataManager.Instance.GetActLuckyBoxRewardRed(ConstLimitTimeActivityType.ActLimitTsy), "", -21, 18);
+                RedDotController.Instance.SetComRedDot(comBox.m_btnReward.target,
+                    RedDotDataManager.Instance.GetActLuckyBoxRewardRed(ConstLimitTimeActivityType.ActLimitTsy), "", -21,
+                    18);
 
                 comBox.m_txtCount.SetVar("value", ActivityDataManager.Instance.lastTsyDrawCount.ToString()).FlushVars();
                 UI_ComBox1.ProxyEnd();
@@ -411,8 +490,10 @@ namespace GFGGame
             comBox.m_txtCount.SetVar("value", ActivityDataManager.Instance.lastTsyDrawCount.ToString()).FlushVars();
             comBox.m_txtCount.SetVar("name", cfg.Name).FlushVars();
 
-            int activityId = ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitTsy);
-            var activityInfoByTypeList = ActivityGlobalDataManager.Instance.GetActivityInfoByTypeAndID(ActivityType.XSLB3, activityId);
+            int activityId =
+                ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitTsy);
+            var activityInfoByTypeList =
+                ActivityGlobalDataManager.Instance.GetActivityInfoByTypeAndID(ActivityType.XSLB3, activityId);
             var list = activityInfoByTypeList.Where(a => a.EndTime > TimeInfo.Instance.ServerNow()).ToList();
             if (list.Count == 0)
             {
@@ -424,7 +505,8 @@ namespace GFGGame
                 bool isSoldOut = true;
                 foreach (var activityInfo in list)
                 {
-                    ActivityOpenCfg activityOpenCfg = CommonDataManager.Tables.TblActivityOpenCfg.GetOrDefault(activityInfo.ActivityId);
+                    ActivityOpenCfg activityOpenCfg =
+                        CommonDataManager.Tables.TblActivityOpenCfg.GetOrDefault(activityInfo.ActivityId);
                     var paramsArr = activityOpenCfg.Params1;
                     foreach (var shopCfgId in paramsArr)
                     {
@@ -446,11 +528,13 @@ namespace GFGGame
                 }
                 else
                 {
-                    comBox.m_comBagTime.m_txtGiftBagTime.text = TimeUtil.GetTimeLeft(TimeInfo.Instance.ServerNow(), list[0].EndTime);
+                    comBox.m_comBagTime.m_txtGiftBagTime.text =
+                        TimeUtil.GetTimeLeft(TimeInfo.Instance.ServerNow(), list[0].EndTime);
                     comBox.m_comBagTime.target.visible = true;
                     comBox.m_btnGiftBag.target.visible = true;
                 }
             }
+
             UpdateBtnReward();
         }
 
@@ -496,7 +580,9 @@ namespace GFGGame
             if (textField == null) return;
 
             long time = endTime - curTime;
-            string strTime = time > TimeUtil.SECOND_PER_DAY * 100 ? TimeUtil.FormattingTimeTo_DDHHmm(time) : TimeUtil.FormattingTimeTo_HHmmss(time);
+            string strTime = time > TimeUtil.SECOND_PER_DAY * 100
+                ? TimeUtil.FormattingTimeTo_DDHHmm(time)
+                : TimeUtil.FormattingTimeTo_HHmmss(time);
             textField.asTextField.text = string.Format("轮换倒计时:{0}", strTime);
         }
 
@@ -513,6 +599,7 @@ namespace GFGGame
                 Timers.inst.Remove(UpdateImitateTime);
                 endTime = curTime;
             }
+
             textField.asTextField.text = "剩余时间: " + TimeUtil.FormattingTimeTo_DDHHmm(endTime - curTime);
         }
 
@@ -523,7 +610,8 @@ namespace GFGGame
             if (item == null) return;
             GObject textField = item.asCom.GetChild("txtTsyTime");
             if (textField == null) return;
-            int activityId = ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitTsy);
+            int activityId =
+                ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitTsy);
             var activityCfg = CommonDataManager.Tables.TblActivityOpenCfg.GetOrDefault(activityId);
             long endTime = 0;
             if (activityCfg != null)
@@ -535,6 +623,7 @@ namespace GFGGame
                 Timers.inst.Remove(UpdateTime);
                 endTime = curTime;
             }
+
             TimeUtil.FormattingTime(curTime, endTime, out int num, out string str);
             textField.asTextField.text = "概率提升剩余: " + TimeUtil.FormattingTimeTo_DDHHmm(endTime - curTime);
 
@@ -565,34 +654,40 @@ namespace GFGGame
                 PromptController.Instance.ShowFloatTextPrompt("抽奖次数不足");
                 return;
             }
+
             LuckyBoxDataManager.Instance.CheckItemEnough(boxId, LuckyBoxDataManager.ONCE_TIME, async () =>
-             {
-                 int activityId = 0;
-                 if (boxId == LuckyBoxDataManager.BOX_ID_2) {
-                     activityId = ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitTsy);
-                 }
-                 bool freeType = (freeTime > 0 && freeTime < TimeHelper.ServerNow());
-                 bool result = await LuckyBoxSProxy.ReqGetBonus(boxId, LuckyBoxDataManager.ONCE_TIME, freeType, activityId);
-                 if (result)
-                 {
-                     ViewManager.Show<LuckyBoxStarView>();
-                     LogServerHelper.SendPlayParticipationLog((int)PlayParticipationEnum.ZAI_XING, 2);
-                     GetSuitItemController.showSingle = false;
-                 }
-             });
+            {
+                int activityId = 0;
+                if (boxId == LuckyBoxDataManager.BOX_ID_2)
+                {
+                    activityId =
+                        ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitTsy);
+                }
+
+                bool freeType = (freeTime > 0 && freeTime < TimeHelper.ServerNow());
+                bool result =
+                    await LuckyBoxSProxy.ReqGetBonus(boxId, LuckyBoxDataManager.ONCE_TIME, freeType, activityId);
+                if (result)
+                {
+                    ViewManager.Show<LuckyBoxStarView>();
+                    LogServerHelper.SendPlayParticipationLog((int)PlayParticipationEnum.ZAI_XING, 2);
+                    GetSuitItemController.showSingle = false;
+                }
+            });
         }
 
         private void OnClickBtnBuyTen(EventContext context)
         {
             GetSuitItemController.showSingle = true;
             GuideCfg cfg = CommonDataManager.Tables.TblGuideCfg.GetOrDefault(ConstGuideId.LUCKY_BOX);
-            if (GuideDataManager.IsGuideFinish(ConstGuideId.LUCKY_BOX) <= 0 
-                && (GuideDataManager.currentGuideId == 0 
-                || (GuideDataManager.currentGuideId == cfg.Id && GuideDataManager.currentGuideIdIndex != 2)))
+            if (GuideDataManager.IsGuideFinish(ConstGuideId.LUCKY_BOX) <= 0
+                && (GuideDataManager.currentGuideId == 0
+                    || (GuideDataManager.currentGuideId == cfg.Id && GuideDataManager.currentGuideIdIndex != 2)))
             {
                 //防止点击太快,在引导开启前就被点击到,导致引导卡死
                 return;
             }
+
             GObject obj = context.sender as GObject;
             int boxId = (int)obj.data;
             LuckyBoxCfg luckyBoxCfg = CommonDataManager.Tables.TblLuckyBoxCfg.GetOrDefault(boxId);
@@ -602,14 +697,17 @@ namespace GFGGame
                 PromptController.Instance.ShowFloatTextPrompt("抽奖次数不足");
                 return;
             }
+
             LuckyBoxDataManager.Instance.CheckItemEnough(boxId, LuckyBoxDataManager.TEN_TIME, async () =>
             {
                 int activityId = 0;
                 if (boxId == LuckyBoxDataManager.BOX_ID_2)
                 {
-                    activityId = ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitTsy);
+                    activityId =
+                        ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitTsy);
                 }
-                bool result = await LuckyBoxSProxy.ReqGetBonus(boxId, LuckyBoxDataManager.TEN_TIME,false, activityId);
+
+                bool result = await LuckyBoxSProxy.ReqGetBonus(boxId, LuckyBoxDataManager.TEN_TIME, false, activityId);
                 if (result)
                 {
                     ViewManager.Show<LuckyBoxStarView>();
@@ -632,6 +730,7 @@ namespace GFGGame
                 PromptController.Instance.ShowFloatTextPrompt("抽奖次数不足");
                 return;
             }
+
             LuckyBoxDataManager.Instance.CheckItemEnough(boxId, LuckyBoxDataManager.FIFTY_TIME, async () =>
             {
                 bool result = await LuckyBoxSProxy.ReqGetBonus(boxId, LuckyBoxDataManager.FIFTY_TIME, false, 0);
@@ -653,6 +752,7 @@ namespace GFGGame
             {
                 _luckyBoxCtrl[key].OnHide();
             }
+
             Timers.inst.Remove(CheckTime);
             Timers.inst.Remove(UpdateTime);
             Timers.inst.Remove(UpdateImitateTime);
@@ -697,17 +797,18 @@ namespace GFGGame
             if (_curIndex > 0) return;
             int boxId = LuckyBoxDataManager.Instance.luckyBoxIds[_curIndex];
             GObject gObject = _listActivityBtnObj[boxId];
-            if (gObject == null) return; 
+            if (gObject == null) return;
             GButton btnBuyTen = gObject.asCom.GetChild("comLuckBoxBtn").asCom.GetChild("btnBuyTen").asButton;
-            GuideController.TryGuide(null, ConstGuideId.LUCKY_BOX, 1, "“摘星”里可以通过星辰的力量获得服饰。", -1, true, _ui.target.height - 600);
+            GuideController.TryGuide(null, ConstGuideId.LUCKY_BOX, 1, "“摘星”里可以通过星辰的力量获得服饰。", -1, true,
+                _ui.target.height - 600);
             GuideController.TryGuide(btnBuyTen, ConstGuideId.LUCKY_BOX, 2, "点击摘取十次。");
-            GuideController.TryCompleteGuide( ConstGuideId.LUCKY_BOX, 2);
+            GuideController.TryCompleteGuide(ConstGuideId.LUCKY_BOX, 2);
         }
 
         protected override void TryCompleteGuide()
         {
             base.TryCompleteGuide();
-           // GuideCfg cfg = GuideCfgArray.Instance.GetCfg(ConstGuideId.LUCKY_BOX);
+            // GuideCfg cfg = GuideCfgArray.Instance.GetCfg(ConstGuideId.LUCKY_BOX);
             GuideController.TryCompleteGuideIndex(ConstGuideId.LUCKY_BOX, 2);
         }
 
@@ -740,9 +841,11 @@ namespace GFGGame
                 comBox.m_comLuckBoxBtn.m_txtFreeTime.visible = false;
             }
 
-            RedDotController.Instance.SetComRedDot(comBox.m_comLuckBoxBtn.m_btnBuyOne, comBox.m_comLuckBoxBtn.m_comCostOne.m_c1.selectedIndex == 1, "", -29, 9);
+            RedDotController.Instance.SetComRedDot(comBox.m_comLuckBoxBtn.m_btnBuyOne,
+                comBox.m_comLuckBoxBtn.m_comCostOne.m_c1.selectedIndex == 1, "", -29, 9);
             RedDotController.Instance.SetComRedDot(_ui.m_btnLeft, LuckyBoxDataManager.Instance.RedBtnLeft(_curIndex));
-            RedDotController.Instance.SetComRedDot(_ui.m_btnRight, LuckyBoxDataManager.Instance.RedBtnRight(_curIndex), "", -60, 70);
+            RedDotController.Instance.SetComRedDot(_ui.m_btnRight, LuckyBoxDataManager.Instance.RedBtnRight(_curIndex),
+                "", -60, 70);
             UI_ComBox1.ProxyEnd();
         }
 
@@ -751,12 +854,13 @@ namespace GFGGame
             float offsetY = _ui.m_grpTop.y + ViewGlobal.GetRealTopOffset();
             _ui.m_grpTop.SetXY(_ui.m_grpTop.x, offsetY);
         }
+
         private void UpdateEffectVisible(EventContext eventContext)
         {
             var resStr = (string)eventContext.data;
-            foreach(var item in effectNameDic)
+            foreach (var item in effectNameDic)
             {
-                if(item.Key == resStr)
+                if (item.Key == resStr)
                 {
                     item.Value.visible = true;
                 }

+ 48 - 25
GameClient/Assets/Game/HotUpdate/Views/Mail/MailView.cs

@@ -9,18 +9,17 @@ namespace GFGGame
 {
     public class MailView : BaseWindow
     {
-
         private UI_MailUI _ui;
         private MailDataManager mailDataMgr;
         private const int _maxMailCount = 300;
-        private const int _retainDay = 30;//邮件保存时间
-                                          // private const int _showCount = 5;//??????????
+        private const int _retainDay = 30; //邮件保存时间
+        // private const int _showCount = 5;//??????????
 
-        private int _firstPage = 0;//当前页面
-        private int _endPage = 0;//当前页面
+        private int _firstPage = 0; //当前页面
+        private int _endPage = 0; //当前页面
 
-        public bool _canShowContent = false;//获取内容数据返回前不可查看
-        public List<MailInfo> mailInfos;//= new List<MailInfo>();
+        public bool _canShowContent = false; //获取内容数据返回前不可查看
+        public List<MailInfo> mailInfos; //= new List<MailInfo>();
 
         private EffectUI _effectUI1;
         private EffectUI _effectUI2;
@@ -37,6 +36,7 @@ namespace GFGGame
                 _ui.Dispose();
                 _ui = null;
             }
+
             base.Dispose();
         }
 
@@ -52,10 +52,7 @@ namespace GFGGame
 
             _ui.m_list.itemRenderer = RenderListItem;
             _ui.m_list.SetVirtual();
-            _ui.m_list.scrollPane.onScrollEnd.Add(() =>
-            {
-                RefreshMailInfo(false);
-            });
+            _ui.m_list.scrollPane.onScrollEnd.Add(() => { RefreshMailInfo(false); });
             // _ui.target.onTouchEnd.Add(() =>
             // {
             //     RefreshMailInfo(false);
@@ -67,6 +64,7 @@ namespace GFGGame
             mailDataMgr = MailDataManager.Instance;
             AddEffect();
         }
+
         protected override void AddEventListener()
         {
             base.AddEventListener();
@@ -77,17 +75,21 @@ namespace GFGGame
             EventAgent.AddEventListener(ConstMessage.MAIL_AllDELETE, UpdateNormal);
             EventAgent.AddEventListener(ConstMessage.MAIL_CHANGE, UpdateNormal);
         }
+
         protected override void OnShown()
         {
             base.OnShown();
             mailDataMgr.CurPage = 0;
             UpdateNormal();
         }
+
         private void UpdateNormal()
         {
             _ui.m_list.numItems = mailDataMgr.TotolCount;
             _ui.m_txtTips.visible = mailDataMgr.TotolCount == 0 ? true : false;
-            _ui.m_txtCount.text = string.Format("当前邮件:{0}/{1}", StringUtil.GetColorText(mailDataMgr.TotolCount.ToString(), mailDataMgr.TotolCount >= _maxMailCount ? "#B19977" : "#E27D78"), _maxMailCount);
+            _ui.m_txtCount.text = string.Format("当前邮件:{0}/{1}",
+                StringUtil.GetColorText(mailDataMgr.TotolCount.ToString(),
+                    mailDataMgr.TotolCount >= _maxMailCount ? "#B19977" : "#E27D78"), _maxMailCount);
             _ui.m_txtMaxCount.text = string.Format("最高可储存{0}封邮箱,请及时查看", _maxMailCount);
             RefreshMailInfo(true);
         }
@@ -120,10 +122,12 @@ namespace GFGGame
             {
                 item.m_bg.onClick.Add(OnClickBtnLook);
             }
+
             item.m_bg.data = mailId;
 
             UI_ListItem.ProxyEnd();
         }
+
         private async void OnClickBtnLook(EventContext context)
         {
             // int index = (int)(context.sender as GObject).data;
@@ -143,6 +147,7 @@ namespace GFGGame
                 _ui.m_list.ScrollToView(0);
                 MailDataManager.Instance.RefreshMailInfoDic(needSort);
             }
+
             _firstPage = _ui.m_list.ChildIndexToItemIndex(0) / mailDataMgr.PageCount;
             _endPage = _ui.m_list.ChildIndexToItemIndex(_ui.m_list.numChildren - 1) / mailDataMgr.PageCount;
             ET.Log.Debug("_firstPage:" + _firstPage + "   _endPage:" + _endPage);
@@ -151,36 +156,39 @@ namespace GFGGame
                 RefreshList();
                 return;
             }
+
             if (mailDataMgr.GetMailIdByPage(_firstPage) == null)
             {
-                bool result = await MailSProxy.ReqMailList(_firstPage * mailDataMgr.PageCount, mailDataMgr.PageCount, needSort, _firstPage);
+                bool result = await MailSProxy.ReqMailList(_firstPage * mailDataMgr.PageCount, mailDataMgr.PageCount,
+                    needSort, _firstPage);
                 if (result)
                 {
                     RefreshList();
                 }
             }
+
             if (_endPage == _firstPage) return;
 
             if (mailDataMgr.GetMailIdByPage(_endPage) == null)
             {
-                bool result = await MailSProxy.ReqMailList(_endPage * mailDataMgr.PageCount, mailDataMgr.PageCount, needSort, _endPage);
+                bool result = await MailSProxy.ReqMailList(_endPage * mailDataMgr.PageCount, mailDataMgr.PageCount,
+                    needSort, _endPage);
                 if (result)
                 {
                     RefreshList();
                 }
             }
-
         }
+
         private void RefreshList()
         {
             // mailInfos = mailDataMgr.GetMailInfos();
             _ui.m_list.RefreshVirtualList();
-
         }
+
         private void OnClickBtnGet()
         {
             MailSProxy.ReqAllMailRewards().Coroutine();
-
         }
 
         private void OnClickBtnDelete()
@@ -190,20 +198,21 @@ namespace GFGGame
                 PromptController.Instance.ShowFloatTextPrompt("暂无邮件可删除");
                 return;
             }
-            AlertUI.Show("是否删除所有已读文件?").SetLeftButton(true).SetRightButton(true, "确认", (object data) =>
-            {
-                SendDeleteAll();
-            });
+
+            AlertUI.Show("是否删除所有已读文件?").SetLeftButton(true)
+                .SetRightButton(true, "确认", (object data) => { SendDeleteAll(); });
         }
+
         private void SendDeleteAll()
         {
             MailSProxy.ReqDeleteAllMails().Coroutine();
-
         }
+
         protected override void OnHide()
         {
             base.OnHide();
         }
+
         protected override void RemoveEventListener()
         {
             base.RemoveEventListener();
@@ -218,10 +227,24 @@ namespace GFGGame
         private void AddEffect()
         {
             //邊框左上角特效
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holderLeftTop, "ui_Activity", "Com_window_L_up");
+            EffectUIPool.CreateEffectUI(_ui.m_holderLeftTop, "ui_Activity", "Com_window_L_up",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
 
             //邊框右下角特效
-            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_holderRightDowm, "ui_Activity", "Com_window_R_Down");
+            EffectUIPool.CreateEffectUI(_ui.m_holderRightDowm, "ui_Activity", "Com_window_R_Down",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                    }
+                });
         }
     }
-}
+}

+ 44 - 9
GameClient/Assets/Game/HotUpdate/Views/MainStory/ActivityStoryChapterView.cs

@@ -98,9 +98,23 @@ namespace GFGGame
 
             _effFirst = new GComponent();
             _effFirst = UIPackage.CreateObject(UI_MainUI.PACKAGE_NAME, "ComEff").asCom;
-            _effectUI3 = EffectUIPool.CreateEffectUI(_ui.m_bgEffect, "ui_zj", "ZX_BG_TX");
-            _effectUI4 =
-                EffectUIPool.CreateEffectUI(_ui.m_chapter.m_compChapterScroll.m_nextEffect, "ui_zj", "ZX_Next_Boat");
+            EffectUIPool.CreateEffectUI(_ui.m_bgEffect, "ui_zj", "ZX_BG_TX",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI3 = effect;
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_chapter.m_compChapterScroll.m_nextEffect, "ui_zj", "ZX_Next_Boat",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI4 = effect;
+                    }
+                });
         }
 
         protected override void OnShown()
@@ -323,21 +337,42 @@ namespace GFGGame
                         {
                             if (levelItem.m_c2.selectedIndex == 0)
                             {
-                                _effectUI2 = EffectUIPool.CreateEffectUI(_effFirst.GetChild("effect_jq_left").asGraph,
-                                    "ui_zj", effName);
+                                EffectUIPool.CreateEffectUI(_effFirst.GetChild("effect_jq_left").asGraph,
+                                    "ui_zj", effName,
+                                    onComplete: (effect) =>
+                                    {
+                                        if (effect != null)
+                                        {
+                                            _effectUI2 = effect;
+                                        }
+                                    });
                                 _effFirst.GetChild("effect_jq_left").rotationY = 180;
                             }
                             else
                             {
-                                _effectUI2 = EffectUIPool.CreateEffectUI(_effFirst.GetChild("effect_jq").asGraph,
-                                    "ui_zj", effName);
+                                EffectUIPool.CreateEffectUI(_effFirst.GetChild("effect_jq").asGraph,
+                                    "ui_zj", effName,
+                                    onComplete: (effect) =>
+                                    {
+                                        if (effect != null)
+                                        {
+                                            _effectUI2 = effect;
+                                        }
+                                    });
                                 _effFirst.GetChild("effect_jq").rotationY = 0;
                             }
                         }
                         else
                         {
-                            _effectUI2 = EffectUIPool.CreateEffectUI(_effFirst.GetChild("effect_zd").asGraph, "ui_zj",
-                                effName);
+                            EffectUIPool.CreateEffectUI(_effFirst.GetChild("effect_zd").asGraph, "ui_zj",
+                                effName,
+                                onComplete: (effect) =>
+                                {
+                                    if (effect != null)
+                                    {
+                                        _effectUI2 = effect;
+                                    }
+                                });
                             if (levelItem.m_c2.selectedIndex == 0)
                             {
                                 _effFirst.GetChild("effect_zd").rotationY = 0;

+ 64 - 8
GameClient/Assets/Game/HotUpdate/Views/MainStory/ArenaFightResultView.cs

@@ -69,14 +69,70 @@ namespace GFGGame
 
         private void AddEffect()
         {
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderResult0, "ui_fight_new", "ZDJS_lose");
-            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderResult1, "ui_fight_new", "ZDJS_qualified");
-            _effectUI3 = EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderResult2, "ui_fight_new", "ZDJS_good");
-            _effectUI4 = EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderResult3, "ui_fight_new", "ZDJS_Perfect");
-            _effectUI5 = EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderScore, "ui_fight_new", "ZDJS_Text_kuang");
-            _effectUI6 = EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderStar3, "ui_fight_new", "ZDJS_STAR");
-            _effectUI7 = EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderStar2, "ui_fight_new", "ZDJS_STAR");
-            _effectUI8 = EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderStar1, "ui_fight_new", "ZDJS_STAR");
+            EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderResult0, "ui_fight_new", "ZDJS_lose",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderResult1, "ui_fight_new", "ZDJS_qualified",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderResult2, "ui_fight_new", "ZDJS_good",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI3 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderResult3, "ui_fight_new", "ZDJS_Perfect",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI4 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderScore, "ui_fight_new", "ZDJS_Text_kuang",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI5 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderStar3, "ui_fight_new", "ZDJS_STAR",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI6 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderStar2, "ui_fight_new", "ZDJS_STAR",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI7 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderStar1, "ui_fight_new", "ZDJS_STAR",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI8 = effect;
+                    }
+                });
         }
 
         protected override void OnShown()

+ 24 - 3
GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryCardChoose.cs

@@ -267,7 +267,14 @@ namespace GFGGame
             item.m_t0.Play();
             EffectUIPool.Recycle(_effectUI3);
             _effectUI3 = null;
-            _effectUI3 = EffectUIPool.CreateEffectUI(item.m_effect, "ui_KP", "KP_Select");
+            EffectUIPool.CreateEffectUI(item.m_effect, "ui_KP", "KP_Select",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI3 = effect;
+                    }
+                });
 
             UpdateView(_ui.m_listCard.selectedIndex);
 
@@ -381,10 +388,24 @@ namespace GFGGame
         private void AddEffect()
         {
             //邊框左上角特效
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holderLeftTop, "ui_Activity", "Com_window_L_up");
+            EffectUIPool.CreateEffectUI(_ui.m_holderLeftTop, "ui_Activity", "Com_window_L_up",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
 
             //邊框右下角特效
-            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_holderRightDowm, "ui_Activity", "Com_window_R_Down");
+            EffectUIPool.CreateEffectUI(_ui.m_holderRightDowm, "ui_Activity", "Com_window_R_Down",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                    }
+                });
         }
     }
 }

+ 51 - 13
GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryChapterView.cs

@@ -114,12 +114,47 @@ namespace GFGGame
 
             _effFirst = new GComponent();
             _effFirst = UIPackage.CreateObject(UI_MainUI.PACKAGE_NAME, "ComEff").asCom;
-            _effectUI3 = EffectUIPool.CreateEffectUI(_ui.m_bgEffect, "ui_zj", "ZX_BG_TX");
-            _effectUI4 =
-                EffectUIPool.CreateEffectUI(_ui.m_chapter.m_compChapterScroll.m_nextEffect, "ui_zj", "ZX_Next_Boat");
-            _effectUI5 = EffectUIPool.CreateEffectUI(_ui.m_bonusBox1.m_effect, "ui_zj", "Claimed");
-            _effectUI6 = EffectUIPool.CreateEffectUI(_ui.m_bonusBox2.m_effect, "ui_zj", "Claimed");
-            _effectUI7 = EffectUIPool.CreateEffectUI(_ui.m_bonusBox3.m_effect, "ui_zj", "Claimed");
+            EffectUIPool.CreateEffectUI(_ui.m_bgEffect, "ui_zj", "ZX_BG_TX",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI3 = effect;
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_chapter.m_compChapterScroll.m_nextEffect, "ui_zj", "ZX_Next_Boat",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI4 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_bonusBox1.m_effect, "ui_zj", "Claimed",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI5 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_bonusBox2.m_effect, "ui_zj", "Claimed",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI6 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_bonusBox3.m_effect, "ui_zj", "Claimed",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI7 = effect;
+                    }
+                });
         }
 
         protected override void AddEventListener()
@@ -462,10 +497,11 @@ namespace GFGGame
                         {
                             if (levelItem.m_c2.selectedIndex == 0)
                             {
-                                _effectUI2 = EffectUIPool.CreateEffectUI(_effFirst.GetChild("effect_jq_left").asGraph,
+                                EffectUIPool.CreateEffectUI(_effFirst.GetChild("effect_jq_left").asGraph,
                                     "ui_zj", effName, 100F,
-                                    () =>
+                                    (effect) =>
                                     {
+                                        _effectUI2 = effect;
                                         _effFirst.GetChild("effect_jq_left").rotationY = 180;
                                         levelItem.target.AddChild(_effFirst);
                                         levelItem.m_fightBg.visible = false;
@@ -483,9 +519,10 @@ namespace GFGGame
                             }
                             else
                             {
-                                _effectUI2 = EffectUIPool.CreateEffectUI(_effFirst.GetChild("effect_jq").asGraph,
-                                    "ui_zj", effName, 100f, () =>
+                                EffectUIPool.CreateEffectUI(_effFirst.GetChild("effect_jq").asGraph,
+                                    "ui_zj", effName, 100f, (effect) =>
                                     {
+                                        _effectUI2 = effect;
                                         _effFirst.GetChild("effect_jq").rotationY = 0;
                                         levelItem.target.AddChild(_effFirst);
                                         levelItem.m_fightBg.visible = false;
@@ -498,15 +535,16 @@ namespace GFGGame
                                             _endLevelItem = levelItem.target;
                                         }
 
-                                       // UI_CompStoryLevelItem.ProxyEnd();
+                                        // UI_CompStoryLevelItem.ProxyEnd();
                                     });
                             }
                         }
                         else
                         {
-                            _effectUI2 = EffectUIPool.CreateEffectUI(_effFirst.GetChild("effect_zd").asGraph, "ui_zj",
-                                effName, 100F, () =>
+                            EffectUIPool.CreateEffectUI(_effFirst.GetChild("effect_zd").asGraph, "ui_zj",
+                                effName, 100F, (effect) =>
                                 {
+                                    _effectUI2 = effect;
                                     if (levelItem.m_c2.selectedIndex == 0)
                                     {
                                         _effFirst.GetChild("effect_zd").rotationY = 0;

+ 17 - 3
GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryDialogView.cs

@@ -633,8 +633,15 @@ namespace GFGGame
                         //独立动画
                         _ui.m_dialogHead.m_compDressUp.target.visible = false;
                         _ui.m_dialogHead.m_comphead.target.visible = true;
-                        _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_dialogHead.m_comphead.m_holder, "ui_nzbq",
-                            headAniCfg.HeadAni);
+                        EffectUIPool.CreateEffectUI(_ui.m_dialogHead.m_comphead.m_holder, "ui_nzbq",
+                            headAniCfg.HeadAni,
+                            onComplete: (effect) =>
+                            {
+                                if (effect != null)
+                                {
+                                    _effectUI1 = effect;
+                                }
+                            });
                     }
                     else
                     {
@@ -1002,7 +1009,14 @@ namespace GFGGame
                     EffectUIPool.Recycle(_effect);
                     _effect = null;
                     string effectPath = string.Format("ui_Juqing/{0}", value[0]);
-                    _effect = EffectUIPool.CreateEffectUI(_ui.m_effect, effectPath, value[0]);
+                    EffectUIPool.CreateEffectUI(_ui.m_effect, effectPath, value[0],
+                        onComplete: (effect) =>
+                        {
+                            if (effect != null)
+                            {
+                                _effect = effect;
+                            }
+                        });
                     _ui.m_effect.visible = true;
                 }
             }

+ 173 - 39
GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryFightSingleScoreView.cs

@@ -152,40 +152,165 @@ namespace GFGGame
 
         private void AddEffect()
         {
-            _effectUI1 =
-                EffectUIPool.CreateEffectUI(_ui.m_proScore.m_comFirstScore.m_holder, "ui_fight_new", "upgrade01");
-            _effectUI2 =
-                EffectUIPool.CreateEffectUI(_ui.m_proScore.m_comSecondScore.m_holder, "ui_fight_new", "upgrade02");
-            _effectUI3 =
-                EffectUIPool.CreateEffectUI(_ui.m_proScore.m_comThirdScore.m_holder, "ui_fight_new", "upgrade03");
-            _effectUI4 = EffectUIPool.CreateEffectUI(_ui.m_proScore.m_holder, "ui_fight_new", "Progress_head");
-            _effectUI5 = EffectUIPool.CreateEffectUI(_ui.m_proScore.m_holder1, "ui_fight_new", "Progress_fixed");
-            _effectUI6 =
-                EffectUIPool.CreateEffectUI(_ui.m_proScore.m_comBar.m_holder, "ui_fight_new", "Progress_liuguang");
+            EffectUIPool.CreateEffectUI(_ui.m_proScore.m_comFirstScore.m_holder, "ui_fight_new", "upgrade01",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_proScore.m_comSecondScore.m_holder, "ui_fight_new", "upgrade02",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_proScore.m_comThirdScore.m_holder, "ui_fight_new", "upgrade03",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI3 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_proScore.m_holder, "ui_fight_new", "Progress_head",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI4 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_proScore.m_holder1, "ui_fight_new", "Progress_fixed",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI5 = effect;
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_proScore.m_comBar.m_holder, "ui_fight_new", "Progress_liuguang",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI6 = effect;
+                    }
+                });
             //_effectUI7 = EffectUIPool.CreateEffectUI(_ui.m_comAllPerfect.m_holder, "ui_fight_new", "zd_df_dfzj");
-            _effectUI8 = EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comResult.m_holderNormal, "ui_fight_new",
-                "bottom_Highlight");
-            _effectUI9 =
-                EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comResult.m_holderCircle, "ui_fight_new", "circle");
-            _effectUI10 =
-                EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comResult.m_holder0, "ui_fight_new", "Lose_animation");
-            _effectUI11 =
-                EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comResult.m_holder1, "ui_fight_new", "Good_animation");
-            _effectUI12 = EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comResult.m_holder2, "ui_fight_new",
-                "Perfect_animation");
-            _effectUI13 =
-                EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comResult.m_holderResult, "ui_fight_new", "Tail");
-            _effectUI14 = EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comResult.m_holderHigh, "ui_fight_new",
-                "botton_Highlight");
-            _effectUI15 =
-                EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comAllPerfect.m_holderLoop, "ui_fight_new", "loop_tx");
-            _effectUI16 = EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comAllPerfect.m_holder, "ui_fight_new",
-                "3S_textAppear01");
-            _effectUI17 = EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comAllPerfect.m_holderSmokeIn, "ui_fight_new",
-                "smoke_Approach");
-            _effectUI18 = EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comAllPerfect.m_holderSmokeOut, "ui_fight_new",
-                "smoke_out");
-            _effectUI21 = EffectUIPool.CreateEffectUI(_ui.m_bgEffect, "ui_HaiZhiShi", "Bg_All_Tx");
+            EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comResult.m_holderNormal, "ui_fight_new",
+                "bottom_Highlight",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI8 = effect;
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comResult.m_holderCircle, "ui_fight_new", "circle",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI9 = effect;
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comResult.m_holder0, "ui_fight_new", "Lose_animation",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI10 = effect;
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comResult.m_holder1, "ui_fight_new", "Good_animation",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI11 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comResult.m_holder2, "ui_fight_new",
+                "Perfect_animation",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI12 = effect;
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comResult.m_holderResult, "ui_fight_new", "Tail",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI13 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comResult.m_holderHigh, "ui_fight_new",
+                "botton_Highlight",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI14 = effect;
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comAllPerfect.m_holderLoop, "ui_fight_new", "loop_tx",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI15 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comAllPerfect.m_holder, "ui_fight_new",
+                "3S_textAppear01",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI16 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comAllPerfect.m_holderSmokeIn, "ui_fight_new",
+                "smoke_Approach",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI17 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comAllPerfect.m_holderSmokeOut, "ui_fight_new",
+                "smoke_out",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI18 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_bgEffect, "ui_HaiZhiShi", "Bg_All_Tx",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI21 = effect;
+                    }
+                });
         }
 
         protected override void AddEventListener()
@@ -418,8 +543,12 @@ namespace GFGGame
             _ui.m_comClick.m_comResult.m_t0.Stop(true, false);
             if (clickType == 2)
             {
-                _effectUI20 = EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comResult.m_starEffect, "ui_fight_new",
-                    starEffectName[clickType], 100F, () => { _ui.m_comClick.m_comResult.m_starEffect.visible = true; });
+                EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comResult.m_starEffect, "ui_fight_new",
+                    starEffectName[clickType], 100F, (effect) =>
+                    {
+                        _effectUI20 = effect;
+                        _ui.m_comClick.m_comResult.m_starEffect.visible = true;
+                    });
             }
 
             if (clickType == ClickType.PERFECT_CLICK)
@@ -437,9 +566,10 @@ namespace GFGGame
         {
             Debug.Log("_partId:" + _partId);
             // _ui.m_comClick.target.touchable = false;
-            _effectUI19 = EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comResult.m_ppEffect, "ui_fight_new",
-                ppEffectName[clickType], 100f, () =>
+            EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comResult.m_ppEffect, "ui_fight_new",
+                ppEffectName[clickType], 100f, (effect) =>
                 {
+                    _effectUI19 = effect;
                     _ui.m_comClick.m_comResult.m_ppEffect.visible = true;
                     _ui.m_comClick.m_comResult.m_paopao.visible = false;
                 });
@@ -451,8 +581,12 @@ namespace GFGGame
             }
             else
             {
-                _effectUI20 = EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comResult.m_starEffect, "ui_fight_new",
-                    starEffectName[clickType], 100f, () => { _ui.m_comClick.m_comResult.m_starEffect.visible = true; });
+                EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comResult.m_starEffect, "ui_fight_new",
+                    starEffectName[clickType], 100f, (effect) =>
+                    {
+                        _effectUI20 = effect;
+                        _ui.m_comClick.m_comResult.m_starEffect.visible = true;
+                    });
             }
 
             for (int i = 0; i < 3; i++)

+ 159 - 33
GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryFightTargetScoreView.cs

@@ -119,34 +119,139 @@ namespace GFGGame
 
         private void AddEffect()
         {
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_proScore.m_holder1, "ui_fight_new", "Progress_fixed");
-            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_proScore.m_holder, "ui_fight_new", "Progress_head");
-            _effectUI3 =
-                EffectUIPool.CreateEffectUI(_ui.m_proScore.m_comBar.m_holder, "ui_fight_new", "Progress_liuguang");
-            _effectUI4 = EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comResult.m_holderNormal, "ui_fight_new",
-                "bottom_Highlight");
-            _effectUI5 =
-                EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comResult.m_holderCircle, "ui_fight_new", "circle");
+            EffectUIPool.CreateEffectUI(_ui.m_proScore.m_holder1, "ui_fight_new", "Progress_fixed",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_proScore.m_holder, "ui_fight_new", "Progress_head",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_proScore.m_comBar.m_holder, "ui_fight_new", "Progress_liuguang",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI3 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comResult.m_holderNormal, "ui_fight_new",
+                "bottom_Highlight",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI4 = effect;
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comResult.m_holderCircle, "ui_fight_new", "circle",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI5 = effect;
+                    }
+                });
             //_effectUI6 = EffectUIPool.CreateEffectUI(_ui.m_comAllPerfect.m_holder, "ui_fight_new", "zd_df_dfzj");
-            _effectUI7 =
-                EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comResult.m_holder0, "ui_fight_new", "Lose_animation");
-            _effectUI8 =
-                EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comResult.m_holder1, "ui_fight_new", "Good_animation");
-            _effectUI9 = EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comResult.m_holder2, "ui_fight_new",
-                "Perfect_animation");
-            _effectUI10 =
-                EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comResult.m_holderResult, "ui_fight_new", "Tail");
-            _effectUI11 = EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comResult.m_holderHigh, "ui_fight_new",
-                "botton_Highlight");
-            _effectUI12 =
-                EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comAllPerfect.m_holderLoop, "ui_fight_new", "loop_tx");
-            _effectUI13 = EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comAllPerfect.m_holder, "ui_fight_new",
-                "3S_textAppear01");
-            _effectUI14 = EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comAllPerfect.m_holderSmokeIn, "ui_fight_new",
-                "smoke_Approach");
-            _effectUI15 = EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comAllPerfect.m_holderSmokeOut, "ui_fight_new",
-                "smoke_out");
-            _effectUI21 = EffectUIPool.CreateEffectUI(_ui.m_bgEffect, "ui_HaiZhiShi", "Bg_All_Tx");
+
+            EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comResult.m_holder0, "ui_fight_new", "Lose_animation",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI7 = effect;
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comResult.m_holder1, "ui_fight_new", "Good_animation",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI8 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comResult.m_holder2, "ui_fight_new",
+                "Perfect_animation",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI9 = effect;
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comResult.m_holderResult, "ui_fight_new", "Tail",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI10 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comResult.m_holderHigh, "ui_fight_new",
+                "botton_Highlight",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI11 = effect;
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comAllPerfect.m_holderLoop, "ui_fight_new", "loop_tx",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI12 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comAllPerfect.m_holder, "ui_fight_new",
+                "3S_textAppear01",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI13 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comAllPerfect.m_holderSmokeIn, "ui_fight_new",
+                "smoke_Approach",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI14 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comAllPerfect.m_holderSmokeOut, "ui_fight_new",
+                "smoke_out",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI15 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_bgEffect, "ui_HaiZhiShi", "Bg_All_Tx",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI21 = effect;
+                    }
+                });
         }
 
         protected override void OnInit()
@@ -644,8 +749,15 @@ namespace GFGGame
 
             if (clickType == 2)
             {
-                _effectUI20 = EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comResult.m_starEffect, "ui_fight_new",
-                    starEffectName[clickType]);
+                EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comResult.m_starEffect, "ui_fight_new",
+                    starEffectName[clickType],
+                    onComplete: (effect) =>
+                    {
+                        if (effect != null)
+                        {
+                            _effectUI20 = effect;
+                        }
+                    });
                 _ui.m_comClick.m_comResult.m_starEffect.visible = true;
             }
 
@@ -671,8 +783,15 @@ namespace GFGGame
 
             _ui.m_comClick.target.touchable = false;
 
-            _effectUI19 = EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comResult.m_ppEffect, "ui_fight_new",
-                ppEffectName[clickType]);
+            EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comResult.m_ppEffect, "ui_fight_new",
+                ppEffectName[clickType],
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI19 = effect;
+                    }
+                });
 
             _ui.m_comClick.m_comResult.m_ppEffect.visible = true;
             _ui.m_comClick.m_comResult.m_paopao.visible = false;
@@ -682,8 +801,15 @@ namespace GFGGame
             }
             else
             {
-                _effectUI20 = EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comResult.m_starEffect, "ui_fight_new",
-                    starEffectName[clickType]);
+                EffectUIPool.CreateEffectUI(_ui.m_comClick.m_comResult.m_starEffect, "ui_fight_new",
+                    starEffectName[clickType],
+                    onComplete: (effect) =>
+                    {
+                        if (effect != null)
+                        {
+                            _effectUI20 = effect;
+                        }
+                    });
                 _ui.m_comClick.m_comResult.m_starEffect.visible = true;
             }
 

+ 50 - 18
GameClient/Assets/Game/HotUpdate/Views/MainStory/StorySkillView.cs

@@ -1,4 +1,3 @@
-
 using System;
 using System.Collections.Generic;
 using cfg.GfgCfg;
@@ -11,7 +10,9 @@ namespace GFGGame
     public class StorySkillView : BaseView
     {
         private UI_StorySkillUI _ui;
+
         private Dictionary<int, int> skillScoreDic;
+
         //private EffectUI _effectUI1;
         //private EffectUI _effectUI2;
         private EffectUI _effectUI3;
@@ -39,8 +40,10 @@ namespace GFGGame
                 _ui.Dispose();
                 _ui = null;
             }
+
             base.Dispose();
         }
+
         protected override void OnInit()
         {
             base.OnInit();
@@ -50,17 +53,38 @@ namespace GFGGame
             // this.modal = false;
             //_effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_comSkillShow.m_holderBottom, "ui_fight_new", "CFKP_TX_down");
             //_effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_comSkillShow.m_holderTop, "ui_fight_new", "CFKP_TX_up");
-            _effectUI3 = EffectUIPool.CreateEffectUI(_ui.m_addScore, "ui_fight_new", "CFKP_UP");
-            _effectUI4 = EffectUIPool.CreateEffectUI(_ui.m_reduceScore, "ui_fight_new", "CFKP_Down");
-            _effectUI5 = EffectUIPool.CreateEffectUI(_ui.m_effReduceScore, "ui_fight_new", "CFKP_Down_end");
+            EffectUIPool.CreateEffectUI(_ui.m_addScore, "ui_fight_new", "CFKP_UP",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI3 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_reduceScore, "ui_fight_new", "CFKP_Down",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI4 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_effReduceScore, "ui_fight_new", "CFKP_Down_end",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI5 = effect;
+                    }
+                });
 
             _ui.m_comSkillShow.m_t0.ignoreEngineTimeScale = false;
             _ui.m_comSkillShow.m_t1.ignoreEngineTimeScale = false;
             _ui.m_t1.ignoreEngineTimeScale = false;
 
             isFirst = true;
-
         }
+
         protected override void OnShown()
         {
             base.OnShown();
@@ -69,9 +93,9 @@ namespace GFGGame
             _ui.m_SkillScore.visible = false;
             UpdateView();
         }
+
         private void UpdateView()
         {
-
             if (skillScoreDic.Count > 0)
             {
                 int skillId = 0;
@@ -80,10 +104,13 @@ namespace GFGGame
                     skillId = key;
                     break;
                 }
+
                 PassivitySkillCfg skillCfg = CommonDataManager.Tables.TblPassivitySkillCfg.GetOrDefault(skillId);
                 _ui.m_comSkillShow.m_txtName.text = skillCfg.Name;
-                _ui.m_comSkillShow.m_ComSkillScore.m_txtCount.SetVar("value", skillScoreDic[skillId].ToString()).FlushVars();
-                _ui.m_comSkillShow.m_ComSkillScore.m_txtCount1.SetVar("value", Math.Abs(skillScoreDic[skillId]).ToString()).FlushVars();
+                _ui.m_comSkillShow.m_ComSkillScore.m_txtCount.SetVar("value", skillScoreDic[skillId].ToString())
+                    .FlushVars();
+                _ui.m_comSkillShow.m_ComSkillScore.m_txtCount1
+                    .SetVar("value", Math.Abs(skillScoreDic[skillId]).ToString()).FlushVars();
                 _ui.m_comSkillShow.m_ComSkillScore.m_c1.selectedIndex = skillScoreDic[skillId] >= 0 ? 0 : 1;
 
                 _ui.m_SkillScore.SetVar("value", skillScoreDic[skillId].ToString()).FlushVars();
@@ -120,25 +147,28 @@ namespace GFGGame
                 //战斗卡牌特效处理
                 Timers.inst.Add(0.5f, 1, SetEffVisible);
             }
+
             //else
             {
                 //this.Hide();
                 Timers.inst.Add(2.2f, 1, AutoHide);
             }
         }
+
         protected override void OnHide()
         {
             base.OnHide();
-                _ui.m_addScore.visible = false;
-                _ui.m_reduceScore.visible = false;
-                if (_ui.m_effReduceScore != null)
-                {
-                    _ui.m_effReduceScore.visible = false;
-                }
+            _ui.m_addScore.visible = false;
+            _ui.m_reduceScore.visible = false;
+            if (_ui.m_effReduceScore != null)
+            {
+                _ui.m_effReduceScore.visible = false;
+            }
+
             SetCamera(false);
             Timers.inst.Remove(SetEffReduceScore);
             Timers.inst.Remove(SetEffVisible);
-			Timers.inst.Remove(AutoHide);
+            Timers.inst.Remove(AutoHide);
             _ui.m_comSkillShow.m_t0.Stop(true, false);
             _ui.m_comSkillShow.m_t1.Stop(true, false);
             _ui.m_t1.Stop(true, false);
@@ -149,21 +179,23 @@ namespace GFGGame
         private void SetEffReduceScore(object param)
         {
             _ui.m_effReduceScore.visible = true;
-            _ui.m_t3.Play();   
+            _ui.m_t3.Play();
         }
-        
+
         private void SetEffVisible(object param)
         {
             if (skillScoreDic.Count == 0)
             {
                 return;
             }
+
             int skillId = 0;
             foreach (int key in skillScoreDic.Keys)
             {
                 skillId = key;
                 break;
             }
+
             //战斗卡牌特效处理
             if (skillScoreDic[skillId] > 0)
             {
@@ -200,6 +232,7 @@ namespace GFGGame
                 stageCamera.GetComponent<shakecameraControl>().enabled = false;
                 isFirst = false;
             }
+
             if (isshake)
             {
                 mainCamera.GetComponent<SC_shakeCamera>().enabled = true;
@@ -214,7 +247,6 @@ namespace GFGGame
                 stageCamera.GetComponent<SC_shakeCamera>().enabled = false;
                 stageCamera.GetComponent<shakecameraControl>().enabled = false;
             }
-
         }
 
         private void AutoHide(object param = null)

+ 98 - 14
GameClient/Assets/Game/HotUpdate/Views/MainStory/StroyFightResultView.cs

@@ -86,20 +86,104 @@ namespace GFGGame
 
         private void AddEffect()
         {
-            _effectUI0 = EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderResult0, "ui_fight_new", "ZDJS_lose");
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderResult1, "ui_fight_new", "ZDJS_qualified");
-            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderResult2, "ui_fight_new", "ZDJS_good");
-            _effectUI3 = EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderResult3, "ui_fight_new", "ZDJS_Perfect");
-            _effectUI4 = EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderScore, "ui_fight_new", "ZDJS_Text_kuang");
-            _effectUI5 = EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderStar3, "ui_fight_new", "ZDJS_STAR");
-            _effectUI6 = EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderStar2, "ui_fight_new", "ZDJS_STAR");
-            _effectUI7 = EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderStar1, "ui_fight_new", "ZDJS_STAR");
-            _effectUI8 = EffectUIPool.CreateEffectUI(_ui.m_comExpBar.m_holderProHead, "ui_fight_new", "ZDJS_jindu_di");
-            _effectUI9 =
-                EffectUIPool.CreateEffectUI(_ui.m_comExpBar.m_proExp.m_holder, "ui_fight_new", "ZDJS_jindu_head");
-            _effectUI10 = EffectUIPool.CreateEffectUI(_ui.m_comExpBar.m_proExp.m_comHolder.m_holder, "ui_fight_new",
-                "ZDJS_jindu_tx");
-            _effectUI11 = EffectUIPool.CreateEffectUI(_ui.m_comExpBar.m_holderHead, "ui_fight_new", "ZDJS_player");
+            EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderResult0, "ui_fight_new", "ZDJS_lose",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI0 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderResult1, "ui_fight_new", "ZDJS_qualified",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderResult2, "ui_fight_new", "ZDJS_good",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderResult3, "ui_fight_new", "ZDJS_Perfect",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI3 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderScore, "ui_fight_new", "ZDJS_Text_kuang",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI4 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderStar3, "ui_fight_new", "ZDJS_STAR",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI5 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderStar2, "ui_fight_new", "ZDJS_STAR",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI6 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_comResult.m_holderStar1, "ui_fight_new", "ZDJS_STAR",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI7 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_comExpBar.m_holderProHead, "ui_fight_new", "ZDJS_jindu_di",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI8 = effect;
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_comExpBar.m_proExp.m_holder, "ui_fight_new", "ZDJS_jindu_head",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI9 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_comExpBar.m_proExp.m_comHolder.m_holder, "ui_fight_new",
+                "ZDJS_jindu_tx",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI10 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_comExpBar.m_holderHead, "ui_fight_new", "ZDJS_player",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI11 = effect;
+                    }
+                });
         }
 
         protected async override void OnShown()

+ 72 - 22
GameClient/Assets/Game/HotUpdate/Views/MainUI/MainUIView.cs

@@ -422,12 +422,59 @@ namespace GFGGame
 
         private void AddEffect()
         {
-            _effectUIList.Add(EffectUIPool.CreateEffectUI(_ui.m_btnMain.m_holder, "ui_zjm", "ZJM_szl_down_3"));
-            _effectUIList.Add(EffectUIPool.CreateEffectUI(_ui.m_btnMain.m_holder1, "ui_zjm", "ZJM_szl_top_1"));
-            _effectUIList.Add(EffectUIPool.CreateEffectUI(_ui.m_btnHaiZhiShi.m_holder, "ui_zjm", "ZJM_hzs_down_3"));
-            _effectUIList.Add(EffectUIPool.CreateEffectUI(_ui.m_btnHaiZhiShi.m_holder1, "ui_zjm", "ZJM_hzs_top_1"));
-            _effectUIList.Add(EffectUIPool.CreateEffectUI(_ui.m_BottomEffectHolder, "ui_zjm", "ZJM_DiBan"));
-            _effectUIList.Add(EffectUIPool.CreateEffectUI(_ui.m_btnZhaiXing.m_holder1, "ui_zjm", "ZJM_ZX"));
+            EffectUIPool.CreateEffectUI(_ui.m_btnMain.m_holder, "ui_zjm", "ZJM_szl_down_3",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUIList.Add(effect);
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_btnMain.m_holder1, "ui_zjm", "ZJM_szl_top_1",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUIList.Add(effect);
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_btnHaiZhiShi.m_holder, "ui_zjm", "ZJM_hzs_down_3",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUIList.Add(effect);
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_btnHaiZhiShi.m_holder1, "ui_zjm", "ZJM_hzs_top_1",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUIList.Add(effect);
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_BottomEffectHolder, "ui_zjm", "ZJM_DiBan",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUIList.Add(effect);
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_btnZhaiXing.m_holder1, "ui_zjm", "ZJM_ZX",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUIList.Add(effect);
+                    }
+                });
         }
 
         private void OnClickBtnInstanceZones()
@@ -1162,25 +1209,28 @@ namespace GFGGame
             {
                 await LoadManager.Instance.CheckResExsitedOrDownload(resPath);
 
-                // 定义回调函
-                Action onResetComplete = () =>
+                // 修改回调函数以接受布尔参
+                Action<bool> onResetComplete = (success) =>
                 {
-                    _effectUI1 = new EffectUI();
-                    _effectUI1.Reset(
-                        _ui.m_cardBg.m_comCardHolder.m_holder,
-                        resName,
-                        resName,
-                        110,
-                        EffectUIType.Card
-                    );
-
-                    float offY = GRoot.inst.height / 1000;
-                    _ui.m_cardBg.target.visible = true;
-                    _ui.m_cardBgIcon.target.visible = false;
-                    _ui.m_cardBg.m_comCardHolder.m_holder.y = _ui.m_cardBg.m_comCardHolder.m_holder.y + (offY * 50);
+                    if (success) // 只有在重置成功时才执行后续操作
+                    {
+                        _effectUI1 = new EffectUI();
+                        _effectUI1.Reset(
+                            _ui.m_cardBg.m_comCardHolder.m_holder,
+                            resName,
+                            resName,
+                            110,
+                            EffectUIType.Card
+                        );
+
+                        float offY = GRoot.inst.height / 1000;
+                        _ui.m_cardBg.target.visible = true;
+                        _ui.m_cardBgIcon.target.visible = false;
+                        _ui.m_cardBg.m_comCardHolder.m_holder.y = _ui.m_cardBg.m_comCardHolder.m_holder.y + (offY * 50);
+                    }
                 };
 
-                // 调用 Reset,并传入回调
+                // 调用 Reset,并传入适配后的回调
                 _effectUI1.Reset(
                     _ui.m_cardBg.m_comCardHolder.m_holder,
                     resName,

+ 37 - 8
GameClient/Assets/Game/HotUpdate/Views/MatchingCompetition/MatchingCompetitionRewardView.cs

@@ -21,7 +21,7 @@ namespace GFGGame
 
         private EffectUI _effectUI1;
         private EffectUI _effectUI2;
-        private int counTime = 0;  //定时器计数
+        private int counTime = 0; //定时器计数
 
         public override void Dispose()
         {
@@ -30,8 +30,8 @@ namespace GFGGame
                 _ui.Dispose();
                 _ui = null;
             }
-            base.Dispose();
 
+            base.Dispose();
         }
 
         protected override void OnInit()
@@ -48,6 +48,7 @@ namespace GFGGame
             _ui.m_comList.m_listReward.itemRenderer = RenderListRewardItem;
             _ui.m_mask.onClick.Add(this.Hide);
         }
+
         protected override void OnShown()
         {
             base.OnShown();
@@ -62,7 +63,8 @@ namespace GFGGame
                 _listItemDatas = this.viewData as List<ItemData>;
             }
 
-            List<ItemData> suitPart = new List<ItemData>(); ;
+            List<ItemData> suitPart = new List<ItemData>();
+            ;
             for (int i = _listItemDatas.Count - 1; i >= 0; i--)
             {
                 SuitCfg suitCfg = CommonDataManager.Tables.TblSuitCfg.GetOrDefault(_listItemDatas[i].id);
@@ -72,9 +74,11 @@ namespace GFGGame
                     {
                         suitPart.Add(ItemUtil.createItemData(suitCfg.Parts[j], _listItemDatas[i].num));
                     }
+
                     _listItemDatas.RemoveAt(i);
                 }
             }
+
             _listItemDatas.AddRange(suitPart);
             //_ui.m_listReward.SetVirtual();  //有虚拟列表的时候,没有办法居中显示列表
 
@@ -95,8 +99,22 @@ namespace GFGGame
             counTime += 1;
             if (counTime == 1)
             {
-                _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holderTitle, "ui_hd", "GXHD_Text");
-                _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_holderBgCom, "ui_hd", "TC_Quad_ALL");
+                EffectUIPool.CreateEffectUI(_ui.m_holderTitle, "ui_hd", "GXHD_Text",
+                    onComplete: (effect) =>
+                    {
+                        if (effect != null)
+                        {
+                            _effectUI1 = effect;
+                        }
+                    });
+                EffectUIPool.CreateEffectUI(_ui.m_holderBgCom, "ui_hd", "TC_Quad_ALL",
+                    onComplete: (effect) =>
+                    {
+                        if (effect != null)
+                        {
+                            _effectUI2 = effect;
+                        }
+                    });
             }
             else if (counTime == 2)
             {
@@ -133,22 +151,25 @@ namespace GFGGame
                     _effects[i] = null;
                 }
             }
+
             _effects.Clear();
 
             if (onSuccess != null)
             {
                 onSuccess();
             }
+
             base.OnHide();
             //_effects.Clear();
             //EventAgent.DispatchEvent(ConstMessage.REWARDVIEW_CLOTHER);
             GetSuitItemController.TryShow(0);
-            if(ActivityDataManager.Instance.StartDropId != ActivityDataManager.Instance.TipsDropId)
+            if (ActivityDataManager.Instance.StartDropId != ActivityDataManager.Instance.TipsDropId)
             {
                 PromptController.Instance.ShowFloatTextPrompt("特殊奖励已改变!");
                 ActivityDataManager.Instance.StartDropId = ActivityDataManager.Instance.TipsDropId;
             }
         }
+
         private void RenderListRewardItem(int index, GObject obj)
         {
             // obj.data = _listItemDatas[index];
@@ -202,14 +223,21 @@ namespace GFGGame
             int childIndex = _ui.m_comList.m_listReward.ItemIndexToChildIndex(index);
             if (_effects.Count <= childIndex)
             {
-                EffectUI _effectUI = EffectUIPool.CreateEffectUI(item.m_holderReware, "ui_hd", "GXHD_WuPin", 120);
-                _effects.Add(_effectUI);
+                EffectUIPool.CreateEffectUI(item.m_holderReware, "ui_hd", "GXHD_WuPin", 120,
+                    onComplete: (effect) =>
+                    {
+                        if (effect != null)
+                        {
+                            _effects.Add(effect);
+                        }
+                    });
             }
 
             if (item.target.data == null)
             {
                 item.target.onClick.Add(OnClickListReward);
             }
+
             item.target.data = _listItemDatas[index];
             UI.CommonGame.UI_ComItem.ProxyEnd();
         }
@@ -224,6 +252,7 @@ namespace GFGGame
         }
 
         private bool _showTips = true;
+
         /// <summary>
         /// 是否展示物品详情,默认展示
         /// </summary>

+ 35 - 8
GameClient/Assets/Game/HotUpdate/Views/MiniGame/FlipGameView.cs

@@ -110,8 +110,22 @@ namespace GFGGame
 
             UIObjectFactory.SetPackageItemExtension("ui://MiniGame/CardComponent", typeof(Card));
 
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_barEffect, "ui_Activity", "YXJY_Game_JinDu");
-            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_titleEffec, "ui_Activity", "YXJY_Game_Text");
+            EffectUIPool.CreateEffectUI(_ui.m_barEffect, "ui_Activity", "YXJY_Game_JinDu",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_titleEffec, "ui_Activity", "YXJY_Game_Text",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                    }
+                });
         }
 
         protected override void OnShown()
@@ -201,13 +215,26 @@ namespace GFGGame
 
             cardItem.target.visible = true;
             cardItem.target.alpha = 1;
-            EffectUI _effectUI1 =
-                EffectUIPool.CreateEffectUI(cardItem.m_flipEffect, "ui_Activity", "YXJY_Game_OpenCard");
-            _effectFlipList.Add(_effectUI1);
+
+            EffectUIPool.CreateEffectUI(cardItem.m_flipEffect, "ui_Activity", "YXJY_Game_OpenCard",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectFlipList.Add(effect);
+                    }
+                });
+
             cardItem.m_flipEffect.visible = false;
-            EffectUI _effectUI2 =
-                EffectUIPool.CreateEffectUI(cardItem.m_removeEffect, "ui_Activity", "YXJY_Game_CardDie");
-            _effectRemoveList.Add(_effectUI2);
+            EffectUIPool.CreateEffectUI(cardItem.m_removeEffect, "ui_Activity", "YXJY_Game_CardDie",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectRemoveList.Add(effect);
+                    }
+                });
+
             cardItem.m_removeEffect.visible = false;
 
             cardItem.m_card.GetChild("icon").icon =

+ 32 - 4
GameClient/Assets/Game/HotUpdate/Views/MiniGame/GameStartView.cs

@@ -70,10 +70,38 @@ namespace GFGGame
             _ui.m_tipsOne.onClick.Add(RuleController.ShowRuleView);
             _ui.m_tipsTwo.onClick.Add(RuleController.ShowRuleView);
 
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_effectIcon1, "ui_Activity", "YXJY_Icon");
-            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_effectText1, "ui_Activity", "YXJY_Game_Text");
-            _effectUI3 = EffectUIPool.CreateEffectUI(_ui.m_effectIcon2, "ui_Activity", "SGLL_Icon");
-            _effectUI4 = EffectUIPool.CreateEffectUI(_ui.m_effectText2, "ui_Activity", "SGLL_Game_Text");
+            EffectUIPool.CreateEffectUI(_ui.m_effectIcon1, "ui_Activity", "YXJY_Icon",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_effectText1, "ui_Activity", "YXJY_Game_Text",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_effectIcon2, "ui_Activity", "SGLL_Icon",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI3 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_effectText2, "ui_Activity", "SGLL_Game_Text",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI4 = effect;
+                    }
+                });
         }
 
         protected override void OnShown()

+ 24 - 3
GameClient/Assets/Game/HotUpdate/Views/MiniGame/ResultTipsView.cs

@@ -63,9 +63,30 @@ namespace GFGGame
 
             _ui.m_rewardList.itemRenderer = RenderRewardList;
 
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_effectBg, "ui_Activity", "Game_Quad_Open");
-            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_effectSucces, "ui_Activity", "Game_Quad_Win");
-            _effectUI3 = EffectUIPool.CreateEffectUI(_ui.m_effectFail, "ui_Activity", "Game_Quad_Lose");
+            EffectUIPool.CreateEffectUI(_ui.m_effectBg, "ui_Activity", "Game_Quad_Open",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_effectSucces, "ui_Activity", "Game_Quad_Win",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_effectFail, "ui_Activity", "Game_Quad_Lose",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI3 = effect;
+                    }
+                });
         }
 
         protected override void OnShown()

+ 8 - 1
GameClient/Assets/Game/HotUpdate/Views/MiniGame/TZFEGameVIew.cs

@@ -98,7 +98,14 @@ namespace GFGGame
             Map = new int[rows, columns];
 
 
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_effectTitle, "ui_Activity", "SGLL_Game_Text");
+            EffectUIPool.CreateEffectUI(_ui.m_effectTitle, "ui_Activity", "SGLL_Game_Text",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
         }
 
         protected override void OnShown()

+ 53 - 7
GameClient/Assets/Game/HotUpdate/Views/NewYearRedEnvelope/NewYearRedEnvelopeView.cs

@@ -21,6 +21,7 @@ namespace GFGGame
                 _ui.Dispose();
                 _ui = null;
             }
+
             base.Dispose();
         }
 
@@ -55,18 +56,62 @@ namespace GFGGame
                 if (NewYearRedEnvelopeDataManager.Status == RedPacketStatus.Open)
                     againTimers();
             }
+
             AddEffect();
             Timers.inst.Add(1, 0, UpdateTime);
         }
 
         private void AddEffect()
         {
-            _effectUIList.Add(EffectUIPool.CreateEffectUI(_ui.m_holderTitle, "ui_Activity", "RedPack_Top_Quad"));
-            _effectUIList.Add(EffectUIPool.CreateEffectUI(_ui.m_holderAllBg, "ui_Activity", "RedPack_ALL_tx"));
-            _effectUIList.Add(EffectUIPool.CreateEffectUI(_ui.m_holderAFu, "ui_Activity", "RedPack_AF_Anmation"));
-            _effectUIList.Add(EffectUIPool.CreateEffectUI(_ui.m_holderOpenBtn, "ui_Activity", "RedPack_ONE_cirle"));
-            _effectUIList.Add(EffectUIPool.CreateEffectUI(_ui.m_holderdoubao1, "ui_Activity", "RedPack_doubao_Loop"));
-            _effectUIList.Add(EffectUIPool.CreateEffectUI(_ui.m_holderdoubao2, "ui_Activity", "RedPack_doubao_Loop_R"));
+            EffectUIPool.CreateEffectUI(_ui.m_holderTitle, "ui_Activity", "RedPack_Top_Quad",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUIList.Add(effect);
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_holderAllBg, "ui_Activity", "RedPack_ALL_tx",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUIList.Add(effect);
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_holderAFu, "ui_Activity", "RedPack_AF_Anmation",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUIList.Add(effect);
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_holderOpenBtn, "ui_Activity", "RedPack_ONE_cirle",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUIList.Add(effect);
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_holderdoubao1, "ui_Activity", "RedPack_doubao_Loop",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUIList.Add(effect);
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_holderdoubao2, "ui_Activity", "RedPack_doubao_Loop_R",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUIList.Add(effect);
+                    }
+                });
         }
 
         protected override void AddEventListener()
@@ -184,6 +229,7 @@ namespace GFGGame
             {
                 EffectUIPool.Recycle(_effectUIList[i]);
             }
+
             _effectUIList.Clear();
 
             base.OnHide();
@@ -192,4 +238,4 @@ namespace GFGGame
             Timers.inst.Remove(UpdateTextTime);
         }
     }
-}
+}

+ 31 - 9
GameClient/Assets/Game/HotUpdate/Views/Notice/NoticeView.cs

@@ -27,6 +27,7 @@ namespace GFGGame
                 _ui.Dispose();
                 _ui = null;
             }
+
             base.Dispose();
         }
 
@@ -55,6 +56,7 @@ namespace GFGGame
             _ui.m_c1.onChanged.Add(OnCtrlChange);
             AddEffect();
         }
+
         protected override void AddEventListener()
         {
             base.AddEventListener();
@@ -63,11 +65,12 @@ namespace GFGGame
             EventAgent.AddEventListener(ConstMessage.SHOW_SYSTEM_NOTICE, UpdateView);
             EventAgent.AddEventListener(ConstMessage.RED_CHANGE, UpdateRedDot);
         }
+
         protected override void OnShown()
         {
             base.OnShown();
 
-            
+
             if (backRefresh)
             {
                 _ui.m_c1.selectedIndex = 0;
@@ -93,10 +96,24 @@ namespace GFGGame
         private void AddEffect()
         {
             //邊框左上角特效
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holderLeftTop, "ui_Activity", "Com_window_L_up");
+            EffectUIPool.CreateEffectUI(_ui.m_holderLeftTop, "ui_Activity", "Com_window_L_up",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
 
             //邊框右下角特效
-            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_holderRightDowm, "ui_Activity", "Com_window_R_Down");
+            EffectUIPool.CreateEffectUI(_ui.m_holderRightDowm, "ui_Activity", "Com_window_R_Down",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                    }
+                });
         }
 
         private void OnCtrlChange()
@@ -134,14 +151,17 @@ namespace GFGGame
                 }
                 else
                 {
-                    ActivityInfo activityInfo = ActivityGlobalDataManager.Instance.GetActivityInfo(showActivity[index].ActivityId);
+                    ActivityInfo activityInfo =
+                        ActivityGlobalDataManager.Instance.GetActivityInfo(showActivity[index].ActivityId);
                     endTime = activityInfo.EndTime;
                 }
             }
+
             item.m_txtTime.text = string.Format("剩余时间:{0}", TimeUtil.FormattingTimeTo_DDHHmm(endTime - curTime));
             item.target.onClick.Add(OnListActivityClick);
             item.target.data = showActivity[index];
-            item.m_imgTips.visible = NoticeDataManager.Instance.GetRedDotState(showActivity[index].JumpId, showActivity[index].ActivityId);
+            item.m_imgTips.visible =
+                NoticeDataManager.Instance.GetRedDotState(showActivity[index].JumpId, showActivity[index].ActivityId);
             UI_ListActivityItem.ProxyEnd();
         }
 
@@ -155,10 +175,12 @@ namespace GFGGame
             {
                 param = new object[] { adCfg.ActivityId };
             }
+
             if (adCfg.JumpId == nameof(NewLimitChargeView))
             {
                 param = new object[] { adCfg.ActivityId };
             }
+
             if (adCfg.JumpId == nameof(LuckyBoxView))
             {
                 jumpIndex = adCfg.JumpParam[0];
@@ -174,7 +196,6 @@ namespace GFGGame
                 ViewManager.Show($"GFGGame.{adCfg.JumpId}", param, false, false);
                 //Hide();
             }
-
         }
 
         /// <summary>
@@ -194,6 +215,7 @@ namespace GFGGame
             {
                 item.m_btnGo.onClick.Add(OnListNoticeBtnGoClick);
             }
+
             item.m_btnGo.data = noticeInfo;
 
             UI_ListNoticeItem.ProxyEnd();
@@ -210,7 +232,8 @@ namespace GFGGame
                 bool result = await NoticeSProxy.ReqSystemNotice(noticeInfo.noticeId);
                 if (result)
                 {
-                    ViewManager.Show<NoticeSystemShowView>(NoticeDataManager.Instance.GetNoticeInfoById(noticeInfo.noticeId), false, false);
+                    ViewManager.Show<NoticeSystemShowView>(
+                        NoticeDataManager.Instance.GetNoticeInfoById(noticeInfo.noticeId), false, false);
                 }
             }
             else
@@ -225,7 +248,6 @@ namespace GFGGame
         }
 
 
-
         private void UpdateTitleRedDot()
         {
             bool btnActivityFlag = false;
@@ -269,7 +291,7 @@ namespace GFGGame
 
         private void UpdateRedDot()
         {
-            if(_ui.m_c1.selectedIndex == 0)
+            if (_ui.m_c1.selectedIndex == 0)
             {
                 OnCtrlChange();
                 UpdateInfo();

+ 31 - 10
GameClient/Assets/Game/HotUpdate/Views/OpenServerActivity/OpenServerActivityView.cs

@@ -29,6 +29,7 @@ namespace GFGGame
                 _ui.Dispose();
                 _ui = null;
             }
+
             base.Dispose();
         }
 
@@ -60,7 +61,14 @@ namespace GFGGame
         {
             //_effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_holderSmallBg, "ui_Activity", "NewAtv_Quad");
             //_effectUI3 = EffectUIPool.CreateEffectUI(_ui.m_holderSmallBgTx, "ui_Activity", "NewAtv_Quad_tx");
-            _effectUI4 = EffectUIPool.CreateEffectUI(_ui.m_holderFog, "ui_Activity", "NewAtv_BG_tx");
+            EffectUIPool.CreateEffectUI(_ui.m_holderFog, "ui_Activity", "NewAtv_BG_tx",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI4 = effect;
+                    }
+                });
         }
 
         protected override void OnShown()
@@ -72,7 +80,7 @@ namespace GFGGame
             _ui.m_buttonNewYearLogin.visible = false;
             //RefreshButtonNewYearLogin();
             //int actLimitId = ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitStlyc);
-           // ActivityOpenCfg activiyCfg = ActivityOpenCfgArray.Instance.GetCfg(actLimitId);
+            // ActivityOpenCfg activiyCfg = ActivityOpenCfgArray.Instance.GetCfg(actLimitId);
             // if (activiyCfg != null)
             // {
             //     _ui.m_timeText.text = GetTImeText(activiyCfg.endTime);
@@ -110,10 +118,15 @@ namespace GFGGame
 
         private void UpdateRedDot()
         {
-            RedDotController.Instance.SetComRedDot(_ui.m_btnTenShu, (RedDotDataManager.Instance.GetActLuckyBoxRewardRed(ConstLimitTimeActivityType.ActLimitStlyc) || RedDotDataManager.Instance.GetGiftBagRewardRed() || RedDotDataManager.Instance.GetMeiRiTeHuiRed()), "", -100, 11);
+            RedDotController.Instance.SetComRedDot(_ui.m_btnTenShu,
+                (RedDotDataManager.Instance.GetActLuckyBoxRewardRed(ConstLimitTimeActivityType.ActLimitStlyc) ||
+                 RedDotDataManager.Instance.GetGiftBagRewardRed() || RedDotDataManager.Instance.GetMeiRiTeHuiRed()), "",
+                -100, 11);
             RedDotController.Instance.SetComRedDot(_ui.m_btnHeaven, MiniGameDateManager.Instance.GetRewardRot());
-            RedDotController.Instance.SetComRedDot(_ui.m_btnAnswerTianmen, RedDotDataManager.Instance.GetOpenServerStoryRed(), "", -80, 100);
-            RedDotController.Instance.SetComRedDot(_ui.m_buttonNewYearLogin, ActivityDataManager.Instance.CanGetNewYearLoginRed(), "", 0, 0);
+            RedDotController.Instance.SetComRedDot(_ui.m_btnAnswerTianmen,
+                RedDotDataManager.Instance.GetOpenServerStoryRed(), "", -80, 100);
+            RedDotController.Instance.SetComRedDot(_ui.m_buttonNewYearLogin,
+                ActivityDataManager.Instance.CanGetNewYearLoginRed(), "", 0, 0);
         }
 
         private void UpdateTime(object param)
@@ -123,7 +136,8 @@ namespace GFGGame
 
         private void RefreshTimeText()
         {
-            int actLimitId = ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitStlyc);
+            int actLimitId =
+                ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitStlyc);
             if (actLimitId <= 0)
             {
                 PromptController.Instance.ShowFloatTextPrompt("活动已结束");
@@ -131,6 +145,7 @@ namespace GFGGame
                 OnClickBtnBack();
                 return;
             }
+
             ActivityOpenCfg activityOpenCfg = CommonDataManager.Tables.TblActivityOpenCfg.GetOrDefault(actLimitId);
             if (actLimitId <= 0)
             {
@@ -139,6 +154,7 @@ namespace GFGGame
                 OnClickBtnBack();
                 return;
             }
+
             long time = TimeUtil.DateTimeToTimestamp(activityOpenCfg.EndTime) - TimeHelper.ServerNow();
             string strTime = TimeUtil.FormattingTimeTo_DD_HH_mm(time);
             string[] str = strTime.Split(':');
@@ -179,10 +195,11 @@ namespace GFGGame
                 ViewManager.Show<LuckyBoxActivityView>(ConstLimitTimeActivityType.ActLimitStlyc);
         }
 
-        private void OnClickBtnNineZhouPool() 
+        private void OnClickBtnNineZhouPool()
         {
-            if(JudgeActivityExpire())
-                ViewManager.Show<StoreView>(new object[] { ConstStoreTabId.STORE_EXCHANGE, ConstStoreSubId.STORE_ACTIVITY_EXCHANGE });
+            if (JudgeActivityExpire())
+                ViewManager.Show<StoreView>(new object[]
+                    { ConstStoreTabId.STORE_EXCHANGE, ConstStoreSubId.STORE_ACTIVITY_EXCHANGE });
         }
 
         private void OnClickButtonNewYearLogin()
@@ -193,14 +210,17 @@ namespace GFGGame
         //判断神都宸游活动是否过期
         private bool JudgeActivityExpire()
         {
-            int actLimitId = ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitStlyc);
+            int actLimitId =
+                ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitStlyc);
             if (actLimitId <= 0)
             {
                 PromptController.Instance.ShowFloatTextPrompt("活动已结束");
                 return false;
             }
+
             return true;
         }
+
         private string GetTImeText(string time)
         {
             string pattern = @"\[(.*?)\]";
@@ -216,6 +236,7 @@ namespace GFGGame
             {
                 TimeText += "-" + matches[i].Groups[1].Value;
             }
+
             return TimeText;
         }
     }

+ 25 - 6
GameClient/Assets/Game/HotUpdate/Views/OpenServerActivity/OpenServerSuitAdditionView.cs

@@ -28,6 +28,7 @@ namespace GFGGame
                 _ui.Dispose();
                 _ui = null;
             }
+
             base.Dispose();
         }
 
@@ -61,7 +62,8 @@ namespace GFGGame
             int levelID = (int)(this.viewData as object[])[1];
             _activityId = ActivityDataManager.Instance.GetCurOpenActiveByType(_activityType);
             ActivityOpenCfg activityOpenCfg = CommonDataManager.Tables.TblActivityOpenCfg.GetOrDefault(_activityId);
-            ActivityFightCfg fightCfg = CommonDataManager.Tables.TblActivityFightCfg.GetOrDefault(activityOpenCfg.Params3[0]);
+            ActivityFightCfg fightCfg =
+                CommonDataManager.Tables.TblActivityFightCfg.GetOrDefault(activityOpenCfg.Params3[0]);
             _ui.m_list.numItems = fightCfg.ActivitySuitId.Count;
 
             StoryLevelCfg levelCfg = CommonDataManager.Tables.TblStoryLevelCfg.GetOrDefault(levelID);
@@ -86,7 +88,8 @@ namespace GFGGame
         {
             UI_suitAdditionItem listItem = UI_suitAdditionItem.Proxy(item);
             ActivityOpenCfg activityOpenCfg = CommonDataManager.Tables.TblActivityOpenCfg.GetOrDefault(_activityId);
-            ActivityFightCfg fightCfg = CommonDataManager.Tables.TblActivityFightCfg.GetOrDefault(activityOpenCfg.Params3[0]);
+            ActivityFightCfg fightCfg =
+                CommonDataManager.Tables.TblActivityFightCfg.GetOrDefault(activityOpenCfg.Params3[0]);
             int suitId = fightCfg.ActivitySuitId[index];
             SuitCfg suitCfg = CommonDataManager.Tables.TblSuitCfg.GetOrDefault(suitId);
             listItem.m_txtName.text = suitCfg.Name;
@@ -94,6 +97,7 @@ namespace GFGGame
             {
                 listItem.m_list.itemRenderer = ListItemRewardRender;
             }
+
             listItem.m_list.data = suitCfg.Parts;
 
             listItem.m_list.numItems = suitCfg.Parts.Count;
@@ -113,10 +117,11 @@ namespace GFGGame
             item.m_loaIcon.url = ResPathUtil.GetIconPath(itemCfg);
             item.m_txtCount.text = "1";
             float addition = 0;
-            if (ItemDataManager.GetItemNum(itemId) > 0) {
+            if (ItemDataManager.GetItemNum(itemId) > 0)
+            {
                 addition += itemCfg.Addition;
                 addition = addition / 10000 * 100;
-                item.m_txtAddition.text = string.Format("获得加成:{0}%" , addition);
+                item.m_txtAddition.text = string.Format("获得加成:{0}%", addition);
                 item.m_Lock.selectedIndex = 3;
             }
             else
@@ -128,10 +133,24 @@ namespace GFGGame
         private void AddEffect()
         {
             //边框左上角特效
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holderLeftTop, "ui_Activity", "Com_window_L_up");
+            EffectUIPool.CreateEffectUI(_ui.m_holderLeftTop, "ui_Activity", "Com_window_L_up",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
 
             //边框右下角特效
-            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_holderRightDowm, "ui_Activity", "Com_window_R_Down");
+            EffectUIPool.CreateEffectUI(_ui.m_holderRightDowm, "ui_Activity", "Com_window_R_Down",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                    }
+                });
         }
     }
 }

+ 16 - 2
GameClient/Assets/Game/HotUpdate/Views/RoleInfo/ChangeHeadView.cs

@@ -258,10 +258,24 @@ namespace GFGGame
         private void AddEffect()
         {
             //邊框左上角特效
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holderLeftTop, "ui_Activity", "Com_window_L_up");
+            EffectUIPool.CreateEffectUI(_ui.m_holderLeftTop, "ui_Activity", "Com_window_L_up",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
 
             //邊框右下角特效
-            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_holderRightDowm, "ui_Activity", "Com_window_R_Down");
+            EffectUIPool.CreateEffectUI(_ui.m_holderRightDowm, "ui_Activity", "Com_window_R_Down",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                    }
+                });
         }
     }
 }

+ 28 - 11
GameClient/Assets/Game/HotUpdate/Views/RoleInfo/ChangeNameView.cs

@@ -26,6 +26,7 @@ namespace GFGGame
                 _ui.Dispose();
                 _ui = null;
             }
+
             base.Dispose();
         }
 
@@ -45,7 +46,9 @@ namespace GFGGame
 
             AddEffect();
 
-            ItemCfg cfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault( CommonDataManager.Tables.TblGlobalCfg.ChangeNameCost[0]);
+            ItemCfg cfg =
+                CommonDataManager.Tables.TblItemCfg.GetOrDefault(
+                    CommonDataManager.Tables.TblGlobalCfg.ChangeNameCost[0]);
             //_ui.m_loaIcon.url = ResPathUtil.GetCommonGameResPath(cfg.res);
             _ui.m_loaIcon.url = ResPathUtil.GetIconPath(cfg.Res, "png");
             _ui.m_loaIcon.onClick.Add(OnBtnIconClick);
@@ -63,13 +66,28 @@ namespace GFGGame
         {
             base.OnHide();
         }
+
         private void AddEffect()
         {
             //邊框左上角特效
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holderLeftTop, "ui_Activity", "Com_window_L_up");
+            EffectUIPool.CreateEffectUI(_ui.m_holderLeftTop, "ui_Activity", "Com_window_L_up",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
 
             //邊框右下角特效
-            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_holderRightDowm, "ui_Activity", "Com_window_R_Down");
+            EffectUIPool.CreateEffectUI(_ui.m_holderRightDowm, "ui_Activity", "Com_window_R_Down",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                    }
+                });
         }
 
         protected override void AddEventListener()
@@ -99,11 +117,12 @@ namespace GFGGame
                 return;
             }
 
-            if (!Regex.IsMatch(roleName, @"^[\u4e00-\u9fa5_0-9]+$"))//角色起名仅允许汉字、数字、底划线
+            if (!Regex.IsMatch(roleName, @"^[\u4e00-\u9fa5_0-9]+$")) //角色起名仅允许汉字、数字、底划线
             {
                 PromptController.Instance.ShowFloatTextPrompt("角色名仅允许汉字、数字、下划线");
                 return;
             }
+
             string costName = ItemUtil.GetItemName(CommonDataManager.Tables.TblGlobalCfg.ChangeNameCost[0]);
             int count = CommonDataManager.Tables.TblGlobalCfg.ChangeNameCost[1];
 
@@ -111,16 +130,12 @@ namespace GFGGame
             if (haveNum >= count)
             {
                 AlertUI.Show(string.Format("是否花费{0}个{1}改名1次?", count, costName))
-                .SetLeftButton(true).SetRightButton(true, "确定", (object data) =>
-                {
-                    ChangeName(roleName);
-                });
+                    .SetLeftButton(true).SetRightButton(true, "确定", (object data) => { ChangeName(roleName); });
             }
             else
             {
                 PromptController.Instance.ShowFloatTextPrompt("改名卡数量不足");
             }
-
         }
 
         private async void ChangeName(string roleName)
@@ -147,7 +162,9 @@ namespace GFGGame
 
         private void OnBtnIconClick(EventContext context)
         {
-            ItemCfg itemCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(CommonDataManager.Tables.TblGlobalCfg.ChangeNameCost[0]);
+            ItemCfg itemCfg =
+                CommonDataManager.Tables.TblItemCfg.GetOrDefault(
+                    CommonDataManager.Tables.TblGlobalCfg.ChangeNameCost[0]);
             object[] sourceDatas = new object[]
                 { itemCfg.Id, new object[] { typeof(ChangeNameView).FullName, this.viewData } };
             GoodsItemTipsController.ShowItemTips(itemCfg.Id, sourceDatas);
@@ -156,7 +173,7 @@ namespace GFGGame
         private void UpdateItem(EventContext context)
         {
             int itemID = (int)context.data;
-            if(itemID != CommonDataManager.Tables.TblGlobalCfg.ChangeNameCost[0])
+            if (itemID != CommonDataManager.Tables.TblGlobalCfg.ChangeNameCost[0])
             {
                 return;
             }

+ 41 - 10
GameClient/Assets/Game/HotUpdate/Views/RoleInfo/ChangeThemeView.cs

@@ -30,11 +30,13 @@ namespace GFGGame
                 _comSelected.RemoveFromParent();
                 _comSelected.Dispose();
             }
+
             if (_ui != null)
             {
                 _ui.Dispose();
                 _ui = null;
             }
+
             base.Dispose();
         }
 
@@ -53,26 +55,28 @@ namespace GFGGame
             _ui.m_list.onClickItem.Add(OnListCardItemClick);
             _ui.m_btnSure.onClick.Add(OnClickBtnSure);
             _ui.m_btnClear.onClick.Add(OnClickBtnClear);
-            _ui.m_btnClose.onClick.Add(()=> { this.Hide(); });
+            _ui.m_btnClose.onClick.Add(() => { this.Hide(); });
             AddEffect();
             _comSelected = UIPackage.CreateObject(UI_MainUI.PACKAGE_NAME, "ComCardSelect").asCom;
         }
+
         protected override void OnShown()
         {
             base.OnShown();
             cardList = CardDataManager.GetCardListByRoleType(0);
             cardList = CardDataManager.SortItemList(cardList);
             _ui.m_list.numItems = cardList.Count;
-            if(cardList.Count >0 )
+            if (cardList.Count > 0)
             {
                 _ui.m_list.GetChildAt(selectIndex).asCom.AddChild(_comSelected);
-            }     
+            }
         }
 
         protected override void OnHide()
         {
             base.OnHide();
         }
+
         private void RenderListCardItem(int index, GObject obj)
         {
             CardData cardData = cardList[index];
@@ -96,12 +100,14 @@ namespace GFGGame
                 dodgeStar.m_lightType.selectedIndex = (starLevelDodge > i) ? 1 : 0;
                 UI_ComDodgeFightStar.ProxyEnd();
             }
+
             item.m_useIcon.visible = false;
             item.m_fieldwork.visible = false;
-            if(cardData.id == MainDataManager.Instance.CardBgID)
+            if (cardData.id == MainDataManager.Instance.CardBgID)
             {
                 selectIndex = index;
             }
+
             UI_ListCardFightItem.ProxyEnd();
             // UI_ComStar.ProxyEnd();
         }
@@ -114,21 +120,31 @@ namespace GFGGame
 
             EffectUIPool.Recycle(_effectUI3);
             _effectUI3 = null;
-            _effectUI3 = EffectUIPool.CreateEffectUI(item.m_effect, "ui_KP", "KP_Select");
+            EffectUIPool.CreateEffectUI(item.m_effect, "ui_KP", "KP_Select",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI3 = effect;
+                    }
+                });
             _ui.m_list.GetChildAt(_ui.m_list.selectedIndex).asCom.AddChild(_comSelected);
             OnCardSelected(cardList[_ui.m_list.selectedIndex].id);
         }
+
         private void OnCardSelected(int cardId)
         {
             MainDataManager.Instance.CardBgID = cardId;
-
         }
+
         private async void OnClickBtnSure()
         {
-            await ActivitySProxy.SetOnceStatus(MainDataManager.Instance.CardBgKey, MainDataManager.Instance.CardBgID, 0);
+            await ActivitySProxy.SetOnceStatus(MainDataManager.Instance.CardBgKey, MainDataManager.Instance.CardBgID,
+                0);
             PromptController.Instance.ShowFloatTextPrompt("更换成功!");
             this.Hide();
         }
+
         private async void OnClickBtnClear()
         {
             await ActivitySProxy.SetOnceStatus(MainDataManager.Instance.CardBgKey, 0, 0);
@@ -136,13 +152,28 @@ namespace GFGGame
             PromptController.Instance.ShowFloatTextPrompt("关闭成功!");
             this.Hide();
         }
+
         private void AddEffect()
         {
             //邊框左上角特效
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holderLeftTop, "ui_Activity", "Com_window_L_up");
+            EffectUIPool.CreateEffectUI(_ui.m_holderLeftTop, "ui_Activity", "Com_window_L_up",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
 
             //邊框右下角特效
-            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_holderRightDowm, "ui_Activity", "Com_window_R_Down");
+            EffectUIPool.CreateEffectUI(_ui.m_holderRightDowm, "ui_Activity", "Com_window_R_Down",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                    }
+                });
         }
     }
-}
+}

+ 32 - 10
GameClient/Assets/Game/HotUpdate/Views/RoleInfo/PhoneBindingView.cs

@@ -8,7 +8,6 @@ namespace GFGGame
 {
     public class PhoneBindingView : BaseWindow
     {
-
         private UI_PhoneBindingUI _ui;
         private float countTimeSpeed = 0.000035f;
         private bool isCountTime = false;
@@ -27,6 +26,7 @@ namespace GFGGame
                 _ui.Dispose();
                 _ui = null;
             }
+
             base.Dispose();
         }
 
@@ -41,7 +41,8 @@ namespace GFGGame
             viewAnimationType = EnumViewAnimationType.ZOOM_CENTER;
 
             _ui.m_btnSure.target.onClick.Add(OnBtnSureClick);
-            _ui.m_icon.url = ResPathUtil.GetIconPath(CommonDataManager.Tables.TblItemCfg.GetOrDefault(ConstItemID.DIAMOND_RED));
+            _ui.m_icon.url =
+                ResPathUtil.GetIconPath(CommonDataManager.Tables.TblItemCfg.GetOrDefault(ConstItemID.DIAMOND_RED));
             _ui.m_btnGetCode.onClick.Add(OnBtnGetCode);
             _ui.m_btnClose.onClick.Add(Hide);
 
@@ -62,6 +63,7 @@ namespace GFGGame
             base.OnHide();
             Timers.inst.Remove(UpdateCountTime);
         }
+
         private void UpdateCountTime(object param = null)
         {
             if (_ui.m_countTime.fillAmount <= 0)
@@ -71,17 +73,21 @@ namespace GFGGame
                 isCountTime = false;
                 Timers.inst.Remove(UpdateCountTime);
             }
+
             _ui.m_countTime.fillAmount -= countTimeSpeed;
         }
+
         private async void OnBtnSureClick()
         {
-            if(ActivityDataManager.Instance.PhoneNum != null && ActivityDataManager.Instance.PhoneNum != "")
+            if (ActivityDataManager.Instance.PhoneNum != null && ActivityDataManager.Instance.PhoneNum != "")
             {
-                PromptController.Instance.ShowFloatTextPrompt(string.Format("号码{0}已绑定!", ActivityDataManager.Instance.PhoneNum));
+                PromptController.Instance.ShowFloatTextPrompt(string.Format("号码{0}已绑定!",
+                    ActivityDataManager.Instance.PhoneNum));
                 Hide();
             }
-            bool result = await RoleInfoSProxy.BindMobilePhoneNumber(_ui.m_inputPhoneNumber.text ,_ui.m_inputName.text);
-            if(result)
+
+            bool result = await RoleInfoSProxy.BindMobilePhoneNumber(_ui.m_inputPhoneNumber.text, _ui.m_inputName.text);
+            if (result)
             {
                 //PromptController.Instance.ShowFloatTextPrompt("绑定成功!");
                 //Hide();
@@ -89,21 +95,23 @@ namespace GFGGame
             else
             {
                 //PromptController.Instance.ShowFloatTextPrompt("绑定失败!");
-            }   
+            }
         }
 
-        private  async void OnBtnGetCode()
+        private async void OnBtnGetCode()
         {
             if (_ui.m_inputPhoneNumber.text == null || _ui.m_inputPhoneNumber.text == "")
             {
                 PromptController.Instance.ShowFloatTextPrompt("麻烦输入手机号码!");
                 return;
             }
+
             if (isCountTime)
             {
                 PromptController.Instance.ShowFloatTextPrompt("刷新冷却中,请耐心等待!");
                 return;
             }
+
             isCountTime = true;
             _ui.m_countTime.visible = true;
             _ui.m_countTime.fillAmount = 1.0f;
@@ -122,10 +130,24 @@ namespace GFGGame
         private void AddEffect()
         {
             //邊框左上角特效
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holderLeftTop, "ui_Activity", "Com_window_L_up");
+            EffectUIPool.CreateEffectUI(_ui.m_holderLeftTop, "ui_Activity", "Com_window_L_up",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
 
             //邊框右下角特效
-            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_holderRightDowm, "ui_Activity", "Com_window_R_Down");
+            EffectUIPool.CreateEffectUI(_ui.m_holderRightDowm, "ui_Activity", "Com_window_R_Down",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                    }
+                });
         }
     }
 }

+ 29 - 4
GameClient/Assets/Game/HotUpdate/Views/RoleLvUp/RoleLvUpView.cs

@@ -30,6 +30,7 @@ namespace GFGGame
                 _ui.Dispose();
                 _ui = null;
             }
+
             base.Dispose();
         }
 
@@ -51,6 +52,7 @@ namespace GFGGame
             oldLvValue = (int)this.viewData;
             UpdateView();
         }
+
         private void UpdateView()
         {
             _ui.m_txtLv.text = RoleDataManager.lvl.ToString();
@@ -64,11 +66,13 @@ namespace GFGGame
                 limiteCountAdd += cfg.AddPowerLimit;
                 powerCount += cfg.AddPower;
             }
+
             _ui.m_com0.target.visible = limiteCountAdd > 0;
             _ui.m_com1.target.visible = powerCount > 0;
             _ui.m_com0.m_txtCount.text = string.Format("+{0}", limiteCountAdd);
             _ui.m_com1.m_txtCount.text = string.Format("+{0}", powerCount);
         }
+
         protected override void OnHide()
         {
             base.OnHide();
@@ -82,13 +86,34 @@ namespace GFGGame
         private void AddEffect()
         {
             //升级成功特效
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holderTitle, "ui_sj", "SJ");
+            EffectUIPool.CreateEffectUI(_ui.m_holderTitle, "ui_sj", "SJ",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
 
             //升级成功特效上层
-            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_holderTitleUp, "ui_sj", "SJ_top_number");
+            EffectUIPool.CreateEffectUI(_ui.m_holderTitleUp, "ui_sj", "SJ_top_number",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                    }
+                });
 
             //等级特效
-            _effectUI3 = EffectUIPool.CreateEffectUI(_ui.m_holderNumber, "ui_sj", "SJ_Number");
+            EffectUIPool.CreateEffectUI(_ui.m_holderNumber, "ui_sj", "SJ_Number",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI3 = effect;
+                    }
+                });
         }
     }
-}
+}

+ 28 - 5
GameClient/Assets/Game/HotUpdate/Views/Store/BrocadeWeavTask.cs

@@ -29,6 +29,7 @@ namespace GFGGame
                 _ui.Dispose();
                 _ui = null;
             }
+
             base.Dispose();
         }
 
@@ -74,7 +75,8 @@ namespace GFGGame
         private void OnTaskChanges(EventContext eventContext)
         {
             var taskIds = (List<int>)eventContext.data;
-            if (taskIds.Select(taskId => CommonDataManager.Tables.TblTaskCfg.GetOrDefault(taskId)).Where(taskCfg => taskCfg != null)
+            if (taskIds.Select(taskId => CommonDataManager.Tables.TblTaskCfg.GetOrDefault(taskId))
+                .Where(taskCfg => taskCfg != null)
                 .Any(taskCfg => taskCfg.FuncType == funcType))
             {
                 UpdateTask();
@@ -119,21 +121,25 @@ namespace GFGGame
             {
                 item.m_GetRewardBt.target.onClick.Add(OnBtnGetClick);
             }
+
             item.m_GetRewardBt.target.data = _cfgs[index].Id;
             if (item.m_ComeBt.target.data == null)
             {
                 item.m_ComeBt.target.onClick.Add(OnBtnGoClick);
             }
+
             item.m_ComeBt.target.data = _cfgs[index];
             if (item.m_listTaskReward.data == null)
             {
                 item.m_listTaskReward.itemRenderer = ListTaskRewardItemRender;
             }
+
             var reward = TaskDataManager.Instance.GetReward(_cfgs[index]);
             item.m_listTaskReward.data = reward;
             item.m_listTaskReward.numItems = reward.Count;
             var isBuy = BattlePassTaskDataManager.Instance.GetIsBuy();
-            bool canGet = item.m_c1.selectedIndex == 1 && (funcType != TaskFuncType.BattlePass || funcType == TaskFuncType.BattlePass && isBuy);
+            bool canGet = item.m_c1.selectedIndex == 1 &&
+                          (funcType != TaskFuncType.BattlePass || funcType == TaskFuncType.BattlePass && isBuy);
             RedDotController.Instance.SetComRedDot(item.m_GetRewardBt.target, canGet);
             UI_TaskListItem.ProxyEnd();
         }
@@ -162,6 +168,7 @@ namespace GFGGame
                     return;
                 }
             }
+
             var result = await TaskSProxy.GetTaskBonus((int)btnGet.data);
             if (!result) return;
             UpdateTask();
@@ -179,7 +186,8 @@ namespace GFGGame
             {
                 param[i] = taskCfg.JumpParam[i];
             }
-            ViewManager.JumpToView(taskCfg.JumpId, param,true,true);
+
+            ViewManager.JumpToView(taskCfg.JumpId, param, true, true);
         }
 
         private async void OnBtnGetAllClick()
@@ -195,6 +203,7 @@ namespace GFGGame
                     return;
                 }
             }
+
             var result = await TaskSProxy.GetAllTaskBonus(funcType);
             if (!result) return;
             UpdateTask();
@@ -204,10 +213,24 @@ namespace GFGGame
         private void AddEffect()
         {
             //邊框左上角特效
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holderLeftTop, "ui_Activity", "Com_window_L_up");
+            EffectUIPool.CreateEffectUI(_ui.m_holderLeftTop, "ui_Activity", "Com_window_L_up",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
 
             //邊框右下角特效
-            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_holderRightDowm, "ui_Activity", "Com_window_R_Down");
+            EffectUIPool.CreateEffectUI(_ui.m_holderRightDowm, "ui_Activity", "Com_window_R_Down",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                    }
+                });
         }
     }
 }

+ 9 - 4
GameClient/Assets/Game/HotUpdate/Views/Store/StoreChargeView.cs

@@ -117,10 +117,15 @@ namespace GFGGame
             item.m_icon.url = "ui://Store/sc_zizhuan_" + (index + 1);
             if (isDouble)
             {
-                EffectUI _effectUI =
-                    EffectUIPool.CreateEffectUI(item.m_holderfEff, "ui_Small_parts", "store_FirstCharge_Double");
-                _effectUIs.Add(_effectUI);
-                item.m_holderfEff.visible = isDouble;
+                EffectUIPool.CreateEffectUI(item.m_holderfEff, "ui_Small_parts", "store_FirstCharge_Double",
+                    onComplete: (effect) =>
+                    {
+                        if (effect != null)
+                        {
+                            _effectUIs.Add(effect);
+                            item.m_holderfEff.visible = isDouble;
+                        }
+                    });
             }
 
             UI_ListChargeItem.ProxyEnd();

+ 8 - 1
GameClient/Assets/Game/HotUpdate/Views/Store/StoreMonthView.cs

@@ -250,7 +250,14 @@ namespace GFGGame
 
         private void AddEffect()
         {
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holderfEff, "ui_Small_parts", "store_monthlycard");
+            EffectUIPool.CreateEffectUI(_ui.m_holderfEff, "ui_Small_parts", "store_monthlycard",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
         }
 
         private bool CheckIsBuyMonthCard()

+ 9 - 3
GameClient/Assets/Game/HotUpdate/Views/Store/StoreZGDCView.cs

@@ -169,9 +169,15 @@ namespace GFGGame
             item.m_grpDiscount.visible = shopCfg.Price < shopCfg.OriginalPrice;
             if (item.m_grpDiscount.visible)
             {
-                EffectUI _effectUI = EffectUIPool.CreateEffectUI(item.m_holderfEff, "ui_Small_parts", "store_Value");
-                _effectUIs.Add(_effectUI);
-                item.m_holderfEff.visible = shopCfg.Price < shopCfg.OriginalPrice;
+                EffectUIPool.CreateEffectUI(item.m_holderfEff, "ui_Small_parts", "store_Value",
+                    onComplete: (effect) =>
+                    {
+                        if (effect != null)
+                        {
+                            _effectUIs.Add(effect);
+                            item.m_holderfEff.visible = shopCfg.Price < shopCfg.OriginalPrice;
+                        }
+                    });
             }
 
             item.m_txtDesc.text = shopCfg.Price <= 0

+ 16 - 2
GameClient/Assets/Game/HotUpdate/Views/Studio/StudioBuyNumView.cs

@@ -115,10 +115,24 @@ namespace GFGGame
         private void AddEffect()
         {
             //边框左上角特效
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_LeftTopEffect, "ui_Activity", "Com_window_L_up");
+            EffectUIPool.CreateEffectUI(_ui.m_LeftTopEffect, "ui_Activity", "Com_window_L_up",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
 
             //边框右下角特效
-            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_RightDownEffect, "ui_Activity", "Com_window_R_Down");
+            EffectUIPool.CreateEffectUI(_ui.m_RightDownEffect, "ui_Activity", "Com_window_R_Down",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                    }
+                });
         }
 
         protected override void RemoveEventListener()

+ 16 - 2
GameClient/Assets/Game/HotUpdate/Views/Studio/StudioFilingRewardView.cs

@@ -83,10 +83,24 @@ namespace GFGGame
         private void AddEffect()
         {
             //边框左上角特效
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_LeftTopEffect, "ui_Activity", "Com_window_L_up");
+            EffectUIPool.CreateEffectUI(_ui.m_LeftTopEffect, "ui_Activity", "Com_window_L_up",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
 
             //边框右下角特效
-            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_RightDownEffect, "ui_Activity", "Com_window_R_Down");
+            EffectUIPool.CreateEffectUI(_ui.m_RightDownEffect, "ui_Activity", "Com_window_R_Down",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                    }
+                });
         }
 
         protected override void RemoveEventListener()

+ 76 - 24
GameClient/Assets/Game/HotUpdate/Views/Studio/StudioView.cs

@@ -1,4 +1,3 @@
-
 using ET;
 using FairyGUI;
 using UI.Studio;
@@ -17,6 +16,7 @@ namespace GFGGame
         private EffectUI _effectUI5;
         private EffectUI _effectUI6;
         private Dictionary<string, UI_ComEctype> comEctypeDic = new Dictionary<string, UI_ComEctype>();
+
         public override void Dispose()
         {
             EffectUIPool.Recycle(_effectUI1);
@@ -36,6 +36,7 @@ namespace GFGGame
                 _ui.Dispose();
                 _ui = null;
             }
+
             base.Dispose();
         }
 
@@ -63,21 +64,65 @@ namespace GFGGame
             comEctypeDic.Add(typeof(StudioFilingView).FullName, _ui.m_comFiling);
             comEctypeDic.Add(typeof(StudioPorcelainView).FullName, _ui.m_comPorcelain);
 
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_comFiling.m_effect, "ui_Small_parts", "YaJi_TuBiao");
-            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_comMetal.m_effect, "ui_Small_parts", "YaJi_TuBiao");
-            _effectUI3 = EffectUIPool.CreateEffectUI(_ui.m_comFabric.m_effect, "ui_Small_parts", "YaJi_TuBiao");
-            _effectUI4 = EffectUIPool.CreateEffectUI(_ui.m_comProperty.m_effect, "ui_Small_parts", "YaJi_TuBiao");
-            _effectUI5 = EffectUIPool.CreateEffectUI(_ui.m_comPorcelain.m_effect, "ui_Small_parts", "YaJi_TuBiao");
-            _effectUI6 = EffectUIPool.CreateEffectUI(_ui.m_bgEffect, "ui_Small_parts", "WorkRoom_bg");
+            EffectUIPool.CreateEffectUI(_ui.m_comFiling.m_effect, "ui_Small_parts", "YaJi_TuBiao",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_comMetal.m_effect, "ui_Small_parts", "YaJi_TuBiao",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI2 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_comFabric.m_effect, "ui_Small_parts", "YaJi_TuBiao",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI3 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_comProperty.m_effect, "ui_Small_parts", "YaJi_TuBiao",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI4 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_comPorcelain.m_effect, "ui_Small_parts", "YaJi_TuBiao",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI5 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_bgEffect, "ui_Small_parts", "WorkRoom_bg",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI6 = effect;
+                    }
+                });
         }
+
         protected override void AddEventListener()
         {
             base.AddEventListener();
             EventAgent.AddEventListener(ConstMessage.RED_CHANGE, UpdateRedDot);
         }
+
         protected override void OnShown()
         {
-            base.OnShown();//1;//
+            base.OnShown(); //1;//
             StudioSProxy.ReqStudioInfos().Coroutine();
             //int isopen = FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(StudioMetalView).FullName, false) ? 1 : 0;
             //_ui.m_comMetal.m_c1.selectedIndex = isopen;
@@ -91,11 +136,11 @@ namespace GFGGame
             //_ui.m_comPorcelain.m_c1.selectedIndex = isopen;
 
             int isopen = 1;
-            foreach(var com in comEctypeDic)
+            foreach (var com in comEctypeDic)
             {
                 isopen = FunctionOpenDataManager.Instance.CheckIsFunOpenById(com.Key, false) ? 1 : 0;
                 com.Value.m_c1.selectedIndex = isopen;
-                if(isopen == 0)
+                if (isopen == 0)
                 {
                     com.Value.m_effect.visible = false;
                     com.Value.m_bg.visible = true;
@@ -119,16 +164,18 @@ namespace GFGGame
             TryCompleteGuide();
             Timers.inst.Remove(CheckGuide);
         }
+
         private void OnClickBtnHome()
         {
             GameController.GoBackToMainView();
         }
+
         protected override void RemoveEventListener()
         {
             base.RemoveEventListener();
             EventAgent.RemoveEventListener(ConstMessage.RED_CHANGE, UpdateRedDot);
-
         }
+
         private void OnClickBtnBack()
         {
             ViewManager.GoBackFrom(typeof(StudioView).FullName);
@@ -142,6 +189,7 @@ namespace GFGGame
             ViewManager.Show<StudioMetalView>();
             this.Hide();
         }
+
         private void OnCliclComFabric()
         {
             LogServerHelper.SendPlayParticipationLog((int)PlayParticipationEnum.ZHI_WU_XIU_FU, 1);
@@ -149,8 +197,8 @@ namespace GFGGame
             if (!FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(StudioFabricView).FullName, true)) return;
             ViewManager.Show<StudioFabricView>();
             this.Hide();
-
         }
+
         private void OnComProperty()
         {
             //LogServerHelper.SendPlayParticipationLog((int)PlayParticipationEnum.SHU_HUA_XIU_FU, 1);
@@ -158,34 +206,36 @@ namespace GFGGame
             if (!FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(StudioPropertyView).FullName, true)) return;
             ViewManager.Show<StudioPropertyView>();
             this.Hide();
-
         }
 
         private void OnComPorceLain()
         {
             // LogServerHelper.SendPlayParticipationLog((int)PlayParticipationEnum.SHU_HUA_XIU_FU, 1);
 
-            if (!FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(StudioPorcelainView).FullName, true)) return;
+            if (!FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(StudioPorcelainView).FullName, true))
+                return;
             ViewManager.Show<StudioPorcelainView>();
             this.Hide();
-
         }
+
         private void OnClickComFilling()
         {
-
             ViewManager.Show<StudioFilingView>(StudioDataManager.Instance.npcFilingChapterId);
         }
+
         private void UpdateRedDot()
         {
-            RedDotController.Instance.SetComRedDot(_ui.m_comFiling.target, RedDotDataManager.Instance.GetStudioFilingRed(), "", 10, 24);
+            RedDotController.Instance.SetComRedDot(_ui.m_comFiling.target,
+                RedDotDataManager.Instance.GetStudioFilingRed(), "", 10, 24);
         }
+
         private void CheckGuide(object param)
         {
             if (GuideDataManager.IsGuideFinish(ConstGuideId.STUDIO_PORCELAIN) <= 0
-            //|| GuideDataManager.IsGuideFinish(ConstGuideId.ENTER_CHAPTER_4) <= 0
-            || GuideDataManager.IsGuideFinish(ConstGuideId.STUDIO_PROPERTY) <= 0
-            || GuideDataManager.IsGuideFinish(ConstGuideId.ENTER_CHAPTER_2) <= 0
-            || GuideDataManager.IsGuideFinish(ConstGuideId.STUDIO_FILING) <= 0)
+                //|| GuideDataManager.IsGuideFinish(ConstGuideId.ENTER_CHAPTER_4) <= 0
+                || GuideDataManager.IsGuideFinish(ConstGuideId.STUDIO_PROPERTY) <= 0
+                || GuideDataManager.IsGuideFinish(ConstGuideId.ENTER_CHAPTER_2) <= 0
+                || GuideDataManager.IsGuideFinish(ConstGuideId.STUDIO_FILING) <= 0)
             {
                 UpdateToCheckGuide(null);
             }
@@ -198,16 +248,18 @@ namespace GFGGame
         protected override void UpdateToCheckGuide(object param)
         {
             if (!ViewManager.CheckIsTopView(this.viewCom)) return;
-            GuideController.TryGuide(_ui.m_comPorcelain.target, ConstGuideId.STUDIO_PORCELAIN, 4, "通关这个副本可以获得词牌升级材料,快去挑战吧。");
+            GuideController.TryGuide(_ui.m_comPorcelain.target, ConstGuideId.STUDIO_PORCELAIN, 4,
+                "通关这个副本可以获得词牌升级材料,快去挑战吧。");
 
             GuideController.TryGuide(_ui.m_comFiling.target, ConstGuideId.STUDIO_FILING, 4, "完成小伙伴的心愿,获得合成服饰的必备材料哦。");
             GuideController.TryGuide(_ui.m_btnHome, ConstGuideId.ENTER_CHAPTER_2, 1, "");
 
-            GuideController.TryGuide(_ui.m_comPorcelain.target, ConstGuideId.STUDIO_PORCELAIN, 4, "通关这个副本可以获得词牌升级材料,快去挑战吧。");
+            GuideController.TryGuide(_ui.m_comPorcelain.target, ConstGuideId.STUDIO_PORCELAIN, 4,
+                "通关这个副本可以获得词牌升级材料,快去挑战吧。");
 
             GuideController.TryGuide(_ui.m_comProperty.target, ConstGuideId.STUDIO_PROPERTY, 3, "");
 
-            GuideController.TryGuide(_ui.m_btnHome, ConstGuideId.STUDIO_PROPERTY,7);
+            GuideController.TryGuide(_ui.m_btnHome, ConstGuideId.STUDIO_PROPERTY, 7);
             GuideController.TryCompleteGuide(ConstGuideId.STUDIO_PROPERTY, 7);
 
             //GuideController.TryGuide(_ui.m_btnHome, ConstGuideId.ENTER_CHAPTER_4, 1, "");

+ 59 - 10
GameClient/Assets/Game/HotUpdate/Views/Travel/TravelView.cs

@@ -44,7 +44,7 @@ namespace GFGGame
             packageName = UI_TravelUI.PACKAGE_NAME;
             _ui = UI_TravelUI.Create();
             this.viewCom = _ui.target;
-            isfullScreen = true; 
+            isfullScreen = true;
             isReturnView = true;
 
             _valueBarController = new ValueBarController(_ui.m_comValueBar);
@@ -59,14 +59,60 @@ namespace GFGGame
 
             _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("cj_bg_ychm");
 
-            _effectUIDic.Add("XQFS_Kuang_All", EffectUIPool.CreateEffectUI(_ui.m_bg_eff, "ui_HaiZhiShi", "XQFS_Kuang_All"));
-            _effectUIDic.Add("XQFS_DouBao01", EffectUIPool.CreateEffectUI(_ui.m_btnGo.m_btnGo_db_eff, "ui_HaiZhiShi", "XQFS_DouBao01"));
-            _effectUIDic.Add("XQFS_DouBao_Loading", EffectUIPool.CreateEffectUI(_ui.m_db_loadingEff_holder, "ui_HaiZhiShi", "XQFS_DouBao_Loading"));
+            EffectUIPool.CreateEffectUI(_ui.m_bg_eff, "ui_HaiZhiShi", "XQFS_Kuang_All",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUIDic.Add("XQFS_Kuang_All", effect);
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_btnGo.m_btnGo_db_eff, "ui_HaiZhiShi", "XQFS_DouBao01",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUIDic.Add("XQFS_DouBao01", effect);
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_db_loadingEff_holder, "ui_HaiZhiShi", "XQFS_DouBao_Loading",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUIDic.Add("XQFS_DouBao_Loading", effect);
+                    }
+                });
 
             // 省略号特效
-            _effectUIDic.Add("XQFS_Text_Loading", EffectUIPool.CreateEffectUI(_ui.m_txt_eff, "ui_HaiZhiShi", "XQFS_Text_Loading"));
-            _effectUIDic.Add("XQFS_Button_YouLi", EffectUIPool.CreateEffectUI(_ui.m_btnGo.m_btnGo_eff, "ui_HaiZhiShi", "XQFS_Button_YouLi"));
-            _effectUIDic.Add("XQFS_XinFeng_ComBack", EffectUIPool.CreateEffectUI(_ui.m_btnGet.m_btnGet_eff, "ui_HaiZhiShi", "XQFS_XinFeng_ComBack"));
+            EffectUIPool.CreateEffectUI(_ui.m_txt_eff, "ui_HaiZhiShi", "XQFS_Text_Loading",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUIDic.Add("XQFS_Text_Loading", effect);
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_btnGo.m_btnGo_eff, "ui_HaiZhiShi", "XQFS_Button_YouLi",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUIDic.Add("XQFS_Button_YouLi", effect);
+                    }
+                });
+
+            EffectUIPool.CreateEffectUI(_ui.m_btnGet.m_btnGet_eff, "ui_HaiZhiShi", "XQFS_XinFeng_ComBack",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUIDic.Add("XQFS_XinFeng_ComBack", effect);
+                    }
+                });
 
             //_ui.m_btnSpeedUp.visible = false;
         }
@@ -105,8 +151,10 @@ namespace GFGGame
             _ui.m_c1.selectedIndex = TravelDataManager.Instance.TravelData?.Status ?? 0;
             if (_ui.m_c1.selectedIndex == (int)TravelGuideType.NoTravel)
             {
-                ItemCfg cfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(CommonDataManager.Tables.TblGlobalCfg.TravelCost[0]);
-                
+                ItemCfg cfg =
+                    CommonDataManager.Tables.TblItemCfg.GetOrDefault(
+                        CommonDataManager.Tables.TblGlobalCfg.TravelCost[0]);
+
                 _ui.m_btnGo.m_loaIcon.url = ResPathUtil.GetCommonGameResPath(cfg.Res);
                 _ui.m_btnGo.m_txtCount.text = string.Format("{0}", CommonDataManager.Tables.TblGlobalCfg.TravelCost[1]);
             }
@@ -209,7 +257,8 @@ namespace GFGGame
 
         private void UpdateRedDots()
         {
-            RedDotController.Instance.SetComRedDot(_ui.m_btnFieldGuide, RedDotDataManager.Instance.GetTravelGuideRed(), "", -15, 8);
+            RedDotController.Instance.SetComRedDot(_ui.m_btnFieldGuide, RedDotDataManager.Instance.GetTravelGuideRed(),
+                "", -15, 8);
         }
 
         private void OnBtnSpeedUpClick()

+ 53 - 10
GameClient/Assets/Game/HotUpdate/Views/TurnTable/TurnTableRewardTIpsView.cs

@@ -23,7 +23,7 @@ namespace GFGGame
         private EffectUI _effectUI2;
         private EffectUI _effectUI3;
         private EffectUI _effectUI4;
-        private int counTime = 0;  //定时器计数
+        private int counTime = 0; //定时器计数
 
         public override void Dispose()
         {
@@ -36,8 +36,8 @@ namespace GFGGame
                 _ui.Dispose();
                 _ui = null;
             }
-            base.Dispose();
 
+            base.Dispose();
         }
 
         protected override void OnInit()
@@ -54,9 +54,24 @@ namespace GFGGame
             _ui.m_comList.m_listReward.itemRenderer = RenderListRewardItem;
             _ui.m_mask.onClick.Add(this.Hide);
 
-            _effectUI3 = EffectUIPool.CreateEffectUI(_ui.m_bgEffect, "ui_league", "TEA");
-            _effectUI4 = EffectUIPool.CreateEffectUI(_ui.m_bgEffect1, "ui_LuckyBox", "CK_Yellow_01");
+            EffectUIPool.CreateEffectUI(_ui.m_bgEffect, "ui_league", "TEA",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI3 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_bgEffect1, "ui_LuckyBox", "CK_Yellow_01",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI4 = effect;
+                    }
+                });
         }
+
         protected override void OnShown()
         {
             base.OnShown();
@@ -71,20 +86,23 @@ namespace GFGGame
                 _listItemDatas = this.viewData as List<ItemData>;
             }
 
-            List<ItemData> suitPart = new List<ItemData>(); ;
+            List<ItemData> suitPart = new List<ItemData>();
+            ;
             for (int i = _listItemDatas.Count - 1; i >= 0; i--)
             {
                 SuitCfg suitCfg = CommonDataManager.Tables.TblSuitCfg.GetOrDefault(_listItemDatas[i].id);
-                
+
                 if (suitCfg != null)
                 {
                     for (int j = 0; j < suitCfg.Parts.Count; j++)
                     {
                         suitPart.Add(ItemUtil.createItemData(suitCfg.Parts[j], _listItemDatas[i].num));
                     }
+
                     _listItemDatas.RemoveAt(i);
                 }
             }
+
             _listItemDatas.AddRange(suitPart);
             //_ui.m_listReward.SetVirtual();  //有虚拟列表的时候,没有办法居中显示列表
 
@@ -107,8 +125,22 @@ namespace GFGGame
             counTime += 1;
             if (counTime == 1)
             {
-                _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holderTitle, "ui_hd", "GXHD_Text");
-                _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_holderBgCom, "ui_hd", "TC_Quad_ALL");
+                EffectUIPool.CreateEffectUI(_ui.m_holderTitle, "ui_hd", "GXHD_Text",
+                    onComplete: (effect) =>
+                    {
+                        if (effect != null)
+                        {
+                            _effectUI1 = effect;
+                        }
+                    });
+                EffectUIPool.CreateEffectUI(_ui.m_holderBgCom, "ui_hd", "TC_Quad_ALL",
+                    onComplete: (effect) =>
+                    {
+                        if (effect != null)
+                        {
+                            _effectUI2 = effect;
+                        }
+                    });
             }
             else if (counTime == 2)
             {
@@ -144,12 +176,14 @@ namespace GFGGame
                     _effects[i] = null;
                 }
             }
+
             _effects.Clear();
 
             if (onSuccess != null)
             {
                 onSuccess();
             }
+
             base.OnHide();
             //_effects.Clear();
             //EventAgent.DispatchEvent(ConstMessage.REWARDVIEW_CLOTHER);
@@ -160,6 +194,7 @@ namespace GFGGame
                 ActivityDataManager.Instance.StartDropId = ActivityDataManager.Instance.TipsDropId;
             }
         }
+
         private void RenderListRewardItem(int index, GObject obj)
         {
             // obj.data = _listItemDatas[index];
@@ -213,14 +248,21 @@ namespace GFGGame
             int childIndex = _ui.m_comList.m_listReward.ItemIndexToChildIndex(index);
             if (_effects.Count <= childIndex)
             {
-                EffectUI _effectUI = EffectUIPool.CreateEffectUI(item.m_holderReware, "ui_hd", "GXHD_WuPin", 120);
-                _effects.Add(_effectUI);
+                EffectUIPool.CreateEffectUI(item.m_holderReware, "ui_hd", "GXHD_WuPin", 120,
+                    onComplete: (effect) =>
+                    {
+                        if (effect != null)
+                        {
+                            _effects.Add(effect);
+                        }
+                    });
             }
 
             if (item.target.data == null)
             {
                 item.target.onClick.Add(OnClickListReward);
             }
+
             item.target.data = _listItemDatas[index];
             UI.CommonGame.UI_ComItem.ProxyEnd();
         }
@@ -235,6 +277,7 @@ namespace GFGGame
         }
 
         private bool _showTips = true;
+
         /// <summary>
         /// 是否展示物品详情,默认展示
         /// </summary>

+ 66 - 12
GameClient/Assets/Game/HotUpdate/Views/TurnTable/TurnTableView.cs

@@ -118,14 +118,56 @@ namespace GFGGame
 
         private void AddEffect()
         {
-            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_bgEffect, "ui_Activity", "HHYY_BG_TX/HHYY_BG_TX");
+            EffectUIPool.CreateEffectUI(_ui.m_bgEffect, "ui_Activity", "HHYY_BG_TX/HHYY_BG_TX",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI1 = effect;
+                    }
+                });
             //_effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_titleEffect, "ui_Activity", "HHYY_Text_TX/HHYY_Text_TX");
-            _effectUI3 = EffectUIPool.CreateEffectUI(_ui.m_btnEffectOne, "ui_Activity", "HHYY_Button/HHYY_Button");
-            _effectUI4 = EffectUIPool.CreateEffectUI(_ui.m_btnEffectThree, "ui_Activity", "HHYY_Button/HHYY_Button");
-            _effectUI5 = EffectUIPool.CreateEffectUI(_ui.m_bgEffec1, "ui_Activity", "HHYY_BG_TX/HHYY_BG_TX");
-            _effectUI6 = EffectUIPool.CreateEffectUI(_ui.m_bgEffec2, "ui_Activity", "HHYY_BG_TX/HHYY_BG_TX");
-            _effectUISpecial = EffectUIPool.CreateEffectUI(_ui.m_specialEffect, "ui_Activity",
-                "HHYY_Select_Special/HHYY_Select_Special");
+            EffectUIPool.CreateEffectUI(_ui.m_btnEffectOne, "ui_Activity", "HHYY_Button/HHYY_Button",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI3 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_btnEffectThree, "ui_Activity", "HHYY_Button/HHYY_Button",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI4 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_bgEffec1, "ui_Activity", "HHYY_BG_TX/HHYY_BG_TX",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI5 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_bgEffec2, "ui_Activity", "HHYY_BG_TX/HHYY_BG_TX",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUI6 = effect;
+                    }
+                });
+            EffectUIPool.CreateEffectUI(_ui.m_specialEffect, "ui_Activity",
+                "HHYY_Select_Special/HHYY_Select_Special",
+                onComplete: (effect) =>
+                {
+                    if (effect != null)
+                    {
+                        _effectUISpecial = effect;
+                    }
+                });
         }
 
         protected override void OnShown()
@@ -273,8 +315,14 @@ namespace GFGGame
                 ItemCfg itemCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(rewardItemList[i].Item);
                 if (!_effectTableUIDic.ContainsKey("item" + i))
                 {
-                    _effectTableUIDic.Add("item" + i,
-                        EffectUIPool.CreateEffectUI(rewardItem.m_effect, "ui_Activity", "HHYY_Select/HHYY_Select"));
+                    EffectUIPool.CreateEffectUI(rewardItem.m_effect, "ui_Activity", "HHYY_Select/HHYY_Select",
+                        onComplete: (effect) =>
+                        {
+                            if (effect != null)
+                            {
+                                _effectTableUIDic.Add("item" + i, effect);
+                            }
+                        });
                 }
 
                 rewardItem.m_icon.url = ResPathUtil.GetIconPath(itemCfg);
@@ -315,9 +363,15 @@ namespace GFGGame
                 UI_reward rewardItem = UI_reward.Proxy(comProBonus);
                 if (!_effectUIDic.ContainsKey("itemj" + i))
                 {
-                    _effectUIDic.Add("itemj" + i,
-                        EffectUIPool.CreateEffectUI(rewardItem.m_effect, "ui_Activity",
-                            "HHYY_Line_Full/HHYY_Line_Full"));
+                    EffectUIPool.CreateEffectUI(rewardItem.m_effect, "ui_Activity",
+                        "HHYY_Line_Full/HHYY_Line_Full",
+                        onComplete: (effect) =>
+                        {
+                            if (effect != null)
+                            {
+                                _effectUIDic.Add("itemj" + i, effect);
+                            }
+                        });
                 }
 
                 rewardItem.m_effect.SetScale(1, 1);

+ 15 - 4
GameClient/Assets/Game/HotUpdate/Views/ViewGlobal.cs

@@ -19,7 +19,14 @@ namespace GFGGame
                 ViewManager.AddChildToFloatLayer(comHolder.target);
                 comHolder.target.SetPosition(-100, -100, 0);
                 GRoot.inst.onTouchBegin.Add(SetClickPos);
-                _effectUI1 = EffectUIPool.CreateEffectUI(comHolder.m_holder, "ui_dj", "DJ");
+                EffectUIPool.CreateEffectUI(comHolder.m_holder, "ui_dj", "DJ",
+                    onComplete: (effect) =>
+                    {
+                        if (effect != null)
+                        {
+                            _effectUI1 = effect;
+                        }
+                    });
             }
         }
 
@@ -39,9 +46,11 @@ namespace GFGGame
         static float GetTopOffset()
         {
             // 标准分辨率下 设计图顶部留了80像素的偏移
-            int designOffset = ((Screen.safeArea.height + Screen.safeArea.y) 
-                == Screen.height ? 0 : (int)Mathf.Round(80 * UIContentScaler.scaleFactor));
-            
+            int designOffset = ((Screen.safeArea.height + Screen.safeArea.y)
+                                == Screen.height
+                ? 0
+                : (int)Mathf.Round(80 * UIContentScaler.scaleFactor));
+
             // 设置最低偏移是设计图顶部的偏移量
             return Mathf.Max(0, Screen.height - Screen.safeArea.height - Screen.safeArea.y - designOffset);
         }
@@ -96,6 +105,7 @@ namespace GFGGame
                 if (name == s)
                     return true;
             }
+
             return false;
         }
 
@@ -106,6 +116,7 @@ namespace GFGGame
                 if (s.Contains(name))
                     return true;
             }
+
             return false;
         }
     }

+ 1 - 0
GameClient/GameClient.sln.DotSettings.user

@@ -18,6 +18,7 @@
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AJsonUtility_002Ecs_002Fl_003AC_0021_003FUsers_003Fss510_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F02365bcde6734ac8ae92f51eed8d7a5a3200_003F58_003F2dcb948b_003FJsonUtility_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AKeyValuePair_00602_002Ecs_002Fl_003AC_0021_003FUsers_003Fss510_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F695d1cc93cca45069c528c15c9fdd7493e2800_003F63_003Fe50b2d41_003FKeyValuePair_00602_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AList_00601_002Ecs_002Fl_003AC_0021_003FUsers_003Fss510_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F3789ee403a53437cbb6b5d9ab6311f51573620_003Fa3_003F60d291b6_003FList_00601_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
+	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AList_00601_002Ecs_002Fl_003AC_0021_003FUsers_003Fss510_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F3789ee403a53437cbb6b5d9ab6311f51573620_003Fa3_003F60d291b6_003FList_00601_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ALogType_002Ecs_002Fl_003AC_0021_003FUsers_003Fss510_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F683a2b31bf9142429c44f02c75dbc6c913ce00_003F75_003Fd87ba9d0_003FLogType_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AMemberInfo_002Ecs_002Fl_003AC_0021_003FUsers_003Fss510_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F9c2967a135e648bdb993c5397a44991b573620_003F69_003F4bdfd6bb_003FMemberInfo_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AMemoryStream_002Ecs_002Fl_003AC_0021_003FUsers_003Fss510_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F3789ee403a53437cbb6b5d9ab6311f51573620_003F35_003Fad9431c0_003FMemoryStream_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>

+ 227 - 97
GameClient/UserSettings/Layouts/default-2022.dwlt

@@ -14,17 +14,41 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   m_PixelRect:
     serializedVersion: 2
-    x: -18
-    y: 182
-    width: 2544
-    height: 1097
+    x: 7
+    y: 601
+    width: 640
+    height: 601
+  m_ShowMode: 0
+  m_Title: Build Settings
+  m_RootView: {fileID: 4}
+  m_MinSize: {x: 640, y: 601}
+  m_MaxSize: {x: 4000, y: 4021}
+  m_Maximized: 0
+--- !u!114 &2
+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: 0
+  m_Script: {fileID: 12004, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_PixelRect:
+    serializedVersion: 2
+    x: 9
+    y: 52
+    width: 2030
+    height: 1171
   m_ShowMode: 4
-  m_Title: Console
-  m_RootView: {fileID: 5}
+  m_Title: Project
+  m_RootView: {fileID: 8}
   m_MinSize: {x: 875, y: 300}
   m_MaxSize: {x: 10000, y: 10000}
   m_Maximized: 0
---- !u!114 &2
+--- !u!114 &3
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -32,24 +56,74 @@ MonoBehaviour:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 0}
   m_Enabled: 1
-  m_EditorHideFlags: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: BuildPlayerWindow
+  m_EditorClassIdentifier: 
+  m_Children: []
+  m_Position:
+    serializedVersion: 2
+    x: 0
+    y: 0
+    width: 640
+    height: 601
+  m_MinSize: {x: 640, y: 601}
+  m_MaxSize: {x: 4000, y: 4021}
+  m_ActualView: {fileID: 13}
+  m_Panes:
+  - {fileID: 13}
+  m_Selected: 0
+  m_LastSelected: 0
+--- !u!114 &4
+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: 0
   m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0}
   m_Name: 
   m_EditorClassIdentifier: 
   m_Children:
-  - {fileID: 8}
   - {fileID: 3}
+  m_Position:
+    serializedVersion: 2
+    x: 0
+    y: 0
+    width: 640
+    height: 601
+  m_MinSize: {x: 640, y: 601}
+  m_MaxSize: {x: 4000, y: 4021}
+  vertical: 0
+  controlID: 115
+--- !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: 12010, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Children:
+  - {fileID: 11}
+  - {fileID: 6}
   m_Position:
     serializedVersion: 2
     x: 0
     y: 30
-    width: 2544
-    height: 1047
+    width: 2030
+    height: 1121
   m_MinSize: {x: 300, y: 50}
   m_MaxSize: {x: 24288, y: 8096}
   vertical: 0
   controlID: 58
---- !u!114 &3
+--- !u!114 &6
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -59,25 +133,25 @@ MonoBehaviour:
   m_Enabled: 1
   m_EditorHideFlags: 1
   m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0}
-  m_Name: ConsoleWindow
+  m_Name: ProjectBrowser
   m_EditorClassIdentifier: 
   m_Children: []
   m_Position:
     serializedVersion: 2
-    x: 1179
+    x: 940
     y: 0
-    width: 1365
-    height: 1047
-  m_MinSize: {x: 100, y: 100}
-  m_MaxSize: {x: 4000, y: 4000}
-  m_ActualView: {fileID: 15}
+    width: 1090
+    height: 1121
+  m_MinSize: {x: 231, y: 271}
+  m_MaxSize: {x: 10001, y: 10021}
+  m_ActualView: {fileID: 14}
   m_Panes:
-  - {fileID: 11}
   - {fileID: 15}
-  - {fileID: 10}
-  m_Selected: 1
-  m_LastSelected: 2
---- !u!114 &4
+  - {fileID: 19}
+  - {fileID: 14}
+  m_Selected: 2
+  m_LastSelected: 1
+--- !u!114 &7
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -94,16 +168,16 @@ MonoBehaviour:
     serializedVersion: 2
     x: 0
     y: 0
-    width: 300
-    height: 1047
+    width: 240
+    height: 1121
   m_MinSize: {x: 201, y: 221}
   m_MaxSize: {x: 4001, y: 4021}
-  m_ActualView: {fileID: 12}
+  m_ActualView: {fileID: 16}
   m_Panes:
-  - {fileID: 12}
+  - {fileID: 16}
   m_Selected: 0
   m_LastSelected: 0
---- !u!114 &5
+--- !u!114 &8
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -116,22 +190,22 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   m_Children:
-  - {fileID: 6}
-  - {fileID: 2}
-  - {fileID: 7}
+  - {fileID: 9}
+  - {fileID: 5}
+  - {fileID: 10}
   m_Position:
     serializedVersion: 2
     x: 0
     y: 0
-    width: 2544
-    height: 1097
+    width: 2030
+    height: 1171
   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 &6
+--- !u!114 &9
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -148,12 +222,12 @@ MonoBehaviour:
     serializedVersion: 2
     x: 0
     y: 0
-    width: 2544
+    width: 2030
     height: 30
   m_MinSize: {x: 0, y: 0}
   m_MaxSize: {x: 0, y: 0}
   m_LastLoadedLayoutName: 
---- !u!114 &7
+--- !u!114 &10
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -169,12 +243,12 @@ MonoBehaviour:
   m_Position:
     serializedVersion: 2
     x: 0
-    y: 1077
-    width: 2544
+    y: 1151
+    width: 2030
     height: 20
   m_MinSize: {x: 0, y: 0}
   m_MaxSize: {x: 0, y: 0}
---- !u!114 &8
+--- !u!114 &11
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -187,19 +261,19 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   m_Children:
-  - {fileID: 4}
-  - {fileID: 9}
+  - {fileID: 7}
+  - {fileID: 12}
   m_Position:
     serializedVersion: 2
     x: 0
     y: 0
-    width: 1179
-    height: 1047
+    width: 940
+    height: 1121
   m_MinSize: {x: 200, y: 50}
   m_MaxSize: {x: 16192, y: 8096}
   vertical: 0
-  controlID: 17
---- !u!114 &9
+  controlID: 36
+--- !u!114 &12
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -214,19 +288,75 @@ MonoBehaviour:
   m_Children: []
   m_Position:
     serializedVersion: 2
-    x: 300
+    x: 240
     y: 0
-    width: 879
-    height: 1047
+    width: 700
+    height: 1121
   m_MinSize: {x: 202, y: 221}
   m_MaxSize: {x: 4002, y: 4021}
-  m_ActualView: {fileID: 14}
+  m_ActualView: {fileID: 18}
   m_Panes:
-  - {fileID: 13}
-  - {fileID: 14}
+  - {fileID: 17}
+  - {fileID: 18}
   m_Selected: 1
   m_LastSelected: 0
---- !u!114 &10
+--- !u!114 &13
+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: 0
+  m_Script: {fileID: 12043, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_MinSize: {x: 640, y: 580}
+  m_MaxSize: {x: 4000, y: 4000}
+  m_TitleContent:
+    m_Text: Build Settings
+    m_Image: {fileID: 0}
+    m_Tooltip: 
+  m_Pos:
+    serializedVersion: 2
+    x: 7
+    y: 601
+    width: 640
+    height: 580
+  m_SerializedDataModeController:
+    m_DataMode: 0
+    m_PreferredDataMode: 0
+    m_SupportedDataModes: 
+    isAutomatic: 1
+  m_ViewDataDictionary: {fileID: 0}
+  m_OverlayCanvas:
+    m_LastAppliedPresetName: Default
+    m_SaveData: []
+    m_OverlaysVisible: 1
+  m_TreeViewState:
+    scrollPos: {x: 0, y: 0}
+    m_SelectedIDs: 
+    m_LastClickedID: 0
+    m_ExpandedIDs: 
+    m_RenameOverlay:
+      m_UserAcceptedRename: 0
+      m_Name: 
+      m_OriginalName: 
+      m_EditFieldRect:
+        serializedVersion: 2
+        x: 0
+        y: 0
+        width: 0
+        height: 0
+      m_UserData: 0
+      m_IsWaitingForDelay: 0
+      m_IsRenaming: 0
+      m_OriginalEventType: 11
+      m_IsRenamingFilename: 0
+      m_ClientGUIView: {fileID: 0}
+    m_SearchString: 
+--- !u!114 &14
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -246,10 +376,10 @@ MonoBehaviour:
     m_Tooltip: 
   m_Pos:
     serializedVersion: 2
-    x: 1161
-    y: 212
-    width: 1364
-    height: 1026
+    x: 949
+    y: 82
+    width: 1089
+    height: 1100
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0
@@ -273,7 +403,7 @@ MonoBehaviour:
     m_SkipHidden: 0
     m_SearchArea: 1
     m_Folders:
-    - Assets/DOTween
+    - Assets/UniFramework
     m_Globs: []
     m_OriginalText: 
     m_ImportLogFlags: 0
@@ -281,16 +411,16 @@ MonoBehaviour:
   m_ViewMode: 1
   m_StartGridSize: 16
   m_LastFolders:
-  - Assets/DOTween
+  - Assets/UniFramework
   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: ac9e0000
-    m_LastClickedID: 40620
-    m_ExpandedIDs: 00000000289e000000ca9a3b
+    m_SelectedIDs: a49e0000
+    m_LastClickedID: 40612
+    m_ExpandedIDs: 000000000a9e000000ca9a3b
     m_RenameOverlay:
       m_UserAcceptedRename: 0
       m_Name: 
@@ -318,7 +448,7 @@ MonoBehaviour:
     scrollPos: {x: 0, y: 0}
     m_SelectedIDs: 
     m_LastClickedID: 0
-    m_ExpandedIDs: 00000000289e0000
+    m_ExpandedIDs: 000000000a9e0000
     m_RenameOverlay:
       m_UserAcceptedRename: 0
       m_Name: 
@@ -374,7 +504,7 @@ MonoBehaviour:
     m_GridSize: 16
   m_SkipHiddenPackages: 0
   m_DirectoriesAreaWidth: 207
---- !u!114 &11
+--- !u!114 &15
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -394,10 +524,10 @@ MonoBehaviour:
     m_Tooltip: 
   m_Pos:
     serializedVersion: 2
-    x: 1594
-    y: 73
-    width: 1845
-    height: 1278
+    x: 1232
+    y: 291
+    width: 1364
+    height: 1026
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0
@@ -421,7 +551,7 @@ MonoBehaviour:
   m_LockTracker:
     m_IsLocked: 0
   m_PreviewWindow: {fileID: 0}
---- !u!114 &12
+--- !u!114 &16
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -441,10 +571,10 @@ MonoBehaviour:
     m_Tooltip: 
   m_Pos:
     serializedVersion: 2
-    x: -18
-    y: 212
-    width: 299
-    height: 1026
+    x: 9
+    y: 82
+    width: 239
+    height: 1100
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0
@@ -484,7 +614,7 @@ MonoBehaviour:
       m_IsLocked: 0
     m_CurrentSortingName: TransformSorting
   m_WindowGUID: 4c969a2b90040154d917609493e03593
---- !u!114 &13
+--- !u!114 &17
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -919,7 +1049,7 @@ MonoBehaviour:
   m_SceneVisActive: 1
   m_LastLockedObject: {fileID: 0}
   m_ViewIsLockedToObject: 0
---- !u!114 &14
+--- !u!114 &18
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -939,10 +1069,10 @@ MonoBehaviour:
     m_Tooltip: 
   m_Pos:
     serializedVersion: 2
-    x: 282
-    y: 212
-    width: 877
-    height: 1026
+    x: 249
+    y: 82
+    width: 698
+    height: 1100
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0
@@ -959,7 +1089,7 @@ MonoBehaviour:
   m_ShowGizmos: 0
   m_TargetDisplay: 0
   m_ClearColor: {r: 0, g: 0, b: 0, a: 0}
-  m_TargetSize: {x: 565, y: 1005}
+  m_TargetSize: {x: 607, y: 1079}
   m_TextureFilterMode: 0
   m_TextureHideFlags: 61
   m_RenderIMGUI: 1
@@ -974,10 +1104,10 @@ MonoBehaviour:
     m_VRangeLocked: 0
     hZoomLockedByDefault: 0
     vZoomLockedByDefault: 0
-    m_HBaseRangeMin: -282.5
-    m_HBaseRangeMax: 282.5
-    m_VBaseRangeMin: -502.5
-    m_VBaseRangeMax: 502.5
+    m_HBaseRangeMin: -303.5
+    m_HBaseRangeMax: 303.5
+    m_VBaseRangeMin: -539.5
+    m_VBaseRangeMax: 539.5
     m_HAllowExceedBaseRangeMin: 1
     m_HAllowExceedBaseRangeMax: 1
     m_VAllowExceedBaseRangeMin: 1
@@ -995,29 +1125,29 @@ MonoBehaviour:
       serializedVersion: 2
       x: 0
       y: 21
-      width: 877
-      height: 1005
+      width: 698
+      height: 1079
     m_Scale: {x: 1, y: 1}
-    m_Translation: {x: 438.5, y: 502.5}
+    m_Translation: {x: 349, y: 539.5}
     m_MarginLeft: 0
     m_MarginRight: 0
     m_MarginTop: 0
     m_MarginBottom: 0
     m_LastShownAreaInsideMargins:
       serializedVersion: 2
-      x: -438.5
-      y: -502.5
-      width: 877
-      height: 1005
+      x: -349
+      y: -539.5
+      width: 698
+      height: 1079
     m_MinimalGUI: 1
   m_defaultScale: 1
-  m_LastWindowPixelSize: {x: 877, y: 1026}
+  m_LastWindowPixelSize: {x: 698, y: 1100}
   m_ClearInEditMode: 1
   m_NoCameraWarning: 1
   m_LowResolutionForAspectRatios: 01000000000000000000
   m_XRRenderMode: 0
   m_RenderTexture: {fileID: 0}
---- !u!114 &15
+--- !u!114 &19
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -1037,10 +1167,10 @@ MonoBehaviour:
     m_Tooltip: 
   m_Pos:
     serializedVersion: 2
-    x: -30821
-    y: -31970
-    width: 1364
-    height: 1026
+    x: 890
+    y: 81
+    width: 1021
+    height: 902
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0