diff --git a/Assets/ManagedResources/~Lua/Modules/Main/MainPanel.lua b/Assets/ManagedResources/~Lua/Modules/Main/MainPanel.lua index 02531e100f..a028b3f817 100644 --- a/Assets/ManagedResources/~Lua/Modules/Main/MainPanel.lua +++ b/Assets/ManagedResources/~Lua/Modules/Main/MainPanel.lua @@ -55,7 +55,7 @@ function this:InsertNewText(btn) end local isRefeshIcon = true - +local curNPCList = {} --初始化组件(用于子类重写) function this:InitComponent() orginLayer = 0 @@ -301,14 +301,18 @@ function this:BindEvent() -- view.NameText.text = NameManager.GetLocalRandomName() -- view:SetAutoMove() -- end + curNPCList = {} PlayerManager.GetMainPlayerNPCData(function(NPCList) for i = 1, #NPCList do local view = MainPlayerView.New(false, this.btnClickMove, rect, Vector2.New(math.random(rect.xMin, rect.xMax), math.random(rect.yMin, rect.yMax)),NPCList[i].sex) view.NameText.text = NPCList[i].userName or NPCList[i].name view:SetAutoMove() + view.leader.transform.name = "MainPlayerView"..i + table.insert(curNPCList,view) end end) self.playerView = MainPlayerView.New(true, this.btnClickMove, rect, Vector2.New(-1210, 0)) + table.insert(curNPCList,self.playerView) --角色点击行走 self.trigger.onPointerClick = self.trigger.onPointerClick + function(p, d) local x, v2 = RectTransformUtility.ScreenPointToLocalPointInRectangle(btnClickMoveTran, Input.mousePosition, UIManager.camera, nil) @@ -861,10 +865,15 @@ function this:OnShow() --检测鸿蒙碑红点 HarmonyManager.CheckRedPoinStatusUpTowerMainCityRed() + + FixedUpdateBeat:Add(this.OnUpdate, self)--长按方法注册 end - - +-- +function this.OnUpdate() + --主城人物层级处理 + this.OnMainPlayerNPCRefresh() +end -- 刷新玩家基础信息显示 function this.RefreshPlayerInfoShow() this.vipLevelText.sprite = VipManager.SetVipLevelImg() @@ -1099,6 +1108,7 @@ function this:OnClose() PlayerManager.StopBattleUpLvTipTime() this.ChatTipView:StopCheck() PatFaceManager.isLogin = false + FixedUpdateBeat:Remove(this.OnUpdate, self) end --界面销毁时调用(用于子类重写) @@ -1346,4 +1356,24 @@ function this.RefreshBattleUpLvTip() this.battleUpLvTip:GetComponent("Canvas").sortingOrder = orginLayer + 10 this.battleUpLvTip:SetActive(true) end +local roleRefreshNum = 0 +function this.OnMainPlayerNPCRefresh() + if roleRefreshNum < 60 then + roleRefreshNum = roleRefreshNum + 1 + elseif roleRefreshNum >= 60 and PlayerManager.MainPanelRoleMonveState then + roleRefreshNum = 0 + -- LogRed("PlayerManager.MainPanelRoleMonveState "..tostring(PlayerManager.MainPanelRoleMonveState)) + if curNPCList and #curNPCList > 0 then + table.sort(curNPCList,function(a,b) + return a.leader.transform.localPosition.y > b.leader.transform.localPosition.y + end) + for i = 1, #curNPCList do + if curNPCList[i] then + curNPCList[i].leader.transform:SetSiblingIndex(i) + end + end + PlayerManager.MainPanelRoleMonveState = false + end + end +end return MainPanel \ No newline at end of file diff --git a/Assets/ManagedResources/~Lua/Modules/Main/View/MainPlayerView.lua b/Assets/ManagedResources/~Lua/Modules/Main/View/MainPlayerView.lua index 2ebee3cc05..6ce1973c9f 100644 --- a/Assets/ManagedResources/~Lua/Modules/Main/View/MainPlayerView.lua +++ b/Assets/ManagedResources/~Lua/Modules/Main/View/MainPlayerView.lua @@ -121,12 +121,12 @@ function MainPlayerView:SetRolePos(pos, delay, func) local dis = Vector2.Distance(pos, self.lastPos) local leaderTran = self.leader:GetComponent("RectTransform") local ov2 = leaderTran.anchoredPosition - self.tweener = DoTween.To(DG.Tweening.Core.DOGetter_float( function () return 0 end), DG.Tweening.Core.DOSetter_float(function (progress) local v2 = Vector2.Lerp(ov2, pos, progress) leaderTran.anchoredPosition = v2 self:SetRolePosZ(v2) + PlayerManager.MainPanelRoleMonveState = true end), 1, dis / 200):SetEase(Ease.Linear):SetDelay(delay):SetEase(Ease.Linear):OnComplete(function () self.lastPos = pos self:PlayerIdle() diff --git a/Assets/ManagedResources/~Lua/Modules/Player/PlayerManager.lua b/Assets/ManagedResources/~Lua/Modules/Player/PlayerManager.lua index 3fbb7ac598..f093235197 100644 --- a/Assets/ManagedResources/~Lua/Modules/Player/PlayerManager.lua +++ b/Assets/ManagedResources/~Lua/Modules/Player/PlayerManager.lua @@ -32,7 +32,7 @@ this.now_index = 0 --头像框数据 this.headFrameList = {} - +this.MainPanelRoleMonveState = false local update = function() local dt = Time.unscaledDeltaTime this.serverTime = this.serverTime + dt