chexiongsheng
chexiongsheng
你描述的是卸载模块后重新加载。一般来说数据是丢失的。 而v8提供的live edit功能和你说的不太一样,如果这功能能生效,是不影响到数据,包括一些闭包变量都不会影响。
live edit是v8的功能,通过cdt工具连接后,无论是v8还是nodejs都可以用(cdt上修改保存即可)。 而本地文件监听并重加载,在unity下只支持nodejs我猜是nodejs提供了文件相关的api。 而在puerts for ue版本,由于使用的是ue的文件读取,所以v8和nodejs都支持。
实测在android下跨动态库抛c++异常是必崩的,这也是为啥官方版本发布的静态库的原因。 我查到这个:https://stackoverflow.com/questions/5107948/throwing-c-exceptions-across-dll-boundaries 有可能是我们编译plugin和你打包apk用的编译器和参数不一样导致,你可以试试自行编译一个。 如果不行,建议切换回静态。如果静态库用不了(某些项目反馈),那可能得用回普通版本的puerts了。
你试试降下vscode版本。 本来也不复杂,都是直接连而已。 你这搞不定,只是最近vscode的bug而已。
> 试过1.70.2, 1.82.3都不行,表现上还是能显示log,不能断点 我个人是比较喜欢WebStorm的,WS能调试就行了 貌似是vscode插件的问题,如果是插件问题,vscode版本改变也解决不了。
安装下依赖,项目根目录执行: npm install .
那是一个内部项目提交的例子 我看了下,大概思路是那个wasm并不直接include UE的类,只是封装个wrapper,比如FVector的wrapper ```c++ struct FVector { float X, Y, Z; FRotator Rotation() const; }; extern "C" FRotator FVector_Rotation(const FVector& InVector); //这个外部函数会由原生实现并赋值给wasm //这只是简单调用下外部函数 FRotator FVector::Rotation() const { return FVector_Rotation(*this); }...
能用问题就不大,这个只是在Editor下使用,用来标示资源。
最好提交到[puerts](https://github.com/Tencent/puerts)那,这里只是demo。