切换场景后加载面板
导入using UnityEngine.SceneManagement;
LuaFunction level;
void Awake() {
loader = new LuaLoader();
lua = new LuaState();
this.OpenLibs();
lua.LuaSetTop(0);
loader = new LuaLoader();
lua = new LuaState();
this.OpenLibs();
lua.LuaSetTop(0);
LuaBinder.Bind(lua);
DelegateFactory.Init();
LuaCoroutine.Register(lua, this);
DelegateFactory.Init();
LuaCoroutine.Register(lua, this);
SceneManager.sceneLoaded += SceneManager_sceneLoaded;
}
}
private void SceneManager_sceneLoaded(Scene arg0, LoadSceneMode arg1)
{
if (level != null)
{
int levels = arg0.buildIndex;
level.BeginPCall();
level.Push(levels);
level.PCall();
level.EndPCall();
}
{
if (level != null)
{
int levels = arg0.buildIndex;
level.BeginPCall();
level.Push(levels);
level.PCall();
level.EndPCall();
}
if (lua != null)
{
lua.RefreshDelegateMap();
}
}
{
lua.RefreshDelegateMap();
}
}
void StartMain() {
//执行Main.lua
lua.DoFile("Main.lua");
lua.DoFile("Main.lua");
//执行lua中的OnLevelWasLoaded
level = lua.GetFunction("OnLevelWasLoaded");
}
}
lua中
--场景切换通知
function OnLevelWasLoaded(level)
if level ==1 then
panelMgr:CreatePanel('Select', SelectCtrl.OnCreate);
end
collectgarbage("collect")
Time.timeSinceLevelLoad = 0
end
if level ==1 then
panelMgr:CreatePanel('Select', SelectCtrl.OnCreate);
end
collectgarbage("collect")
Time.timeSinceLevelLoad = 0
end
Canvas标签改为GuiCamere