RoleItemView = {} local this=RoleItemView function RoleItemView:New(gameObject) local b = {} b.gameObject = gameObject b.transform = gameObject.transform setmetatable(b, { __index = RoleItemView }) return b end --初始化组件(用于子类重写) function RoleItemView:InitComponent() this.spLoader = SpriteLoader.New() self.EffectOrginLayer = -10 self.frame = Util.GetGameObject(self.gameObject, "frame") self.icon = Util.GetGameObject(self.gameObject, "iconMask/icon"):GetComponent("Image") self.heroStageImage = Util.GetGameObject(self.gameObject, "heroStageImage"):GetComponent("Image") self.lv = Util.GetGameObject(self.gameObject, "lv/Text"):GetComponent("Text") -- self.pos = Util.GetGameObject(self.gameObject, "pos/icon"):GetComponent("Image") self.pro = Util.GetGameObject(self.gameObject, "pro/Image"):GetComponent("Image") self.starGrid = Util.GetGameObject(self.gameObject, "star") self.starPre = Util.GetGameObject(self.gameObject, "starPre") self.heroNameGo = Util.GetGameObject(self.gameObject, "name") self.heroNameText = Util.GetGameObject(self.gameObject, "name/Text"):GetComponent("Text") self.heroHpGo = Util.GetGameObject(self.gameObject, "hp") self.heroHp = Util.GetGameObject(self.gameObject, "hp/fill"):GetComponent("Image") self.roleEffect = Util.GetGameObject(self.gameObject, "effect") end --绑定事件(用于子类重写) function RoleItemView:BindEvent() end --添加事件监听(用于子类重写) function RoleItemView:AddListener() end --移除事件监听(用于子类重写) function RoleItemView:RemoveListener() end --界面打开时调用(用于子类重写) function RoleItemView:OnOpen(_heroDId,_isShowHeroName,_isShowHeroHp,_hpVal,_effectLayer) if _heroDId ==nil then return end self.heroData=HeroManager.GetSingleHeroData(_heroDId) _isShowHeroName = _isShowHeroName or false _effectLayer = _effectLayer or 0 self.isShowHeroHp = _isShowHeroHp or false self.hpVal=_hpVal self.heroNameGo:SetActive(_isShowHeroName) self.heroHpGo:SetActive(self.isShowHeroHp) if self.heroData then self:OnShowHeroData(_effectLayer) end end function RoleItemView:OnShowHeroData(effectLayer) local star,starType = self.heroData.GetStar(1) or self.heroData.heroConfig.Star local starSize = Vector2.New(32,32) local starScale = -10 if starType == 3 then starSize = Vector2.New(1,-15.6) starScale = -13 elseif starType == 2 then starSize = Vector2.New(60,57) end SetHeroBg(this.spLoader, Util.GetGameObject(self.gameObject, "iconMask"),self.frame,star,self.heroData.heroConfig.Quality) self.icon.sprite = this.spLoader:LoadSprite(self.heroData.heroConfig.ShowLive) --SetHEeroLiveToward(self.icon.gameObject,self.heroData.heroConfig.Toward ) self.lv.text=self.heroData.lv -- self.pos.sprite=this.spLoader:LoadSprite(self.heroData.professionIcon) self.pro.sprite=this.spLoader:LoadSprite(GetProStrImageByProNum(self.heroData.changeProId)) self.heroStageImage.sprite=this.spLoader:LoadSprite(HeroStageSprite[self.heroData.heroConfig.HeroStage]) self.roleEffect:SetActive(self.heroData.star >= 5)-- Util.AddParticleSortLayer(self.roleEffect, effectLayer - self.EffectOrginLayer) self.EffectOrginLayer = effectLayer SetHeroStars(this.spLoader, self.starGrid,star,starType,starSize,starScale) Util.SetParticleSortLayer(self.starGrid,effectLayer + 1) self.heroNameText.text=GetLanguageStrById(self.heroData.heroConfig.ReadingName) if self.hpVal and self.isShowHeroHp then self.hpVal = self.hpVal <= 0 and 0 or self.hpVal Log("self.hpVal "..self.hpVal) self.heroHp.fillAmount=self.hpVal Util.SetGray(self.gameObject, self.hpVal <= 0) end Util.AddOnceClick(self.frame, function() UIManager.OpenPanel(UIName.RoleGetInfoPopup,true,self.heroData.heroBackData) end) end function RoleItemView:AddClick(clickFun) Util.AddOnceClick(self.frame, function() if clickFun then clickFun() else UIManager.OpenPanel(UIName.RoleGetInfoPopup,true,self.heroData.heroBackData) end end) end function RoleItemView:SetEffectLayer(effectLayer) Util.AddParticleSortLayer(self.roleEffect, effectLayer - self.EffectOrginLayer) self.EffectOrginLayer = effectLayer end --界面关闭时调用(用于子类重写) function RoleItemView:OnClose() this.spLoader:Destroy() end --界面销毁时调用(用于子类重写) function RoleItemView:OnDestroy() end return RoleItemView