付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C# APILuaEnv 类object DoString(string c描述:执行一个代码块。参数:k, string ckName = chuck, LuaTable env = null)cck: Lua 代码;kName: 发生 error 时的 debug 显示信息中使用,指明某某代码块的某行错误;env :为这个代码块;返回值:代码块里 return 语句的返回值;比如:return 1, “o”,DoString 返回将包含两个 object, 一个是 double 类型的 1, 一个是 string 类型的“例子:o”LuaEnv luaenv = new LuaEnv();
2、object ret = luaenv.DoString(pr(o)rnreturn 1)UnityEngine.Debug.Log(ret=+ret0);luaenv.Dise()T LoadString(string c描述:k, string ckName = ck, LuaTable env = null)加载一个代码块,但不执行,只返回类型可以指定为一个 delegate 或者一个 LuaFunction参数:cck: Lua 代码;kName: 发生 error 时的 debug 显示信息中使用,指明某某代码块的某行错误;env :为这个代码块;返回值:代表该代码块的 delega
3、te 或者 LuaFunction 类;LuaTable Global;描述:代表 lua 全局环境的 LuaTablevoid Tick()描述:清除 Lua 的未手动的 LuaBase(比如,LuaTable, LuaFunction),以及其它一些事情。需要定期调用,比如在 MonoBehaviour 的 Update 中调用。void AddLoader(CustomLoader loader)描述:增加一个自定义 loader参数:loader:就一个回调,其类型为 delegate byte CustomLoader(ref string filepath),当一个文件被 requ
4、ire 时,这个 loader 会被回调,其参数是 require 的参数,如果该 loader 找到文件,可以将其读进内存,返回一个 byte 数组。如果需要支持调试的话,而 filepath 要设置成 IDE 能找到的路径(相对或者绝对都可以)void Dise()描述:Dise 该 LuaEnv。LuaEnv 的使用建议:全局就一个实例,并在 Update 中调用 GC 方法,完全不需要时调用 DiseLuaTable 类T Get(string key)描述:获取在 key 下,类型为T 的 value,如果不存在或者类型不匹配,返回 null;T GetInPath(string p
5、ath)描述:和 Get 的区别是,这个会识别 path 里头的“.”,比如 var i = tbl.GetInPath(“a.b.c”)void SetInPath(string path, T val)描述:和 GetInPaht对应的 setter;void Get(TKey key, out TValue value)描述:上面的API 的 Key 都只能是string,而这个 API 无此限制;void Set(TKey key, TValue value)描述:对应 Get的 setter;T Cast()描述:把该 table 转成一个 T 指明的类型,可以是一个加了 CShar
6、pCallLua有默认构造函数的class 或者 struct,一个 Dictionary,List 等等。的erface,一个void SetMeable(LuaTable meable)描述:设置 meable 为 table 的 meableLuaFunction 类注意:用该类Lua 函数会有 boxing,unboxing 的开销,为了性能考虑,需要频繁调用的地方不要用该类。建议通过 table.Get获取一个 delegate 再调用(假设 ABCDelegate 是 C#的一个 delegate)。在使用使用 table.Get之前,请先把 ABCDelegate 加到代码生成列
7、表。object Call(params object args)描述:以可变参数调用 Lua 函数,并返回该调用的返回值。object Call(object args, Type returnTypes)描述:调用 Lua 函数,并指明返回参数的类型,系统会自动按指定类型进行转换。void SetEnv(LuaTable env)描述:相当于 lua 的 setfenv 函数。Lua APICS 对象CS.namespace.class(.)描述:新建一个 C#对象实例,例如:local v1=CS.UnityEngine.Vector3(1,1,1) CS.namespace.class
8、.field描述:Pr一个 C#静态成员,例如:(CS.UnityEngine.Vector3.one)CS.namespace.enum.field描述:一个枚举值typeof 函数类似 C#里头的 typeof 关键字,返回一个 Type 对象,比如需要一个 Type 参数,这时可以这么用ponent(typeof(CS.UnityEngine.ParticleSystem)ponent 其中一个重载无符号 64 位支持u64.tostring描述:无符号数转字符串。u64.divide描述:无符号数除法。pare描述:无符号比较,相对返回 0,大于返回正数,小于返回负数。u64.rema
9、inder描述:无符号数取模。u64.parse描述:字符串转无符号数。xlua.structclone描述:克隆一个 c#结构体cast 函数指明以特定的接口对象,这在实现类无法的时候(比如ernal 修饰)很有用,这时可以这么来(假设下面的 calc 对象实现了 C#的 PerformentTest.ICalc 接口):cast(calc, typeof(CS.PerformentTest.ICalc)然后就木有其它 API 了csharp 对象和一个 table 一样,调用函数跟调用 lua 函数一样,也可以通过操作符c#的操作符,下面是一个例子:local v1=CS.UnityEng
10、ine.Vector3(1,1,1) local v2=CS.UnityEngine.Vector3(1,1,1) v1.x = 100v2.y = 100pr(v1, v2)local v3 = v1 + v2prpr pr(v1.x, v2.x) (CS.UnityEngine.Vector3.one)(CS.UnityEngine.Vector3.Distance(v1, v2)类型基本数据类型复杂数据类型LuaTable:C#侧指明从 Lua 侧输入(包括 C#方法的输入参数或者 Lua 方法的返回值)LuaTable 类型,则要求 Lua侧为 table。或者 Lua 侧的 tabl
11、e,在 C#侧未指明类型的情况下转换成 LuaTable。 LuaFunction:C#侧指明从 Lua 侧输入(包括 C#方法的输入参数或者 Lua 方法的返回值)LuaFunction 类型,则要求 Lua 侧为 function。或者 Lua 侧的 function,在 C#侧未指明类型的情况下转换成 LuaFunction。 LuaUserData:对应非 C# Managered 对象的 lua userdata。class 或者 struct 的实例:从 C#传一个 class 或者 struct 的实例,将的成员到 Lua 的 userdata,并通过 index该 userda
12、taC#侧指明从 Lua 侧输入指定类型对象,Lua 侧为该类型实例的 userdata 可以直接使用;如果该指明类型有默认构造函数,Lua 侧是 table 则会自动转换,转换规则是:调用构造函数构造实例,并用 table对应字段转换到 c#对应值后赋值各成员。method, delegate:成员方法以及 delegate 都是对应 lua 侧的函数。C#侧的普通参数以及参数,对应 lua 侧函数参数;C#侧的返回值对应于 Lua 的第一个返回值;引用参数和 out 参数则按序对应于 Lua 的第 2 到第 N 个参数。C#类型Lua 类型LuaTabletableLuaFunctionfuncti
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 舟桥工安全知识宣贯能力考核试卷含答案
- 露天矿物开采辅助工岗前工作能力考核试卷含答案
- 2025-2026学年古诗说课稿《春望》
- 家用电子产品维修工跨界整合竞赛考核试卷含答案
- 2025-2026学年夜莺的歌声说课稿
- 2025-2026学年儿歌与童话说课稿
- 四川省资阳市2025-2026学年八年级上学期11月期中物理试题(含答案)
- 2026年稻谷种植行业市场运行态势报告及未来五至十年第二曲线与持续增长
- 2026年汽车新车零售行业趋势报告及未来五至十年新质生产力与高质量发展
- 档案管理总体方案
- 2026年秋国开电大形势与政策大作业答案
- 吸入性肺炎诊断和治疗中国专家共识(2025版)
- 2026年黑龙江省齐齐哈尔市中考英语试卷附答案
- 2027届新高考语文热点精准复习 古诗鉴赏:+比较鉴赏+知同辨异
- 职场动物进化手册
- 超星尔雅学习通《工程伦理(浙江大学)》2025章节测试答案
- 七年级上册英语阅读还原50题含答案
- 《干部履历表》(1999版电子版)
- 铁路机车车辆驾驶人员(J5类)考试题库大全-上(单选题)
- 生态文明建设理论与实践智慧树知到期末考试答案章节答案2024年东北林业大学
- 三级围岩爆破设计
评论
0/150
提交评论