Ruyi_client_new/wb_unity_pro_jx/Assets/Scripts/DSLuaClient.cs

88 lines
2.0 KiB
C#
Raw Normal View History

2025-12-04 15:59:26 +08:00
using LuaInterface;
public class DSLuaClient : LuaClient
{
LuaFunction _applicationPause;
LuaFunction _applicationActive;
protected override LuaFileUtils InitLoader()
{
if (GameApplication.Instance.buildApp)
{
return new LuaResLoader();
}
else
{
return base.InitLoader();
}
}
protected override void OpenLibs()
{
LuaConst.openLuaSocket = true;
base.OpenLibs();
luaState.BeginPreLoad();
luaState.RegFunction("mime.core", LuaOpen_Mime_Core);
luaState.EndPreLoad();
OpenCJson();
}
public void Reload(string moduleFileName)
{
__ReLoad(moduleFileName, "loaded");
__ReLoad(moduleFileName, "preload");
}
void __ReLoad(string moduleFileName,string field)
{
luaState.LuaGetGlobal("package");
luaState.LuaGetField(-1, field);
luaState.LuaPushString(moduleFileName);
luaState.LuaGetTable(-2);
if (!luaState.LuaIsNil(-1))
{
luaState.LuaPushString(moduleFileName);
luaState.LuaPushNil();
luaState.LuaSetTable(-4);
}
luaState.LuaPop(3);
}
protected override void OnLoadFinished()
{
base.OnLoadFinished();
_applicationPause = luaState.GetFunction("OnApplicationPause");
_applicationActive = luaState.GetFunction("OnApplicationActive");
}
public void OnApplicationPause1()
{
// UnityEngine.Debug.LogError("")
if (_applicationPause != null)
{
_applicationPause.BeginPCall();
_applicationPause.PCall();
_applicationPause.EndPCall();
}
}
public void OnApplicationActive()
{
if (_applicationActive != null)
{
_applicationActive.BeginPCall();
_applicationActive.PCall();
_applicationActive.EndPCall();
}
}
}