视频教程地址 http://pan.baidu.com/s/1gd8fG4N
游戏框架地址 https://github.com/jarjin
游戏案例地址 http://www.ulua.org/showcase.htmlhtml
视频教程地址 http://pan.baidu.com/s/1gd8fG4N
游戏框架地址 https://github.com/jarjin
游戏案例地址 http://www.ulua.org/showcase.htmlhtml
ulua群里的一些资料,转过来方面查看android
ulua学习顺序。请根据自身了解的知识入座。 初级:SimpleFramework框架 中级:ulua插件、cstolua 高级:底层库编译。 框架的角色定位分为2种, 第一种,对于有框架的大厂,它就是个使用ulua+cstolua的一个比较完整的demo。 第二种,对于没有框架的同窗,能够本身基于它修改、扩展。 wrap就是c#类提供给lua用的接口文件ios
attempt to index global 'System' (a nil) 刚下载后,须要作两步操做 (1)Lua/Gen lua wrap files 生成wrap (2)Game/Build Bundle Resource(NGUI版) 生成资源 Game/Build AssetBundles (UGUI版) 生成资源git
关于unknow lua error lua文件编码问题处理 若是lua文件中保护中文注释等信息,文件保存为utf8-bom,若是怕麻烦干脆把中文去掉,而后保存成utf8便可解决问题。github
unprotected error in call to Lua API LuaInterface.LuaException: unprotected error in call to Lua API (Loader file failed: game) 检查Lua变量是否是少了local关键字.或者关掉变量检查strict.lua,在Golbal.lua中注释掉require "strict"c#
mac下编译工程找不到lua.h办法 删除ulua/Source目录,retry~windows
ulua底层库&Mingw编译工具下载,百度网盘 下载地址:http://pan.baidu.com/s/1gd1Wyx9 ulua已经所有开源,大家能够定制本身须要的库,mac、ios是luavm,须要xcode6.0以上,安卓须要ndk 8,windows下编译工具mingw32/64。我是放在api
D盘根目录: 32位:D:\MinGW\x86\msys\1.0\msys.bat 64位:D:\MinGW\x64\msys\1.0\msys.bat 真正的安卓版的编译文件在这个下面:Source\android\jnixcode
ulua资料位置 NGUI版、UGUI版、WINPHONE版框架地址: http://www.ulua.org/simpleframework.html 最完整的文档注解:群共享里面SimpleFramework_v0.2.7注解 - 完整版服务器
_luaopen_pack, referenced from: "错误 "_luaopen_pack", referenced from: "_lua_tocbuffer", referenced from: 去掉LuaDLL.cs中报错函数声明,及其相关报错代码便可.
lua关系 ulua -》很早老外基于luainterface作的一个unity版lua绑定 luajit-》一个jit版本的luavm cstolua-》最初基于ulua,如今优化的很棒和ulua关联已很少的一个基于静态导出的lua绑定
游戏已经开发到后期,如何接入ulua? (1)活动 (2)计时器(单位秒)驱动lua的update (3)网络管理留给lua能跟服务器交互的接口(如今未必用获得的)。活动这部分变数最大,不少问题上线前是没法预知的,好比上线若是发生数据
不理想,或者很是火爆,这些状况没法预知,根据这些状况作活动调整,这些很容易有更新需求。并且未必前期都能想到坐进去。运营策划都是要根
据在线运营状况作未知的活动调整。还有一部分我称之为,程序给本身留的后路,若是绝大部分都是c#的话,颇有可能产生上线后产生bug,好比:
新手引导,在什么地方卡住了等。客户端启动一个计时器,驱动lua的一个onTimer,在里面根据游戏运行状况,动态调整对游戏的控制。还有就是多
给本身留一个协议的接口给lua备份用。
Unity手游究竟有无必要作代码热更新 Unity热更新的必要性:(开发期)减小手游打包次数,大大缩短开发周期,提高程序调试效率。(运营期)减小大版本更新次数,能够减小用户流
失,抱怨,提升留存,付费等。
simpleframework 下载运行崩溃办法 由于开发期不知道你们Unity版本,为了减小错误,wrap文件在发布的时候都被clear掉了,因此当你们一开始下载运行的时候,这部分是缺乏的,需
要单击菜单Lua/Gen Lua Wrap Files。另外资源文件也须要根据本身的版本从新生成。操做步骤:(1)单击菜单Lua/Gen Lua Wrap Files。(2)单击
Game/Build Bundle Resource。
simpleframework百度网盘下载地址 若是群共享与ulua.org上下载不下来,请到百度网盘备份http://yun.baidu.com/s/1jGzN78q#path=%252FSimpleFramework
GUI 的Prefab损坏解决办法 把GUI.zip,解压,,替换.GUI下面的摄像机视野改为everything,Tag 改为 GuiCamera,GUI的所在层 改为default. 估计丢失缘由是由于我来回切换
Unity版本所致。用上面办法解决便可。
手动从新生成wrap文件方法 删除Source/LuaWrap/下面的cs文件,Base目录及其下面文件千万别删,而后清除报错代码便可. 而后单击Lua/Gen LuaBinding Files生成新的wrap
文件便可
U5不推荐使用NGUI的缘由 u5的新格式打包,ngui不支持,做者也不许备修复(让我高兴,本身改),老的打包函数又被标记丢弃,怎么看都有被抛弃的可能,再转可能就有很
大风险。因此新的项目推荐使用UGUI,框架已经有UGUI+U5新打包版本,地址:http://ulua.org/simpleframework.html 不支持部分:新版assetbundle中的prefab不能有拖拽脚本,NGUI里面哪一个组建没有这个atlas拖拽脚本?没人本身愿意修改每一个组建的atlas变成
GameObject吧???
苹果新政禁止开发者加入检查更新功能办法 主要停留在审核期,在服务器设定一个开关,审核期把检查更新功能关闭,审核期过了,再打开便可。
修改lua代码调用路径 若是使用Simpleframework框架的话,lua代码文件的位置在Util.cs类的LuaPath函数里面指定。
打印不出中文的bug 修改lua.cs, 搜索encoding.default , 改为utf8.
object contains non-primitive or xxx object contains non-primitive or non-blittable data的错误,这个是iOS il2cpp运行bug,请参考 http://ulua.org/simpleframework.html
SimpleFramework_v0.2.0 Patch1 补丁进行修改升级。
LuaWrap/xxxWrap.cs does nontain for ‘xx’ Assets/Source/LuaWrap/xxxWrap.cs(218,21): error CS1061: Type `UnityEngine.xxx' does not contain a definition for `xxx' and no
extension method `xxx' of type `UnityEngine.xxx' could be found (are you missing a using directive or an assembly reference?) 编译
错误解决方案:由于unity不一样平台版本api各不相同,所以不是特别统一,遇到此问题直接删除错误代码便可。
ulua(安卓+ios),nlua(windows phone) ulua包含两种c模式(luajit版+原生luavm版),加之tolua c#提供了直接访问渠道。因此追求效率的,请选用ulua。可是ulua由于底层使用luajit
,而luajit目前不能在WP平台使用,因此若是ulua支持WP平台须要第二种原生luavm的底层库。 nlua包含2种模式(KeraLua c版本)(KopiLua c#版本),它支持全平台,由于c版本底层用的原始的luavm(非luajit)。可是缺乏tolua c#的支持
,所以效率略低于ulua,可是支持WP平台(其余平台也支持)。
DllNotFoundException: ulua解决方案 (1)将plugins目录放到最外面,重启unity。 (2)缺失VC++ 2012 Runtime。 (3)mac运行期,不用选项ios平台。生成真机再选ios。 (4)真机没有打包libulua.so进包致使,或者模拟器也有些设置不对。打包的时候把libulua.so打包进libs\armeabi-v7a
LuaStudio 调试卡死 控制面板->用户帐户->更改用户帐户控制设置面板->始终通知 改成从不通知
attempt to index global 'UnityEngine' uaScriptException: [string "define.lua"]:1: attempt to index global 'UnityEngine' (a nil value) 解决:生成wrap文件。
EntryPointNotFoundException: 解决方案 EntryPointNotFoundException:这个类型错误不太单一,可选择下面2中方法解决:(方案1)把除了Assets跟ProjectSettings目录以外的都删除掉,
从新打开工程。 (方案2)若是在MAC上,选择IOS平台,很容易出现,切换到MAC/PC平台基本上就解决了,你不能要求在MAC下必定要运行IOS的动态库。
LuaStudio,请使用Administrator管理员权限,不然会挂死!!!
lua中用UIButton.current 肯定单击哪一个按钮