Git Product home page Git Product logo

zerobranestudio_unity_tolua's Introduction

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需要做那么多工作,配置下就可以满足了。跳转链接

zerobranestudio_unity_tolua's People

Contributors

githzz avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.