103 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Lua
		
	
			
		
		
	
	
			103 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Lua
		
	
require("Base/BasePanel")
 | 
						|
SwitchPanel = Inherit(BasePanel)
 | 
						|
local this = SwitchPanel
 | 
						|
--初始化组件(用于子类重写)
 | 
						|
function this:InitComponent()
 | 
						|
    this.spLoader = SpriteLoader.New()
 | 
						|
 | 
						|
    this.CircleMaskMat = self.gameObject:GetComponent("Image").material
 | 
						|
    this.CircleMaskMat:SetFloat("_ScaleX", Screen.width / Screen.height)
 | 
						|
end
 | 
						|
 | 
						|
--绑定事件(用于子类重写)
 | 
						|
function this:BindEvent()
 | 
						|
 | 
						|
end
 | 
						|
 | 
						|
--添加事件监听(用于子类重写)
 | 
						|
function this:AddListener()
 | 
						|
 | 
						|
end
 | 
						|
 | 
						|
--移除事件监听(用于子类重写)
 | 
						|
function this:RemoveListener()
 | 
						|
 | 
						|
end
 | 
						|
function this:OnShow()
 | 
						|
end
 | 
						|
--界面打开时调用(用于子类重写)
 | 
						|
function this:OnOpen(...)
 | 
						|
 | 
						|
end
 | 
						|
 | 
						|
function this.OpenPanel(id, func,data)
 | 
						|
    -- local args = {...}
 | 
						|
    UIManager.OpenPanel(UIName.SwitchPanel)
 | 
						|
    DoTween.To(DG.Tweening.Core.DOGetter_float( function () return 6 end),
 | 
						|
            DG.Tweening.Core.DOSetter_float(function (progress)
 | 
						|
                this.CircleMaskMat:SetFloat("_R", progress)
 | 
						|
            end), 0, 1):SetEase(Ease.OutQuad):OnComplete(function ()
 | 
						|
        -- UIManager.OpenPanel(id, unpack(args, table.maxn(args)))
 | 
						|
        if id then
 | 
						|
            UIManager.OpenPanel(id,data)
 | 
						|
        end
 | 
						|
        UIManager.OpenPanel(UIName.SwitchPanel)
 | 
						|
        if func then func() end
 | 
						|
        DoTween.To(DG.Tweening.Core.DOGetter_float( function () return 0 end),
 | 
						|
                DG.Tweening.Core.DOSetter_float(function (progress)
 | 
						|
                    this.CircleMaskMat:SetFloat("_R", progress)
 | 
						|
                end), 6, 1):SetEase(Ease.InQuad):OnComplete(function ()
 | 
						|
            UIManager.ClosePanel(UIName.SwitchPanel)
 | 
						|
        end)
 | 
						|
    end)
 | 
						|
end
 | 
						|
 | 
						|
-- 播放转场效果,不切换场景
 | 
						|
function this.PlayTransEffect(func)
 | 
						|
    UIManager.OpenPanel(UIName.SwitchPanel)
 | 
						|
    DoTween.To(DG.Tweening.Core.DOGetter_float( function () return 6 end),
 | 
						|
            DG.Tweening.Core.DOSetter_float(function (progress)
 | 
						|
                this.CircleMaskMat:SetFloat("_R", progress)
 | 
						|
            end), 0, 2):SetEase(Ease.OutQuad):OnComplete(function ()
 | 
						|
        if func then
 | 
						|
            func()
 | 
						|
        end
 | 
						|
        DoTween.To(DG.Tweening.Core.DOGetter_float( function () return 0 end),
 | 
						|
                DG.Tweening.Core.DOSetter_float(function (progress)
 | 
						|
                    this.CircleMaskMat:SetFloat("_R", progress)
 | 
						|
                end), 6, 1):SetEase(Ease.InQuad):OnComplete(function ()
 | 
						|
                UIManager.ClosePanel(UIName.SwitchPanel)
 | 
						|
        end)
 | 
						|
    end)
 | 
						|
end
 | 
						|
 | 
						|
function this.ClosePanel(id, func)
 | 
						|
    UIManager.OpenPanel(UIName.SwitchPanel)
 | 
						|
    DoTween.To(DG.Tweening.Core.DOGetter_float( function () return 6 end),
 | 
						|
            DG.Tweening.Core.DOSetter_float(function (progress)
 | 
						|
                this.CircleMaskMat:SetFloat("_R", progress)
 | 
						|
            end), 0, 1):SetEase(Ease.OutQuad):OnComplete(function ()
 | 
						|
        UIManager.ClosePanel(id)
 | 
						|
        if func then func() end
 | 
						|
        UIManager.OpenPanel(UIName.SwitchPanel)
 | 
						|
        DoTween.To(DG.Tweening.Core.DOGetter_float( function () return 0 end),
 | 
						|
                DG.Tweening.Core.DOSetter_float(function (progress)
 | 
						|
                    this.CircleMaskMat:SetFloat("_R", progress)
 | 
						|
                end), 6, 1):SetEase(Ease.InQuad):OnComplete(function ()
 | 
						|
            UIManager.ClosePanel(UIName.SwitchPanel)
 | 
						|
        end)
 | 
						|
    end)
 | 
						|
end
 | 
						|
 | 
						|
--界面关闭时调用(用于子类重写)
 | 
						|
function this:OnClose()
 | 
						|
 | 
						|
end
 | 
						|
 | 
						|
--界面销毁时调用(用于子类重写)
 | 
						|
function this:OnDestroy()
 | 
						|
    this.spLoader:Destroy()
 | 
						|
 | 
						|
end
 | 
						|
 | 
						|
return SwitchPanel |