以下使用Unity2017.4.10 + VS2017 + 最新版XLua
XLua下载地址:https://github.com/Tencent/xLua
================================================================================================
Lua里面的Self
-- 首先,来看一段代码
-- 假设脚本名为Test
Test = {}
Test.__index = Test -- 指向自身
function Test.test(self,...)
for i,v in ipairs{...} do -- 可变参数必须使用大括号 C#里面的foreach
print(typeof(i),typeof(v)) --
end
end
Test:test(2,2,3)
-- 冒号其实在调用的时候是这种写法 Test:test(this,2,2,3) 而self指向的其实就是自身
// 其实上面那个使用冒号调用的时候就相当于c#里面的扩展函数
public static void Move(this ...,params object[] o)
{
//function body
}
而那个__index 则是Lua元表里面的特殊方法,如__add(+操作)。。。
====================================以下使用XLua第二个Demo======================================
我们来看一下对应脚本的设置
在来看一下对应的Lua脚本
local speed = 10
local lightCpnt = nil
function start()
print("lua start...")
print("injected object", lightObject)
lightCpnt= lightObject:GetComponent(typeof(CS.UnityEngine.Light))
end