66 lines
1.7 KiB
Lua
66 lines
1.7 KiB
Lua
require("Base/BasePanel")
|
|
LoadingPanel = Inherit(BasePanel)
|
|
local this = LoadingPanel
|
|
--初始化组件(用于子类重写)
|
|
function LoadingPanel:InitComponent()
|
|
Log("LoadingPanel:InitComponent")
|
|
this.Slider = Util.GetGameObject(self.gameObject, "Slider"):GetComponent("Slider")
|
|
this.Tip = Util.GetGameObject(self.gameObject, "Slider/Image/LoadingText"):GetComponent("Text")
|
|
|
|
screenAdapte(Util.GetGameObject(self.gameObject, "bg1"))
|
|
screenAdapte(Util.GetGameObject(self.gameObject, "bg2"))
|
|
end
|
|
|
|
local callList = {}
|
|
local curIndex
|
|
local lerp = 0
|
|
local maxIndex = 0
|
|
local function update()
|
|
lerp = math.clamp(lerp + Time.fixedDeltaTime * 15,0,1)
|
|
this.Slider.value = this.Slider.value * (1-lerp) + curIndex * lerp
|
|
end
|
|
|
|
function LoadingPanel.AddStep(func)
|
|
table.insert(callList, func)
|
|
maxIndex = maxIndex + 1
|
|
end
|
|
|
|
function LoadingPanel.OnStep()
|
|
lerp = 0
|
|
curIndex = curIndex + 1
|
|
if callList[curIndex] then
|
|
callList[curIndex]()
|
|
end
|
|
end
|
|
|
|
-- 登录时有接口报错时执行,防止登录报错卡死导致进不去游戏的问题
|
|
function LoadingPanel.ErrorStep(msg)
|
|
--
|
|
if curIndex >= maxIndex then return end
|
|
LogError(Language[11344]..curIndex..Language[11345]..msg.errCode .. "|"..msg.errMsg)
|
|
-- 强制进入下一步
|
|
LoadingPanel.OnStep()
|
|
end
|
|
|
|
|
|
function LoadingPanel.Start()
|
|
if #callList <= 1 then
|
|
return
|
|
end
|
|
UIManager.OpenPanel(UIName.LoadingPanel)
|
|
UpdateBeat:Add(update)
|
|
lerp = 0
|
|
curIndex = 0
|
|
this.Slider.maxValue = #callList - 1
|
|
this.Slider.value = curIndex
|
|
this.Tip.text = Language[11346]
|
|
LoadingPanel.OnStep()
|
|
end
|
|
|
|
function LoadingPanel.End()
|
|
UpdateBeat:Remove(update)
|
|
this:ClosePanel()
|
|
callList = {}
|
|
end
|
|
|
|
return LoadingPanel |