Browse Source

红点分帧

guodong 1 year ago
parent
commit
a7f65d0a5a

+ 6 - 6
GameClient/Assets/Game/HotUpdate/DressUp/DressUpObj.cs

@@ -580,7 +580,7 @@ namespace GFGGame
             bool hasFaXing = false;
             //检查默认资源
             //是否有连衣裙
-            bool hasLianYiQun = false;
+            int itemIdLianYiQun = 0;
             //是否有内搭
             bool hasNeiDa = false;
             //是否有上衣
@@ -603,7 +603,7 @@ namespace GFGGame
                 }
                 else if (subType == ConstDressUpItemType.LIAN_YI_QUN)
                 {
-                    hasLianYiQun = true;
+                    itemIdLianYiQun = itemID;
                 }
                 else if (subType == ConstDressUpItemType.NEI_DA)
                 {
@@ -637,7 +637,7 @@ namespace GFGGame
             }
             if (!IsAction)
             {
-                if (!hasLianYiQun)
+                if (itemIdLianYiQun <= 0)
                 {
                     if (!hasShangYi && (!hasNeiDa || hasNeiDaDefault) && (!hasXiaZhuang || hasXiaZhuangDefault))
                     {
@@ -662,11 +662,11 @@ namespace GFGGame
             CheckCurDressIsSuit();
             var handler = DressUpUtil.UpdateHeadAsync(!hasZhuangRong, _sceneObj, _needSetMask, _roleObj);
             TryAddHandler(handler);
-            UpdateBodyView();
+            UpdateBodyView(itemIdLianYiQun);
         }
 
         //更新整个身体
-        private void UpdateBodyView()
+        private void UpdateBodyView(int itemIdLianYiQun)
         {
             string actionRes = null;
             if (IsAction)
@@ -675,7 +675,7 @@ namespace GFGGame
                 var hasAniRes = ResPathUtil.CheckDressUpAnimationResExist(suitCfg.aniRes);
                 actionRes = hasAniRes ? suitCfg.aniRes : null;
             }
-            var handler = DressUpUtil.UpdateBodyAsync(actionRes, _sceneObj, _needSetMask, _roleObj);
+            var handler = DressUpUtil.UpdateBodyAsync(actionRes, _sceneObj, _needSetMask, _roleObj, itemIdLianYiQun);
             TryAddHandler(handler);
         }
 

+ 1 - 1
GameClient/Assets/Game/HotUpdate/DressUp/DressUpUtil.cs

@@ -169,7 +169,7 @@ namespace GFGGame
             return handler;
         }
 
-        public static DressUpLayerOperation UpdateBodyAsync(string actionRes, GameObject sceneObj, bool needSetMask = false, GameObject parentObj = null)
+        public static DressUpLayerOperation UpdateBodyAsync(string actionRes, GameObject sceneObj, bool needSetMask = false, GameObject parentObj = null, int itemIdLianYiQun = 0)
         {
             //角色
             var roleTf = sceneObj.transform.Find(ROLE_OBJ_NAME);

+ 1 - 1
GameClient/Assets/Game/HotUpdate/Views/Common/Controller/ValueBarController.cs

@@ -173,7 +173,7 @@ namespace GFGGame
             _valueBar.m_list.numItems = itemIds.Count;
         }
 
-        public void UpRead()
+        public void UpdateRedPoint()
         {
             RedDotController.Instance.SetComRedDot(_valueBar.m_btnPower.target, RedDotDataManager.Instance.GetPowerRed());
             RedDotController.Instance.SetComRedDot(_valueBar.m_btnGold.target, RedDotDataManager.Instance.GetGoldRed());

+ 1 - 1
GameClient/Assets/Game/HotUpdate/Views/InstanceZones/InstanceZonesUIView.cs

@@ -87,7 +87,7 @@ namespace GFGGame
 
         private void UpdateRedDot()
         {
-            _valueBarController.UpRead();
+            _valueBarController.UpdateRedPoint();
             RedDotController.Instance.SetComRedDot(_ui.m_btnStudio.target, RedDotDataManager.Instance.GetStudioFilingRed(), "", -36, 32);
             RedDotController.Instance.SetComRedDot(_ui.m_btnTravel.target, RedDotDataManager.Instance.GetTravelRed(), "", -36, 32);
             RedDotController.Instance.SetComRedDot(_ui.m_btnField.target, RedDotDataManager.Instance.GetFieldRed(), "", -36, 32);

+ 57 - 29
GameClient/Assets/Game/HotUpdate/Views/MainUI/MainUIView.cs

@@ -42,6 +42,9 @@ namespace GFGGame
         //用于标记自动检测打开界面流程已执行完毕
         private bool AutoShowCompleted;
 
+        //用于分帧更新红点
+        private int redPointUpdateFrame = -1;
+
         public override void Dispose()
         {
             if (_valueBarController != null)
@@ -222,7 +225,6 @@ namespace GFGGame
             Timers.inst.Remove(CheckGuide);
             Timers.inst.Remove(UpdateAdListTime);
             Timers.inst.Remove(OnShowLater);
-            Timers.inst.Remove(OnRedDotChangedLater);
         }
 
         private void OnShowLater(object param)
@@ -592,6 +594,7 @@ namespace GFGGame
             UpGiftBox1();
             UpGiftBox2();
             EventAgent.DispatchEvent(ConstMessage.LUCKY_BOX_TIME);
+            UpdateRedDot();
         }
 
         private void UpdateActLuckyBox()
@@ -844,48 +847,73 @@ namespace GFGGame
             //LogHelper.LogEditor("MainUIView UpdateRedDot OnRedDotChanged");
             if (!GameGlobal.AfterDataInited) return;
             if (!AutoShowCompleted) return;
-            Timers.inst.Remove(OnRedDotChangedLater);
-            Timers.inst.Add(0.1f, 1, OnRedDotChangedLater);
+            redPointUpdateFrame = 0;
         }
 
