XLua基础
一、lua文件加载
1).resources加载xluatest文件
2).通过loader加载
3).自定义loader(相当于resources加载和loader加载结合)
先自定义loader,再加载
二、c#访问lua
1).获取一个全局基本数据类型
2).访问一个全局的table
①映射到普通class或struct
②映射到一个interface
先建立一个接口(接口需引用"csharpcalllua")(相当于一个类),再映射
③映射到dictionary<>
④映射到list<>
⑤映射到luatable类
3).访问一个全局的function
①c#访问lua方法 无参
②c#访问lua方法 有参
lua中addfunc方法
先定义参数(引用"csharpcalllua")(相当于一个类),再执行方法操作
输出结果:(在unity中)
lua:15;
15;
三、c#调用lua
lua中addfunc方法
c#调用lua方法 使用luafunction
输出结果为:(在unity中)
24;
-22
四、lua调用c#
1).new c#对象
① 普通
c#: var newgameobj = new unityengine.gameobject();
lua: local newgameobj = cs.unityengine.gameobject()
② 含参构造
lua: local newgameobj2 = cs.unityengine.gameobject('helloworld')
2).访问c#中静态的属性 (调用用".")
lua: print(cs.unityengine.time.deltatime)
3).访问c#中静态的方法 (调用用".")
lua: local camerago = cs.unityengine.gameobject.find('main camera')
4).访问c#中的成员方法 (调用用":")
lua: local camerago = cs.unityengine.gameobject.find('main camera')
camerago:setactive(false)
5).访问c#中的成员属性 (调用用".")
lua: local cameracom = camerago:getcomponent("boxcollider")
cs.unityengine.gameobject.destroy(cameracom)