PlayerInfoView = {} function PlayerInfoView:New(gameObject) local b = {} b.gameObject = gameObject b.transform = gameObject.transform setmetatable(b, { __index = PlayerInfoView }) return b end --初始化组件(用于子类重写) function PlayerInfoView:InitComponent() self.spLoader = SpriteLoader.New() self.heroTeamPowerBtn = Util.GetGameObject(self.gameObject, "powerBtn") self.heroTeamPower = Util.GetGameObject(self.gameObject, "powerBtn/value"):GetComponent("Text") --headBox self.level = Util.GetGameObject(self.gameObject, "headBox/lvFrame/lv"):GetComponent("Text") self.playName = Util.GetGameObject(self.gameObject, "headBox/name"):GetComponent("Text") self.expSliderValue = Util.GetGameObject(self.gameObject, "exp"):GetComponent("Slider") self.expSliderValue.transform.localScale = Vector3.New(UIManager.adapterScale, 1, 1) self.headBox = Util.GetGameObject(self.gameObject, "headBox") self.headPos = Util.GetGameObject(self.gameObject, "headBox/headpos") self.headRedpot = Util.GetGameObject(self.gameObject, "headBox/redpot") -- 特权 self.vipPrivilegeBtn = Util.GetGameObject(self.gameObject, "vipPrivilege/vipPrivilegeBtn") self.vipLevelText = Util.GetGameObject(self.vipPrivilegeBtn, "bg/vip"):GetComponent("Image") self.vipRedPoint = Util.GetGameObject(self.gameObject, "vipPrivilege/vipPrivilegeBtn/redPoint") --名望 self.btn_mingwang=Util.GetGameObject(self.gameObject, "btn_mingwang") self.mwLvTxt=Util.GetGameObject(self.gameObject, "btn_mingwang/Text"):GetComponent("Image") self.mwRed=Util.GetGameObject(self.gameObject, "btn_mingwang/red") self.mwEffect=Util.GetGameObject(self.gameObject, "btn_mingwang/saoguang") screenAdapte(self.vipPrivilegeBtn) end --绑定事件(用于子类重写) function PlayerInfoView:BindEvent() --GM工具 Util.AddClick(self.headBox, function() if AppConst.isOpenGM and UIManager.IsOpen(UIName.MainPanel) then UIManager.OpenPanel(UIName.GMPanel) else UIManager.OpenPanel(UIName.SettingPanel) end end) --特权 Util.AddClick(self.vipPrivilegeBtn, function() UIManager.OpenPanel(UIName.VipPanelV2) end) Util.AddClick(self.btn_mingwang, function() UIManager.OpenPanel(UIName.GMMingWangPanel) end) end --添加事件监听(用于子类重写) function PlayerInfoView:AddListener() Game.GlobalEvent:AddEvent(GameEvent.Bag.BagGold, self.OnShow, self) Game.GlobalEvent:AddEvent(GameEvent.Player.OnPlayerLvChange, self.OnShow, self) Game.GlobalEvent:AddEvent(GameEvent.Player.OnChangeName, self.OnShow, self) Game.GlobalEvent:AddEvent(GameEvent.Player.OnHeadFrameChange, self.OnShow, self) Game.GlobalEvent:AddEvent(GameEvent.Player.OnHeadChange, self.OnShow, self) Game.GlobalEvent:AddEvent(GameEvent.Formation.OnFormationPowerChange, self.RefreshPower, self) -- 绑定红点 -- BindRedPointObject(RedPointType.Setting, self.headRedpot) BindRedPointObject(RedPointType.VipPrivilege, self.vipRedPoint) end --移除事件监听(用于子类重写) function PlayerInfoView:RemoveListener() Game.GlobalEvent:RemoveEvent(GameEvent.Bag.BagGold, self.OnShow, self) Game.GlobalEvent:RemoveEvent(GameEvent.Player.OnPlayerLvChange, self.OnShow, self) Game.GlobalEvent:RemoveEvent(GameEvent.Player.OnChangeName, self.OnShow, self) Game.GlobalEvent:RemoveEvent(GameEvent.Player.OnHeadFrameChange, self.OnShow, self) Game.GlobalEvent:RemoveEvent(GameEvent.Player.OnHeadChange, self.OnShow, self) Game.GlobalEvent:RemoveEvent(GameEvent.Formation.OnFormationPowerChange, self.RefreshPower, self) -- 解除绑定 -- ClearRedPointObject(RedPointType.Setting, self.headRedpot) ClearRedPointObject(RedPointType.VipPrivilege, self.vipRedPoint) end --界面打开时调用(用于子类重写) function PlayerInfoView:OnOpen(...) self.orginLayer = 0 self:OnShow() self:RefreshPower() -- 默认关闭特权显示 self:SetPrivilegeShow(false) end --界面打开或者重新打开后,界面刷新时调用(用于子类重写) function PlayerInfoView:OnShow() self.level.text = PlayerManager.level self.expSliderValue.value = PlayerManager.exp / PlayerManager.userLevelData[PlayerManager.level].Exp self.playName.text = PracticeManager.SetNameColor(PlayerManager.nickName,PracticeManager.PracticeLevel) self.vipLevelText.sprite = self.spLoader:LoadSprite(VipManager.SetVipLevelImg()) self.mwLvTxt.sprite=self.spLoader:LoadSprite("r_zjm_tequanpaizi_0" ..DynamicActivityManager.curLevel.."_zh") self.mwRed:SetActive(false) if not self.playerHead then self.playerHead = SubUIManager.Open(SubUIConfig.PlayerHeadView, self.headPos.transform) end self.playerHead:SetHead(PlayerManager.head) -- self.playerHead:SetFrame(HeadManager.GetCurFrameId()) self.playerHead:SetScale(Vector3.one * 0.9) self.playerHead:SetPosition(Vector3.New(-5, 8, 0)) -- self.playerHead:SetLayer(self.sortingOrder) self.playerHead:SetEffectScale(0.85) end function PlayerInfoView:RefreshPower(force) -- LogYellow("战斗力刷新:"..tostring(force)) self.heroTeamPower.text = force -- self.heroTeamPower.text = FormationManager.GetFormationPower(FormationManager.curFormationIndex) end --界面关闭时调用(用于子类重写) function PlayerInfoView:OnClose() self.spLoader:Destroy() -- 头像回收 if self.playerHead then self.playerHead:Recycle() self.playerHead = nil end -- 还原特效层级 Util.AddParticleSortLayer(self.vipPrivilegeBtn, - self.orginLayer) end -- 设置层级 function PlayerInfoView:SetLayer(sortingOrder) Util.AddParticleSortLayer(self.vipPrivilegeBtn, sortingOrder - self.orginLayer) if self.playerHead then self.playerHead:SetLayer(sortingOrder) end SetParticleSortLayer(self.mwEffect,sortingOrder) self.orginLayer = sortingOrder end function PlayerInfoView:SetPrivilegeShow(isShow) self.vipPrivilegeBtn:SetActive(false) --self.btn_mingwang:SetActive(not not isShow) self.btn_mingwang:SetActive(false) end return PlayerInfoView