Skip to content

ZeroBraneStudio来开发unity(tolua)项目(extends ZeroBraneStudio to develop unity lua(tolua) project)

Notifications You must be signed in to change notification settings

GITHZZ/ZeroBraneStudio_Unity_toLua

Repository files navigation

ZeroBraneStudio_Unity

目前项目中使用到lua来做Unity项目(我想现在应该项目基本都用lua了),当时可以选择的调试可视化编辑器有两个

  • LuaStudio  
  • ZeroBraneStudio  

首先先不谈是否付费(LuaStudio好像是要付费的),我选择后者原因主要有两个

  • 因为有Mac版(搞iOS版本需要,并且本人主要是Mac下开发)  
  • 因为开源

下面链接是ZeroBraneStudio原来的github地址:https://github.com/pkulchenko/ZeroBraneStudio 本人抽取了其中一个版本作为修改
本来是打算直接Fork的,但是个人意图还是在原有的框架下扩展,尽可能的不去动源码(除了mobdebug.lua这个文件),所以就自己download了一个版本做扩展, 还有本来打算只上传扩展部分,想想还不如全部丢上来了还省事

如果用原生的ZeroBraneStudio来直接用,会很蛋疼,撇开终止调试后unity直接帮你退掉的问题之外,还有断点如果遇到协程就继续走不下去(这个官方有解决方案,而且这个不是编辑器的问题,如果我没理解错的话,理论上lua调试接口本身就有这个局限性) 还有堆栈信息会丢失报错等等问题,其余的体验也有点蛋疼,导致你会有种还不如直接sublimetext的感觉。

不过个人当时看了下它的代码流程,其实是相当清晰的,个人感觉就是一个舒服形容,这也是让我有种冲动去改造它的原因。(其实随便改造并不好,还是扩展为主,扩展自己需要的东西)

其实项目中我已经改的七七八八了,基本能顺利调试,但是有些细节体验需要优化而已,然而那时候改的太high 忘了内网这东西(哭),所以只能有空在我Mac上再重新搞一个了 (不过以前弄得都基本通过改源码的,而且还比较乱,也是个机会吧)

还有这个demo里面面向对象用到的是middleclass 项目链接 所以很多东西可能细节上不一样 不过我这个主要是分享思路而已

lua的话就是用tolua 这个应该都知道是啥的了

修改点如下:

  • 首先新增自定义语法生成 packages/CustomApiCreater.lua 作用是生成自定义语法 目的是为了跨文件代码提示
  • 修改逻辑(mobdebug.lua),退出调试不把unity编辑器关掉(默认是会自动关掉)
  • 还有就是保存时候会自动检测语法(默认需要手动调用)  
  • 新增api文件差异比较,如果改方法已被写入,那么不会重新写,如果是新的方法,就往后写入。项目内容多了之后写入内容太多导致写入时间过长,因此加了差异比较。
  • 新增定时清理,因为差异比较是只增不删,所以导致一些无用的提示会出现。这里新增了一个定时,时间到了会清理一次并全部重新写入。
  • 将所有配置模块整合到user.lua中,包括自定义新增的配置,如定时清理间隔时间。

  • 后面慢慢填坑,还有它这编辑器断点出现报错那些后面好了再提交吧,总之这个编辑器对unity(Tolua)兼容并不是很友好,虽然它本来就没有这个平台支持就是了。
  • 旧项目稍微用了下Xlua,不过不像tolua需要做那么多工作,配置下就可以满足了。跳转链接

About

ZeroBraneStudio来开发unity(tolua)项目(extends ZeroBraneStudio to develop unity lua(tolua) project)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published