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.painting) --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