miduo_client/Assets/ManagedResources/~Lua/View/ShopView.lua

614 lines
24 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

local ShopConfig = require("Modules/Shop/ShopConfig")
-- 通用得商店逻辑
local ShopView = {}
local this = ShopView
this.sortingOrder = 0
-- 保存商品中的物品节点
local _GoodsItemList = {}
---===============================生命周期函数================================
function this:New(gameObject)
local o = {}
this.__index = this
setmetatable(o, this)
o.gameObject = gameObject
o.transform = gameObject.transform
return o
end
--初始化组件(用于子类重写)
function this:InitComponent()
self.live = Util.GetGameObject(self.gameObject, "live")
self.liveRoot = Util.GetGameObject(self.gameObject, "live/root")
self.liveImg = Util.GetGameObject(self.gameObject, "live/img")
self.basePanel = Util.GetGameObject(self.gameObject, "base")
self.closeTimePanel = Util.GetGameObject(self.gameObject, "base/closeTime")
self.closeTimeLab = Util.GetGameObject(self.closeTimePanel, "time/timelab")
self.closeTime = Util.GetGameObject(self.closeTimePanel, "time")
self.refreshTimePanel = Util.GetGameObject(self.gameObject, "base/refreshTime")
self.refreshTimeLab = Util.GetGameObject(self.refreshTimePanel, "timelab")
self.refreshTime = Util.GetGameObject(self.refreshTimePanel, "time")
self.refreshCountPanel = Util.GetGameObject(self.gameObject, "base/refreshCount")
self.countLab = Util.GetGameObject(self.refreshCountPanel, "count")
self.refreshBtnPanel = Util.GetGameObject(self.gameObject, "base/refreshBtn")
self.refreshBtn = Util.GetGameObject(self.refreshBtnPanel, "btn")
self.refreshRedpot = Util.GetGameObject(self.refreshBtnPanel, "redpot")
self.costIcon = Util.GetGameObject(self.refreshBtnPanel, "costIcon")
self.costLab = Util.GetGameObject(self.refreshBtnPanel, "costLab")
self.contentBg = Util.GetGameObject(self.gameObject, "duihua")
self.content = Util.GetGameObject(self.gameObject, "duihua/Text")
self.scrollBg = Util.GetGameObject(self.gameObject, "scrollbg")
self.scrollRoot = Util.GetGameObject(self.gameObject, "scrollbg/scrollroot")
self.scrollBg1 = Util.GetGameObject(self.gameObject, "scrollbg/bg1")
self.scrollBg2 = Util.GetGameObject(self.gameObject, "scrollbg/bg2")
self.scrollBg3 = Util.GetGameObject(self.gameObject, "scrollbg/bg3")
self.bottom = Util.GetGameObject(self.gameObject, "scrollbg/bottom")
self.tip = Util.GetGameObject(self.gameObject, "scrollbg/tip")
self.shopItem = Util.GetGameObject(self.gameObject, "scrollbg/scrollroot/shopItem")
self.rechargeShopItem = Util.GetGameObject(self.gameObject, "scrollbg/scrollroot/item")
self.titleBg = Util.GetGameObject(self.gameObject, "scrollbg/titlebg")
self.titleImg = Util.GetGameObject(self.gameObject, "scrollbg/titlebg/title")
this.helpBtn = Util.GetGameObject(self.gameObject, "scrollbg/titlebg/helpBtn")--scrollbg/titlebg/
this.helpPosition=this.helpBtn:GetComponent("RectTransform").localPosition
-- 创建循环列表
if not self.ScrollView then
self.ScrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView, self.scrollRoot.transform,
self.shopItem, nil, Vector2.New(1000, 1024), 1, 3, Vector2.New(80, 0))
self.ScrollView.moveTween.MomentumAmount = 1
self.ScrollView.moveTween.Strength = 2
end
-- 创建循环列表
if not self.RechargeScrollView then
self.RechargeScrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView, self.scrollRoot.transform,
self.rechargeShopItem, nil, Vector2.New(1000, 1024), 1, 3, Vector2.New(80, 0))
self.RechargeScrollView.moveTween.MomentumAmount = 1
self.RechargeScrollView.moveTween.Strength = 2
self.RechargeScrollView.gameObject.transform.localPosition = Vector3.New(0, -20, 0)
self.RechargeScrollView.elastic = false
end
end
--绑定事件(用于子类重写)
function this:BindEvent()
local localSelf = self
Util.AddOnceClick(self.refreshBtn, function()
local isPopUp = RedPointManager.PlayerPrefsGetStr(PlayerManager.uid .. localSelf.ShopType)
local currentTime = os.date("%Y%m%d", PlayerManager.serverTime)
if (isPopUp ~= currentTime) then
local shopType = localSelf.ShopType
local shopInfo = ShopManager.GetShopInfoByType(shopType)
local costId, abcd = shopInfo.RefreshItem[1][1], shopInfo.RefreshItem[2]
local refreshNum = PrivilegeManager.GetPrivilegeUsedTimes(shopInfo.RefreshPrivilege)
local costNum = CalculateCostCount(refreshNum, abcd)
local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig)
local costName = itemConfig[costId].Name
local str = string.format("是否花费%d%s刷新商店", costNum, costName)
MsgPanel.ShowTwo(str, function()
end, function(isShow)
if (isShow) then
local currentTime = os.date("%Y%m%d", PlayerManager.serverTime)
RedPointManager.PlayerPrefsSetStr(PlayerManager.uid .. localSelf.ShopType, currentTime)
end
ShopManager.RequestRefreshShop(shopType, false)
end, "取消", "确定",nil,true)
else
ShopManager.RequestRefreshShop(localSelf.ShopType, false)
end
-- 重置商店刷新按钮点击状态
ShopManager.SetShopRefreshBtnClickStatus(localSelf.ShopType, true)
end)
--帮助按钮
Util.AddOnceClick(this.helpBtn, function()
if ShopConfig[localSelf.ShopType].IsHelp==0 then
return
end
UIManager.OpenPanel(UIName.HelpPopup,ShopConfig[localSelf.ShopType].HelpType , this.helpPosition.x,this.helpPosition.y+372)--因层级锚点原因,需手动调整高度
end)
end
--添加事件监听(用于子类重写)
function this:AddListener()
Game.GlobalEvent:AddEvent(GameEvent.Shop.OnShopInfoChange, self.RefreshShopInfo, self)
Game.GlobalEvent:AddEvent(GameEvent.MoneyPay.OnPayResultSuccess, self.RechargeSuccessFunc, self)
end
--移除事件监听(用于子类重写)
function this:RemoveListener()
Game.GlobalEvent:RemoveEvent(GameEvent.Shop.OnShopInfoChange, self.RefreshShopInfo, self)
Game.GlobalEvent:RemoveEvent(GameEvent.MoneyPay.OnPayResultSuccess, self.RechargeSuccessFunc, self)
end
--界面打开时调用(用于子类重写)
function this:OnOpen(...)
end
--界面关闭时调用(用于子类重写)
function this:OnClose()
if self._TimeCounter then
self._TimeCounter:Stop()
self._TimeCounter = nil
end
-- 物品节点回收
for _, item in pairs(_GoodsItemList) do
Util.SetColor(item.gameObject, Color.New(1,1,1,1))
Util.SetGray(item.gameObject, false)
SubUIManager.Close(item)
end
_GoodsItemList = {}
-- 红点销毁
if self.ShopType == SHOP_TYPE.GENERAL_SHOP then
ClearRedPointObject(RedPointType.Shop_General_Refresh)
end
if self.ScrollView then
GameObject.DestroyImmediate(self.ScrollView.gameObject)
self.ScrollView = nil
end
if self.RechargeScrollView then
GameObject.DestroyImmediate(self.RechargeScrollView.gameObject)
self.RechargeScrollView = nil
end
if self.liveNode then
poolManager:UnLoadLive(self.liveName, self.liveNode)
self.liveNode = nil
end
end
---=================================工具函数==========================================
-- 设置文本透明度
local function SetAlpha(text, a)
local color = text.color
color.a = a
text.color = color
end
---===================================内部函数========================================
-- 刷新商店内容显示
function this:RefreshShopInfo(isRefresh, isTop)
if self.ShopType == SHOP_TYPE.SOUL_STONE_SHOP then
self.RechargeShopData = OperatingManager.GetGiftGoodsInfoList(GoodsTypeDef.DemonCrystal)
else
self.ShopData = ShopManager.GetShopDataByType(self.ShopType)
end
self:RefreshLive()
self:RefreshBase()
self:RefreshItemList(isTop)
-- 刷新商店的查看时间
ShopManager.RefreshShopCheckTime(self.ShopType)
if isRefresh then
-- 物品节点播放特效
for _, item in pairs(_GoodsItemList) do
item:OnShowUIeffectItemViewSaoguang()
end
end
end
-- 刷新立绘显示
function this:RefreshLive()
local liveConfig = ShopConfig[self.ShopType]
if not liveConfig.liveName or liveConfig.liveName == "" then
self.live:SetActive(false)
return
end
self.live:SetActive(true)
self.liveImg:SetActive(false)
self.liveRoot:SetActive(false)
-- 立绘
if not liveConfig.liveType or liveConfig.liveType == 1 then
--TODO:动态加载立绘
self.liveRoot:SetActive(true)
if self.liveNode then
poolManager:UnLoadLive(self.liveName, self.liveNode)
end
local scale = liveConfig.liveScale
if type(scale) == "number" then
scale = Vector3.one * (scale or 1)
end
local livePos = Vector3.zero
if liveConfig.livePos then
livePos.x = liveConfig.livePos[1]
livePos.y = liveConfig.livePos[2]
end
self.liveName = liveConfig.liveName
self.liveNode = poolManager:LoadLive(liveConfig.liveName, self.liveRoot.transform, scale, livePos)
local SkeletonGraphic = self.liveNode:GetComponent("SkeletonGraphic")
local idle = function()
SkeletonGraphic.AnimationState:SetAnimation(0, "idle", true)
end
SkeletonGraphic.AnimationState:SetAnimation(0, "idle", true)
SkeletonGraphic.AnimationState.Complete = SkeletonGraphic.AnimationState.Complete + idle
poolManager:SetLiveClearCall(liveConfig.liveName, self.liveNode, function()
SkeletonGraphic.AnimationState.Complete = SkeletonGraphic.AnimationState.Complete - idle
end)
-- 静态图
elseif liveConfig.liveType == 2 then
self.liveImg:SetActive(true)
self.liveImg:GetComponent("Image").sprite = Util.LoadSprite(liveConfig.liveName)
self.liveImg:GetComponent("Image"):SetNativeSize()
self.liveImg.transform.localScale = Vector3.one * (liveConfig.liveScale or 1)
local livePos = Vector3.zero
if liveConfig.livePos then
livePos.x = liveConfig.livePos[1]
livePos.y = liveConfig.livePos[2]
end
self.liveImg.transform.localPosition = livePos
end
end
-- 开始倒计时
function this:StartTimeCount()
local localSelf = self
local function _TimeUpdate()
-- 检测计时器是否已销毁,避免计时器销毁后仍然会执行一次,导致报错的问题
if not localSelf._TimeCounter then
return
end
-- 关闭时间
if localSelf.closeTimePanel.activeSelf then
local closeTime = ShopManager.GetShopCloseTime(localSelf.ShopType)
if closeTime >= 0 then
local timeStr = ""
if localSelf.ShopType == SHOP_TYPE.ACTIVITY_SHOP then
timeStr = TimeToDHMS(closeTime)
else
timeStr = TimeToHMS(closeTime)
end
localSelf.closeTime:GetComponent("Text").text = timeStr
end
end
-- 刷新时间
if localSelf.refreshTimePanel.activeSelf then
local refreshTime = ShopManager.GetShopRefreshLeftTime(localSelf.ShopType)
if refreshTime >= 0 then
localSelf.refreshTime:GetComponent("Text").text = TimeToHMS(refreshTime)
end
end
end
-- 开始吧
if not self._TimeCounter then
self._TimeCounter = Timer.New(_TimeUpdate, 1, -1, true)
self._TimeCounter:Start()
end
-- 刷新一次
_TimeUpdate()
end
-- 刷新时间及刷新按钮
function this:RefreshBase()
-- 商店关闭时间倒计时
local closeTime = ShopManager.GetShopCloseTime(self.ShopType)
self.closeTimePanel:SetActive(closeTime >= 0)
if closeTime >= 0 then
if self.ShopType == SHOP_TYPE.ARENA_SHOP or self.ShopType == SHOP_TYPE.TOP_MATCH_SHOP then
self.closeTimeLab:GetComponent("Text").text = "距离刷新:"
else
self.closeTimeLab:GetComponent("Text").text = "距离商人离开:"
end
end
-- 自动刷新时间倒计时
local leftTime = ShopManager.GetShopRefreshLeftTime(self.ShopType)
self.refreshTimePanel:SetActive(leftTime >= 0)
--开始倒计时
self:StartTimeCount()
-- 主动刷新按钮
local leftCount = ShopManager.GetShopLeftRefreshCount(self.ShopType)
if leftCount == -2 then
-- 不支持刷新
self.refreshCountPanel:SetActive(false)
self.refreshBtnPanel:SetActive(false)
else
if leftCount == -1 then
-- 无限制次数刷新
self.refreshCountPanel:SetActive(false)
elseif leftCount >= 0 then
-- 限制次数刷新
self.refreshCountPanel:SetActive(true)
self.countLab:GetComponent("Text").text = leftCount
end
-- 刷新物品计算
self.refreshBtnPanel:SetActive(true)
local shopInfo = ShopManager.GetShopInfoByType(self.ShopType)
local costId, abcd = shopInfo.RefreshItem[1][1], shopInfo.RefreshItem[2]
self.costIcon:GetComponent("Image").sprite = SetIcon(costId)
-- 商店特权正确性检测
if not shopInfo.RefreshPrivilege or shopInfo.RefreshPrivilege == 0 then
Log("错误:商店类型 == " .. self.ShopType .. "商店支持手动刷新但是未配置刷新次数对应的特权id无限制次数也需要配置特权id请检查")
end
local refreshNum = PrivilegeManager.GetPrivilegeUsedTimes(shopInfo.RefreshPrivilege)
self.costLab:GetComponent("Text").text = "×" .. CalculateCostCount(refreshNum, abcd)
end
-- 商店标题
local shopConfig = ShopConfig[self.ShopType]
self.titleBg:GetComponent("Image").sprite = Util.LoadSprite(shopConfig.titleBg)
self.titleImg:GetComponent("Image").sprite = Util.LoadSprite(shopConfig.title)
-- 对话显示
if shopConfig.content then
self.contentBg:SetActive(true)
self.content:GetComponent("Text").text = shopConfig.content
self.contentBg.transform.localPosition = Vector3(shopConfig.contentPos[1], shopConfig.contentPos[2], 0)
else
self.contentBg:SetActive(false)
end
-- 滚动界面背景
self.scrollBg1:GetComponent("Image").sprite = Util.LoadSprite(shopConfig.scrollBg)
self.scrollBg2:GetComponent("Image").sprite = Util.LoadSprite(shopConfig.scrollBg)
end
-- 刷新物品列表
function this:RefreshItemList(isTop)
if self.ShopType == SHOP_TYPE.SOUL_STONE_SHOP then
self.ScrollView.gameObject:SetActive(false)
self.RechargeScrollView.gameObject:SetActive(true)
local itemlist = self.RechargeShopData
self.RechargeScrollView:SetData(itemlist, function(index, shopItem)
local itemData = itemlist[index]
self:RechargeShopItemAdapter(shopItem, itemData)
end)
--
if isTop then
self.RechargeScrollView:SetIndex(1)
end
else
-- 重置列表
self.RechargeScrollView.gameObject:SetActive(false)
self.ScrollView.gameObject:SetActive(true)
local itemlist = self.ShopData.storeItem
self.ScrollView:SetData(itemlist, function(index, shopItem)
local itemData = itemlist[index]
self:ShopItemAdapter(shopItem, itemData)
end)
if isTop then
self.ScrollView:SetIndex(1)
end
end
end
-- 商店物品数据匹配
function this:ShopItemAdapter(shopItem, itemData)
-- 获取对象
local bg = Util.GetGameObject(shopItem, "bg")
local item = Util.GetGameObject(bg, "item")
local itemName = Util.GetGameObject(bg, "itemName"):GetComponent("Text")
local limitBg = Util.GetGameObject(bg, "buyLimitbg")
local limitTip = Util.GetGameObject(bg, "buyLimitbg/tip"):GetComponent("Text")
local limitTimes = Util.GetGameObject(bg, "buyLimitbg/buyLimit"):GetComponent("Text")
local priceBg = Util.GetGameObject(bg, "pricebg")
local itemPrice = Util.GetGameObject(bg, "pricebg/price"):GetComponent("Text")
local costIcon = Util.GetGameObject(bg, "pricebg/costIcon"):GetComponent("Image")
local discountbg = Util.GetGameObject(bg, "discountbg")
local empty = Util.GetGameObject(shopItem, "empty")
local lock = Util.GetGameObject(shopItem, "lock")
local lockTip = Util.GetGameObject(shopItem, "lock/tip"):GetComponent("Text")
-- 计算数据
local itemInfo = ShopManager.GetShopItemInfo(itemData.id)
local curBuyCount = itemData.buyNum
local maxLimitCount = ShopManager.GetShopItemLimitBuyCount(itemData.id)
local costId, price = ShopManager.calculateBuyCost(self.ShopType, itemData.id, 1)
itemName.text = itemInfo.GoodsName
-- 折扣
if price == 0 then
discountbg:SetActive(true)
discountbg:GetComponent("Image").sprite = Util.LoadSprite("s_shop_zhekou_00")
else
local isDiscount = itemInfo.IsDiscount == 1
discountbg:SetActive(isDiscount)
if isDiscount then
discountbg:GetComponent("Image").sprite = Util.LoadSprite("s_shop_zhekou_0" .. itemInfo.DiscountDegree)
end
end
-- 消耗物品的信息
itemPrice.text = tostring(price)
costIcon.sprite = SetIcon(costId)
-- 判断商品栏位是否解锁
local _IsUnLock = true
if self.ShopType == SHOP_TYPE.GUILD_SHOP then
local isUnLock, unLockLevel = MyGuildManager.GetGuildShopSortIsUnLock(itemInfo.Sort)
if not isUnLock then
_IsUnLock = false
lockTip.text = string.format("公会%d级解锁", unLockLevel)
end
end
lock:SetActive(not _IsUnLock)
priceBg.gameObject:SetActive(_IsUnLock)
itemName.gameObject:SetActive(_IsUnLock)
-- 限购
limitBg:SetActive(maxLimitCount ~= -1)
limitTimes.text = maxLimitCount
-- 售空 限购次数为-1 表示不限购
local isEmpty = maxLimitCount ~= -1 and curBuyCount >= maxLimitCount
if curBuyCount >= maxLimitCount then
empty:SetActive(true)
else
empty:SetActive(false)
end
empty:SetActive(isEmpty)
-- 数据匹配
if not _GoodsItemList[shopItem] then
_GoodsItemList[shopItem] = SubUIManager.Open(SubUIConfig.ItemView, item.transform)
end
Util.SetGray(_GoodsItemList[shopItem].gameObject, not _IsUnLock)
local goods = ShopManager.GetShopItemGoodsInfo(itemData.id)
if isEmpty or not _IsUnLock then -- 物品空或者未解锁不现实物品特效
_GoodsItemList[shopItem]:OnOpen(false, goods[1],1,false,false,false)
else
_GoodsItemList[shopItem]:OnOpen(false, goods[1],1,false,false,false,this.sortingOrder)
end
-- 商品颜色显示
local imgColor = isEmpty and Color.New(0.5, 0.5, 0.5, 1) or Color.New(1, 1, 1, 1)
local textA = isEmpty and 0.7 or 1
Util.SetColor(bg, imgColor)
SetAlpha(itemName, textA)
SetAlpha(limitTip, textA)
SetAlpha(limitTimes, textA)
SetAlpha(itemPrice, textA)
-- 购买事件
Util.AddOnceClick(lock, function()
PopupTipPanel.ShowTip("商品未解锁")
end)
Util.AddOnceClick(empty, function()
PopupTipPanel.ShowTip("商品已售空")
end)
Util.AddOnceClick(bg, function()
-- 售空
if isEmpty then
PopupTipPanel.ShowTip("商品已售空")
return
end
if not _IsUnLock then
PopupTipPanel.ShowTip("商品未解锁")
return
end
UIManager.OpenPanel(UIName.ShopBuyPopup, self.ShopType, itemData.id)
end)
end
-- 妖晶商店物品数据匹配
function this:RechargeShopItemAdapter(shopItem, itemData)
-- 获取对象
local first = Util.GetGameObject(shopItem, "first")
local firstNum = Util.GetGameObject(shopItem, "first/Text"):GetComponent("Text")
local icon = Util.GetGameObject(shopItem, "icon"):GetComponent("Image")
local num = Util.GetGameObject(shopItem, "itemName"):GetComponent("Text")
local price = Util.GetGameObject(shopItem, "price/Text"):GetComponent("Text")
-- 计算数据
local itemInfo = ShopManager.GetRechargeItemInfo(itemData.goodsId)
icon.sprite = Util.LoadSprite(GetResourcePath(itemInfo.Resources))
num.text = itemInfo.Name
price.text = "¥" .. itemInfo.Price
-- 判断首充赠送
local curBuyCount = itemData.buyTimes
first:SetActive(curBuyCount < 1)
firstNum.text = itemInfo.FirstMultiple[1][2]
-- 购买事件
Util.AddOnceClick(shopItem, function()
if AppConst.isSDK then
PayManager.Pay({ Id = itemData.goodsId })
else
NetManager.RequestBuyGiftGoods(itemData.goodsId, function()
self:RechargeSuccessFunc(itemData.goodsId)
end)
end
end)
end
-- 充值成功回调
function this:RechargeSuccessFunc(id)
FirstRechargeManager.RefreshAccumRechargeValue(id)
OperatingManager.RefreshGiftGoodsBuyTimes(GoodsTypeDef.DemonCrystal, id)
self:RefreshShopInfo(false, false)
--PopupTipPanel.ShowTip("购买成功,请到邮箱中领取!")
end
---=====================================对外接口=============================----
-- 设置要显示的商店类型
function this:ShowShop(shopType,_sortingOrder)
--
self.titleBg:GetComponent("Canvas").sortingOrder = _sortingOrder + 1
this.sortingOrder = _sortingOrder
-- 红点销毁
self.refreshRedpot:SetActive(false)
if self.ShopType == SHOP_TYPE.GENERAL_SHOP then
ClearRedPointObject(RedPointType.Shop_General_Refresh)
end
-- 绑定新红点
if shopType == SHOP_TYPE.GENERAL_SHOP then
BindRedPointObject(RedPointType.Shop_General_Refresh, self.refreshRedpot)
end
-- 刷新显示
self.ShopType = shopType
-- 显示帮助按钮
local liveConfig = ShopConfig[self.ShopType]
if liveConfig.IsHelp==1 then
self.helpBtn:SetActive(true)
else
self.helpBtn:SetActive(false)
end
self:RefreshShopInfo(false, true)
-- 设置tip显隐
local isSSSHop = self.ShopType == SHOP_TYPE.SOUL_STONE_SHOP
self.scrollBg1:SetActive(not isSSSHop)
self.scrollBg2:SetActive(not isSSSHop)
self.titleBg:SetActive(not isSSSHop)
self.bottom:SetActive(not isSSSHop)
self.scrollBg3:SetActive(isSSSHop)
self.tip:SetActive(isSSSHop)
end
-- 设置立绘位置
function this:SetLivePosition(pos)
-- 计算位置
if not pos then
return
end
-- 判断类型
local liveConfig = ShopConfig[self.ShopType]
if not liveConfig.liveType or liveConfig.liveType == 1 then
if not self.liveNode then
return
end
self.liveNode.transform.localPosition = pos
elseif liveConfig.liveType == 2 then
if not self.liveImg then
return
end
self.liveImg.transform.localPosition = pos
end
end
-- 设置商店物品栏位置
function this:SetItemContentPosition(pos)
-- 计算位置
if not pos then
return
end
self.scrollBg.gameObject:GetComponent("RectTransform").anchoredPosition = Vector2.New(pos.x, pos.y)
--self.scrollBg.transform.localPosition = pos
end
-- 设置基础信息位置
function this:SetBasePanelPostion(pos)
self.basePanel:GetComponent("RectTransform").anchoredPosition = pos
end
-- 设置层级
function this:SetSortLayer(sortLayer)
--
Log("sortLayer _GoodsItemList "..sortLayer.." "..LengthOfTable(_GoodsItemList))
for _, item in pairs(_GoodsItemList) do
item:SetEffectLayer(sortLayer)--this.sortingOrder)
end
self.titleBg:GetComponent("Canvas").sortingOrder = sortLayer + 1
-- 保存层级
this.sortingOrder = sortLayer
end
return this