浏览器中Bevy应用JS侧操作实体及运行阻塞问题求助
在浏览器Bevy应用中通过JS/TS创建/销毁实体的可行性及问题
核心需求
能否在运行于浏览器的Bevy应用中,通过JS/TS代码实现创建或销毁Bevy世界实体的功能?
已尝试方案及问题
直接操作App实例的问题
我曾通过let app=App::new();创建应用,绑定函数执行app.run();启动应用,同时绑定了一个通过app.insert_resource(...);覆盖资源的函数。但在应用运行后调用该函数时,出现错误:recursive use of an object detected which would lead to unsafe aliasing in rust使用Arc更新资源前的阻塞问题
感谢@kmdreko的建议尝试用Arc更新资源,但遇到了新问题:初始化Bevy应用后,后续代码完全无法执行。相关代码如下:<script type="module"> import init, {BevyApp} from '../pkg/wasm_bevy_demo.js'; init().then(() => { // new() 函数创建并运行Bevy应用,返回包含Arc<Mutex>的BevyApp实例 const bevyCode = BevyApp.new(); // 这段日志从未在控制台输出 console.log("reach after run bevy app"); bevyCode.update_scroll_rate(10, 10); }) </script>
内容的提问来源于stack exchange,提问作者Elase Huang
相关产品推荐
相关产品推荐

