SLua 中,从一个Lua脚本调用 另一个GameObject上的Lua脚本中的函数

项目中使用 SLua 是通过一个中间件,比如 LuaBehaviour.cs 。在 Prefab 上面添加 LuaBehaviour 组件,然后在里面进行 DoFile 操作 执行 Lua 的Chunk 。


背景如上

今天遇到问题,如何从GameObjectA 上挂的 LuaA  调用 GameObjectB 上挂的 LuaB 中的函数?


想不通就去问同事大神了。一番讲解后,个人理解如下:


其实

LuaManager.Instance.DoFile(luaScriptPath)

这个接口,返回的Object ,其实就是 返回一个 LuaTable !!

我们只要获取到这个 LuaTable, 就可以调用这个 LuaTable 中的函数了!!

把 DoFile 返回的 LuaTable 保存为成员变量m_LuaTable,供 Lua 中使用。


于是整理流程如下:

gameObjectB:SetActive(true)

local luaBehaviour=gameObjectB.transform:GetComponent(LuaBehaviour)

local luaTable=luaBehaviour.m_LuaTable --获取到LuaTable

luaTable:Show(100)   --调用函数







你可能感兴趣的:(Unity3d热更新,--,SLua)