PGRData/Script/matrix/xui/xuisupersmashbros/main/panels/XUiSSBMainPanelEntrance.lua

63 lines
No EOL
1.7 KiB
Lua

--=================
--主界面模式入口面板
--=================
local XUiSSBMainPanelEntrance = {}
--=================
--面板
--=================
local Panel = {}
--=================
--模式入口控件列表(按模式优先级排序)
--=================
local Entrances = {}
--=================
--初始化入口
--=================
local InitEntrances = function()
if Panel.GridEntrance then
--先把模板隐藏
Panel.GridEntrance.gameObject:SetActiveEx(false)
local entranceScript = require("XUi/XUiSuperSmashBros/Main/Grids/XUiSSBMainEntranceGrid")
local modes = XDataCenter.SuperSmashBrosManager.GetAllModes()
for priority, mode in pairs(modes) do
local entranceGo = CS.UnityEngine.Object.Instantiate(Panel.GridEntrance, Panel.Transform)
Entrances[priority] = entranceScript.New(entranceGo, mode)
Entrances[priority]:Show()
end
end
end
--=================
--初始化
--=================
function XUiSSBMainPanelEntrance.Init(ui)
Panel = XTool.InitUiObjectByUi(Panel, ui.PanelEntrance)
InitEntrances()
end
--=================
--显示时
--=================
function XUiSSBMainPanelEntrance.OnEnable()
for _, entrance in pairs(Entrances) do
entrance:OnEnable()
end
end
--=================
--隐藏时
--=================
function XUiSSBMainPanelEntrance.OnDisable()
for _, entrance in pairs(Entrances) do
entrance:OnDisable()
end
end
--=================
--销毁时
--=================
function XUiSSBMainPanelEntrance.OnDestroy()
for _, entrance in pairs(Entrances) do
entrance:OnDestroy()
end
Panel = {}
Entrances = {}
end
return XUiSSBMainPanelEntrance