-        private void OnRedDotChangedLater(object o)
-        {
-            UpdateRedDot();
-        }
 
         private void UpdateRedDot()
         {
+            if (redPointUpdateFrame < 0) return;
             LogHelper.LogEditor("MainUIView UpdateRedDot");
-            _valueBarController.UpRead();
-            RedDotController.Instance.SetComRedDot(_btnGongGao, RedDotDataManager.Instance.GetNoticeRed(), "", -9, 12);
-
-            RedDotController.Instance.SetComRedDot(_btnRenWu, RedDotDataManager.Instance.GetTaskRed(), "", -8);
-            RedDotController.Instance.SetComRedDot(_btnYouJian, RedDotDataManager.Instance.GetMailRed(), "", -9, 12);
-            RedDotController.Instance.SetComRedDot(_btnTuJian, RedDotDataManager.Instance.GetFieldGuideRed() || RedDotDataManager.Instance.GetTravelGuideRed(), "", -8);
-            RedDotController.Instance.SetComRedDot(_btnHaoYou, RedDotDataManager.Instance.GetFriendRed(), "", -8);
-            RedDotController.Instance.SetComRedDot(_btnStore, RedDotDataManager.Instance.GetShopRed(), "", -8);
-            
-            RedDotController.Instance.SetComRedDot(_ui.m_headBar.m_comHead, RedDotDataManager.Instance.GetHeadRed() || RedDotDataManager.Instance.GetHeadBorderRed(), "", -26, 42);
-
-            RedDotController.Instance.SetComRedDot(_btnLeague, RedDotDataManager.Instance.GetLeagueRed(), "", -8);
-            RedDotController.Instance.SetComRedDot(_ui.m_btnDailyWelfare.target, RedDotDataManager.Instance.GetDailyWelfareRed(), "", 9, -1);
-            RedDotController.Instance.SetComRedDot(_ui.m_btnActivityLuckyBox.target, RedDotDataManager.Instance.GetMeiRiTeHuiRed()
+            if (redPointUpdateFrame == 0)
+                _valueBarController.UpdateRedPoint();
+            if (redPointUpdateFrame == 1)
+                RedDotController.Instance.SetComRedDot(_btnGongGao, RedDotDataManager.Instance.GetNoticeRed(), "", -9, 12);
+
+            if (redPointUpdateFrame == 2)
+                RedDotController.Instance.SetComRedDot(_btnRenWu, RedDotDataManager.Instance.GetTaskRed(), "", -8);
+            if (redPointUpdateFrame == 3)
+                RedDotController.Instance.SetComRedDot(_btnYouJian, RedDotDataManager.Instance.GetMailRed(), "", -9, 12);
+            if (redPointUpdateFrame == 4)
+                RedDotController.Instance.SetComRedDot(_btnTuJian, RedDotDataManager.Instance.GetFieldGuideRed() || RedDotDataManager.Instance.GetTravelGuideRed(), "", -8);
+
+            if (redPointUpdateFrame == 5)
+                RedDotController.Instance.SetComRedDot(_btnHaoYou, RedDotDataManager.Instance.GetFriendRed(), "", -8);
+
+            if (redPointUpdateFrame == 6)
+                RedDotController.Instance.SetComRedDot(_btnStore, RedDotDataManager.Instance.GetShopRed(), "", -8);
+
+            if (redPointUpdateFrame == 7)
+                RedDotController.Instance.SetComRedDot(_ui.m_headBar.m_comHead, RedDotDataManager.Instance.GetHeadRed() || RedDotDataManager.Instance.GetHeadBorderRed(), "", -26, 42);
+
+            if (redPointUpdateFrame == 8)
+                RedDotController.Instance.SetComRedDot(_btnLeague, RedDotDataManager.Instance.GetLeagueRed(), "", -8);
+
+            if (redPointUpdateFrame == 9) 
+                RedDotController.Instance.SetComRedDot(_ui.m_btnDailyWelfare.target, RedDotDataManager.Instance.GetDailyWelfareRed(), "", 9, -1);
+
+            if (redPointUpdateFrame == 10)
+                RedDotController.Instance.SetComRedDot(_ui.m_btnActivityLuckyBox.target, RedDotDataManager.Instance.GetMeiRiTeHuiRed()
                 || RedDotDataManager.Instance.GetActLuckyBoxRewardRed(ConstLimitTimeActivityType.ActLimitLuckyBox)
                 || RedDotDataManager.Instance.GetActLuckyBoxTaskdRed() || RedDotDataManager.Instance.GetGiftBagRewardRed(), "", -11, 5);
-            RedDotController.Instance.SetComRedDot(_btnBag, RedDotDataManager.Instance.GetMainBagGiftRed(), "", -8);
-            RedDotController.Instance.SetComRedDot(_ui.m_btnActivityDay7.target, RedDotDataManager.Instance.GetActivityDay7Red());
+
+            if (redPointUpdateFrame == 11)
+                RedDotController.Instance.SetComRedDot(_btnBag, RedDotDataManager.Instance.GetMainBagGiftRed(), "", -8);
+
+            if (redPointUpdateFrame == 12)
+                RedDotController.Instance.SetComRedDot(_ui.m_btnActivityDay7.target, RedDotDataManager.Instance.GetActivityDay7Red());
             RedDotController.Instance.SetComRedDot(_ui.m_btnWanShiLi.target, RedDotDataManager.Instance.GetActivityWanShiLiRed(), "", -25, -7);
 
-            RedDotController.Instance.SetComRedDot(_ui.m_btnXiuFang.target, RedDotDataManager.Instance.GetClothingFosterRed() || RedDotDataManager.Instance.GetClothingSyntheticRed(), "", -10, 20);
-            RedDotController.Instance.SetComRedDot(_ui.m_btnCiPai.target, RedDotDataManager.Instance.GetCardRed(), "", -10, 20);
-            RedDotController.Instance.SetComRedDot(_ui.m_btnZhaiXing.target, RedDotDataManager.Instance.GetActLuckyBoxRewardRed(ConstLimitTimeActivityType.ActLimitTsy) || RedDotDataManager.Instance.GetLuckyBoxFreeTimes());
+            if (redPointUpdateFrame == 13)
+                RedDotController.Instance.SetComRedDot(_ui.m_btnXiuFang.target, RedDotDataManager.Instance.GetClothingFosterRed() || RedDotDataManager.Instance.GetClothingSyntheticRed(), "", -10, 20);
+
+            if (redPointUpdateFrame == 14)
+                RedDotController.Instance.SetComRedDot(_ui.m_btnCiPai.target, RedDotDataManager.Instance.GetCardRed(), "", -10, 20);
+
+            if (redPointUpdateFrame == 15)
+                RedDotController.Instance.SetComRedDot(_ui.m_btnZhaiXing.target, RedDotDataManager.Instance.GetActLuckyBoxRewardRed(ConstLimitTimeActivityType.ActLimitTsy) || RedDotDataManager.Instance.GetLuckyBoxFreeTimes());
 
             // 阿福赠礼
             if (_ui.m_btnActivityAfuGift.target.visible)
             {
-                RedDotController.Instance.SetComRedDot(_ui.m_btnActivityAfuGift.target, ActivityAfuGiftDataManager.Instance.HaveCanGetReward(), "", -43, 2);
+                if (redPointUpdateFrame == 16)
+                    RedDotController.Instance.SetComRedDot(_ui.m_btnActivityAfuGift.target, ActivityAfuGiftDataManager.Instance.HaveCanGetReward(), "", -43, 2);
+            }
+            redPointUpdateFrame++;
+            if(redPointUpdateFrame > 16)
+            {
+                redPointUpdateFrame = -1;
             }
-
         }
 
         private void CheckProbabilityUp()
@@ -996,7 +1024,7 @@ namespace GFGGame
         private void ResetDailyData()
         {
             CheckFunOpen();
-            UpdateRedDot();
+            redPointUpdateFrame = 0;
             UpdateHead();
             UpdateBtnFirstRecharge();
             CheckAutoShowViews();