ULua 基础介绍

1.SimpleFramework 框架介绍 ①ULua 集成开发环境叫做:SimpleFramework,最新版是0.4.1。 ②SimpleFramework 分为两个版本: NGUI 版和UGUI 版,区别是NGUI 版本的框架资源中含有NGUI 这个插件。 ③SimpleFramework 本身不是Unitypackage 格式,而是一个Unity3D的项目工程,也就是说,我们可以用Unity 直接打开这个项目工程。 [

](http://www.wjgbaby.com/wp-content/uploads/2017/11/17110101-300x47.png)
](http://www.wjgbaby.com/wp-content/uploads/2017/11/17110101-300x47.png)
2.SimpleFramework 和ULua的关系: SimpleFramework > ULua > Lua ULua 是对原生Lua 环境进行了一次“包装”,用于满足Unity 环境下的热更新需求。为了更方便的使用,于是又对ULua 进行“二次包装”,包装成了一个框架:SimpleFramework。

框架资源结构

1.六个根文件夹 ①Examples:SimpleFramework 热更新案例; ②Lua:SimpleFramework 框架自带的Lua 源码文件; ③NGUI:NGUI3.8.2,当你需用更高版本的NGUI 时,替换即可,不需要碰; ④Plugins:uLua 运行所依赖的底层库文件,不需要碰; ⑤Scripts:SimpleFramework 自带的C#脚本文件; ⑥uLua:uLua 全部代码。 [

](http://www.wjgbaby.com/wp-content/uploads/2017/11/17110102-300x207.png)](http://www.wjgbaby.com/wp-content/uploads/2017/11/17110102.png)**2.框架自带菜单命令** Lua 菜单:uLua 环境相关处理命令; Game 菜单:用于打包不同平台的AssetBundle 文件。 [![](http://www.wjgbaby.com/wp-content/uploads/2017/11/17110104-300x215.jpg)](http://www.wjgbaby.com/wp-content/uploads/2017/11/17110104.jpg) **3.框架使用步骤** **<1>Lua-->Gen Lua Wrap File [生成Wrap 文件(必备操作)]** 该命令用于生成“Lua 包装文件”,存放在uLua\Source\LuaWrap 目录下。该文件夹下全部是C#脚本,这些脚本文件的名称特点是:脚本名+ Wrap; **Wrap 文件介绍:** 该文件夹下的脚本对Unity 内常用组件脚本的二次包装,Lua 环境运行后,会把这些Wrap 文件加载到Lua 运行环境(Lua 虚拟机)中,最终的效果就是:Lua 调用Wrap 文件,Wrap 文件调用C#,来实现Lua 调用C#。生成Wrap 文件的目的是为了提高Lua 的执行效率。 **<2>Game-->Build xxxx [生成不同平台的AssetBundle 资源(必备操作)]** Game-->Build Windows Resource 生成Windows 平台下的AB 文件。生成后的AB 会存放到StreamingAssets 文件夹下。在生成的过程中同时还会把Lua 文件夹下的所有脚本拷贝到该目录,存放到lua 文件夹下。 **4.Lua 文件夹结构分析** SimpleFramework 框架自带的Lua 源码文件。 ①3rd:第三方的Lua 脚本插件; ②Common:公共Lua 文件目录; ③Controller:控制器目录; ④Logic:管理器目录; ⑤System:cstolua 的系统目录; ⑥View:视图层目录。 备注: 这些文件夹中的Lua 脚本如果直接使用SciTE 打开,脚本中的中文注释是乱 码状态,可以使用NotePad++打开,中文就不会出现乱码。 我们自己写的Lua 脚本也是存放在Lua 文件夹中。 [![](http://www.wjgbaby.com/wp-content/uploads/2017/11/17110103-300x200.png)
](http://www.wjgbaby.com/wp-content/uploads/2017/11/17110102-300x207.png)](http://www.wjgbaby.com/wp-content/uploads/2017/11/17110102.png)**2.框架自带菜单命令** Lua 菜单:uLua 环境相关处理命令; Game 菜单:用于打包不同平台的AssetBundle 文件。 [![](http://www.wjgbaby.com/wp-content/uploads/2017/11/17110104-300x215.jpg)](http://www.wjgbaby.com/wp-content/uploads/2017/11/17110104.jpg) **3.框架使用步骤** **<1>Lua-->Gen Lua Wrap File [生成Wrap 文件(必备操作)]** 该命令用于生成“Lua 包装文件”,存放在uLua\Source\LuaWrap 目录下。该文件夹下全部是C#脚本,这些脚本文件的名称特点是:脚本名+ Wrap; **Wrap 文件介绍:** 该文件夹下的脚本对Unity 内常用组件脚本的二次包装,Lua 环境运行后,会把这些Wrap 文件加载到Lua 运行环境(Lua 虚拟机)中,最终的效果就是:Lua 调用Wrap 文件,Wrap 文件调用C#,来实现Lua 调用C#。生成Wrap 文件的目的是为了提高Lua 的执行效率。 **<2>Game-->Build xxxx [生成不同平台的AssetBundle 资源(必备操作)]** Game-->Build Windows Resource 生成Windows 平台下的AB 文件。生成后的AB 会存放到StreamingAssets 文件夹下。在生成的过程中同时还会把Lua 文件夹下的所有脚本拷贝到该目录,存放到lua 文件夹下。 **4.Lua 文件夹结构分析** SimpleFramework 框架自带的Lua 源码文件。 ①3rd:第三方的Lua 脚本插件; ②Common:公共Lua 文件目录; ③Controller:控制器目录; ④Logic:管理器目录; ⑤System:cstolua 的系统目录; ⑥View:视图层目录。 备注: 这些文件夹中的Lua 脚本如果直接使用SciTE 打开,脚本中的中文注释是乱 码状态,可以使用NotePad++打开,中文就不会出现乱码。 我们自己写的Lua 脚本也是存放在Lua 文件夹中。 [![](http://www.wjgbaby.com/wp-content/uploads/2017/11/17110103-300x200.png)