该示例沿用了上一个示例所带的C#类LuaBehavior
该C#类有如下特点:
- 允许拖入一个Lua文件执行
- 将Lua代码中的self指向C#类自身
- 提供一个依赖注入列表,lua中可根据名称来获取对应的GameObject
- 如果lua中存在声明周期函数,该类会在自己的生命周期中自动调用这些函数
第一步 创建UI
在UI面板上创建一个Button和一个InputField,将LuaBehavior挂载到Button下
将Lua文件拖入LuaBehavior中
添加如下依赖条目:
变量名:input
值:场景中的InputField
第二步 创建Lua文件执行逻辑
function start()
print("lua start...")
self:GetComponent("Button").onClick:AddListener(function()
print("clicked, you input is '" .. input:GetComponent("InputField").text .."'")
end)
end
这个脚本中只有一个start函数,基于该C#类的功能,这个lua函数会和C#类一样,在Start时执行
其通过self(即Button上的LuaBehavior组件),传入组件名称来获取自身的Button组件,并为onClick事件添加监听函数
函数内容中使用到了注入的input依赖,该input是一个GameObject,获取其身上的InputField组件中输入的text值并打印