ialex32x / unity-jsb

It brings Javascript runtime capability to Unity3D by integrating QuickJS.
MIT License
337 stars 41 forks source link

非常看好这个项目 #18

Closed alimwang closed 2 years ago

alimwang commented 3 years ago

有点点不敢上手的原因是调试问题怎么解决? puerts的v8调试体验非常不错的,unity-jsb准备什么时候支持调试呢?

ialex32x commented 3 years ago

这确实是个大问题,Fabrice大神还没有放出正式的API支持,只有第三方的修改支持,我现在是这么考虑的,QuickJS自身迭代速度算比较快的,如果通过第三方修改支持调试,每次的代码合并会是一个比较头疼的事情(unity-jsb 对源码也有少量调整),另外因为 unity-jsb 自身功能还有很多地方需要进一步完善、补充和优化,所以目前倾向于等待正式API支持。 除此之外可能的一个方案是同时支持V8,写一层 C/C++ 把V8包装出一组近似的API,在主要的平台比如Windows、Android上使用V8版本。今天看过一点,评估了一下,量不小,应该也会花较长时间。

这段时间主要精力是实现代码的热加载(初步实现,还需要完善)、在脚本层提供更多编辑器功能接管能力(目前初步支持 EditorWindow,比较头疼的问题是 C# Reload 会导致JS运行时被迫销毁,而让所有脚本创建的窗口完全失效)。

ChrisPei commented 3 years ago

这个项目有点意思。最近想开坑自己整个独立游戏,目前工作又是ts全栈。既然从0开始,打算试试这个项目。

ialex32x commented 3 years ago

加油~ 自己搞的项目还是可以试试的,虽然易用性上还欠缺一点(特别是要导出代码这点),逐步完善。V8的切换在搞了。

ChrisPei commented 3 years ago

V8在开发时用来Debug和Profiling,QuickJS作为iOS的Runtime这个思路也是不错呢。

ialex32x commented 2 years ago

初步支持了v8运行时以及devtools远程调试。可以在菜单 JS Bridge > Stats Viewer 中切换 quickjs/v8 运行时。 PS:API 中间层消耗比较大,所以目前v8运行时下脚本运行效率偏低。