Unity3D——将Unity中自定义的类映射到Lua中来调用
来源:互联网 发布:mysql数据库压力测试 编辑:程序博客网 时间:2024/06/14 10:42
众所周知,Unity3D游戏的热更新在IOS平台需要使用Lua语言,虽然效率低于C#的实现,但也是没有办法的办法;现在网上比较流行的是一个基于ToLua的LuaFramework的框架,对于这个框架,网上教程资源比较多,下面就说一下自定义类乃至自定义扩展的内容如何映射到lua中,进而使用。
官网文档地址:http://doc.ulua.org/default.asp
官网框架下载地址:https://github.com/jarjin/LuaFramework_UGUI
本文以映射自定义类MyClass.cs为例
打开框架后,新建场景
一、创建脚本MyClass.cs如下,名字空间使用“ZHF”
using System;using System.Collections;namespace ZHF { public class MyClass { public const bool Zhang = false; }}
二、在Project面板的Assets->LuaFramework->ToLua->Source->Generate目录下新建脚本,名字为ZHF_MyClassWrap.cs,
内容如下所示
using System;using LuaInterface;using ZHF;public class ZHF_MyClassWrap { public static void Register(LuaState L) { L.BeginClass(typeof(ZHF.MyClass), typeof(System.Object)); L.RegFunction("Display", Display); L.RegConstant("Zhang", 23333); L.EndClass(); } [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] static int Display(IntPtr L) { try { ToLua.Push(L, "sad"); return 1; } catch (Exception e) { return LuaDLL.toluaL_exception(L, e); } }}
在相同目录下面找到LuaBinder.cs,打开并导入刚刚新建的名字空间“ZHF”,并在Bind函数中加入如下代码:
保存上面的之后然后分别依次点击下面1、2两个框
三、待以上编译完成之后,就开始测试部分了
(1)按照以往的习惯,新建一个测试的脚本,挂载在场景中的一个空物体上,脚本如下所示:
(2)lua脚本内容已经存放位置如下所示,脚本名字是LuaTest.lua:
LuaTest.lua存放路径(注意这里和C#的测试脚本的路径对应)
四、运行
end
0 0
- Unity3D——将Unity中自定义的类映射到Lua中来调用
- Unity3D——将Unity中自定义的类映射到Lua中来调用
- lua脚本调用cocos2dx项目中自定义的C++类
- 使用addScala将SQLQuery自定义查询映射到pojo中
- JDBC:数据库自定义类型与Java类的映射—将对象存储在关系数据库中(一)
- JDBC:数据库自定义类型与Java类的映射—将对象存储在关系数据库中(二)
- Unity教程之-解析OBJ模型并将其加载到Unity3d场景中
- 将Unity3D导出的项目集成到iOS主程序中
- cocos2d-x 3.0 在lua中调用自定义类
- Hibernate之使用sql语句查询多个表,返回多种字段,将返回结果映射到自定义的普通pojo类中
- Unity3d中使用Lua
- 将MySQL数据映射到Memcached中
- 将MySQL数据映射到Memcached中
- 将MySQL数据映射到Memcached中
- 将MySQL数据映射到Memcached中
- 将Go函数导入Lua中供lua调用
- 将Go函数导入Lua中供lua调用
- CC3.2+Lua ——Lua调用自定义C++类
- Highcharts
- 关于linux环境下配置solr6.3.0的welcome-file-list标签不生效问题解决办法
- 2016-12-7-无限极分类在栏目动态分配中的应用
- 数据库深入学习笔记
- 设计模式-结构性模式:适配器模式 Adapter
- Unity3D——将Unity中自定义的类映射到Lua中来调用
- 关于优酷开发sdkdemo的布局
- jquery.fileupload上传图片
- 如何利用API导出带有页眉页脚的excel
- SDL_BuildAudioCVT函数
- python文件读取:从任意位置读取任意长度数据
- 集合(hash)
- JAVA查询文件是否存在,判断
- android AnimationDrawable动画