RewardPanel = {} function RewardPanel:New(gameObject) local b = {} b.gameObject = gameObject b.transform = gameObject.transform setmetatable(b, { __index = RewardPanel }) return b end --初始化组件(用于子类重写) function RewardPanel:InitComponent() self.spLoader = SpriteLoader.New() self.bg = Util.GetGameObject(self.gameObject, "BG") self.titleIma = Util.GetGameObject(self.bg, "Image") self.title = Util.GetGameObject(self.titleIma, "Text"):GetComponent("Text") self.content = Util.GetGameObject(self.bg, "getInfo"):GetComponent("Text") self.grid = Util.GetGameObject(self.bg, "ViewRect/grid") self.rewardMaskBtn = Util.GetGameObject(self.gameObject, "rewardMaskBtn") self.items = {} self.data = {} end function RewardPanel:BindEvent() Util.AddOnceClick(self.rewardMaskBtn, function() self.gameObject:SetActive(false) end) end function RewardPanel:OnOpen(vec) end function RewardPanel:SetData(data, sortingOrder) self.data = data self.bg.transform.localPosition = data.pos self.gameObject:SetActive(true) if self.data.title and self.data.title ~= "" then self.title.text = self.data.title self.titleIma.gameObject:SetActive(true) else self.titleIma.gameObject:SetActive(false) end if self.data.content and self.data.content ~= "" then self.content.text = GetLanguageStrById(self.data.content) self.content.gameObject:SetActive(true) else self.content.gameObject:SetActive(false) end for i = 1, #self.items do self.items[i].gameObject:SetActive(false) end for i = 1, #self.data.shows do if not self.items[i] then self.items[i] = SubUIManager.Open(SubUIConfig.ItemView, self.grid.transform) end self.items[i]:OnOpen(false, { self.data.shows[i][1], self.data.shows[i][2] }, 0.8, false, false, false, sortingOrder) self.items[i].gameObject:SetActive(true) end end function RewardPanel:OnClose() self.spLoader:Destroy() for i = 1, #self.items do SubUIManager.Close(self.items[i]) end self.items = {} end return RewardPanel