经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » C# » 查看文章
XLua基础
来源:cnblogs  作者:薄荷グ微凉べ  时间:2018/12/12 9:58:33  对本文有异议

一、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)

 

 

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号