问题标签 [bevy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
rust - 如何在 bevy 中读取鼠标动作?
我想创建一个第一人称相机。我已经研究了其他几个实现的源代码,比如
https://github.com/mcpar-land/bevy_fly_camera
https://github.com/sburris0/bevy_flycam
但是,当我自己实现它时(主要是复制粘贴 tbh),当在 git 上使用最新的 bevy 版本时,它无法编译。
编译输出:
这是代码:
它只会在最新版本的 bevy 上引发此错误,而不是在 0.4.0 版上。
我做错了什么还是应该在github上打开一个问题,因为这是引擎的错?
我必须做些什么才能让它发挥作用?
rust - 在 Bevy 中派生捆绑包时如何扩展嵌套捆绑包?
在此示例中,提供了以下代码。
但是,最新版本中似乎缺少#[bundle] 标签。有没有办法在 0.4.0 中提供类似的功能?我知道我可以使用“commands.with”和“commands.with_bundle”,但我看不到“spawn_batch”的替代方案,而无需手动平展结构以组合捆绑包。
bevy - 如何在 bevy 0.5.0 中消除使用 commands.spawn_bundle() 生成的实体
这是一个非常简单的问题。我已经重写了我的代码以使用新版本的 bevy 附带的语法和其他更改。
编译时似乎一切正常,除了实体的消失。
我在上述实体中生成,例如:
但我无法像这样消失它:
它返回:
我必须做些什么才能让它发挥作用?
rust - 如何在 Bevy 中任意移动用户输入的相机
我使用 Camera2dBundle 将精灵和背景导入到我正在设置的场景中。但我不确定如何独立于精灵移动来移动相机。基本上我不希望相机跟随玩家。无论用户输入如何,我都希望它不断向一个方向移动。我试过了:
然而,这会移动玩家的 x 位置
我看到变换是由这些项目组成的:
这是我接受用户输入的方式:
有一个更好的方法吗?我可以添加要转换的项目吗?或者我可以进行哪些修改?
rust - 如何在 bevy 0.5.0 中使用多个摄像头?
我有一个简单的bevy
测试应用程序,它在左上角显示一组立方体和一个 FPS 计数器。3d 场景可以缩放和旋转。
我最近尝试将以下代码升级到bevy = 0.5.0
.
旧代码块 ( bevy = 0.4.0
):
我在一个单独的相机中生成它的原因TextBundle
是我希望它是静止的并且不对任何相机变换做出反应。
我试图bevy = 0.5.0
像这样复制这种行为:
一切都再次按预期工作,除了 FPS 文本不再位于窗口的左上角,现在也像场景中的立方体一样旋转和缩放(我不想发生这种情况)。
如何复制中的旧行为bevy = 0.5.0
,以便将文本呈现为固定覆盖?
rust - Bevy 0.5:在列中排列文本
我正在尝试使用此代码将一个文本放在另一个文本之上
到目前为止它有效,但不幸的是,尽管我尝试了所有选项,但 HELLO 与 WORLD 的距离太远了align_content
,我怎样才能让 HELLO 就在 WORLD 之上?
由于stackoverflow关于代码文本比率的愚蠢政策,我被迫在我的帖子中写无用的文本,以便我可以发布它。
呜呜呜
_
_
dll - DLL 查找在应用程序加载时失败
我正在尝试按照bevy 的教程在 Windows 10 (21H1) x64 上设置所有内容。设置有点工作。我做了以下构建优化(来自 bevy 的教程):
- bevy的动态链接功能
- 切换到 LLD 链接器
- 每晚切换到最新的 rust
- 禁用共享泛型(因为这个问题)
我的货物.toml
我的 main.rs(迄今为止唯一的代码文件):
我的 .cargo/config.toml:
构建我的应用程序后,目标/调试/看起来像这样(我删除了一些条目):
我可以通过命令使用 cargo 构建和运行应用程序cargo run --features bevy/dynamic
。程序打印“hello”,正常存在。但是,如果我从终端(在我的情况下为 powershell)运行程序,则不会打印任何内容,并且程序存在且没有错误代码。看到 lldb 也因“未知错误”而崩溃,我继续使用procmon仔细查看。
cargo run
对比.\foo.exe
使用cargo run --features bevy/dynamic
工作正常,但.\foo.exe
(直接从 powershell 运行)失败且没有错误。Procmon 显示.\foo.exe
尝试加载不同的 dll,它搜索bevy_dylib-d54840081e5b3869.dll
而不是bevy_dylib.dll
. 这显然失败了,因为该文件不存在,因此程序甚至在到达main()
.
但是为什么会cargo run --features bevy/dynamic
起作用呢?好吧,事实证明程序仍然尝试加载bevy_dylib-d54840081e5b3869.dll
,但是这次加载器查找不同的路径。还有一个额外的搜索路径:{my_project}/target/debug/deps/
. 该目录实际上有一个具有该确切名称的dll,然后加载该dll,程序可以正常执行。所以事实证明,我们甚至从未尝试使用 dll target/debug/bevy_dylib.dll
,这让我想知道为什么它一开始就在那里。
我的问题是:
- 为什么
cargo run
在加载时链接时使用额外的查找目录? - 为什么程序搜索
bevy_dylib-d54840081e5b3869.dll
而不是bevy_dylib.dll
? - 如果没有一些手动复制 dll 的讨厌的后期构建任务,这是否可以修复?
rust - 当通过“include_str!”包含游戏时,着色器会导致游戏崩溃。(贝维)
我从https://github.com/bevyengine/bevy/blob/main/examples/shader/shader_custom_material.rs复制粘贴了着色器示例,效果很好。但是,我想将着色器放在它们自己的文件中,因此我不需要将它们内联在 rust 脚本中。
我尝试使用include_str!
将着色器文件包含为字符串,我认为这与在原始字符串文字中包含着色器相同,但是现在运行游戏时会发生此错误:
我正在使用 bevy 0.5,所有代码都在https://gist.github.com/teevik/e7f419231a529e777d20ace06cac80b7
rust - 如何独立于渲染引擎运行系统
我想尽可能多地运行一个系统,独立于所有其他系统,可能在它自己的线程中。这支持吗?
bevy - 获取实体的所有组件
是否可以通过使实体处于生锈状态来获取组件列表?例如用于调试目的。
bevy 的 ecs 如何了解某个 Queue 需要启动哪些系统。在 World 中,组件在某种程度上与实体相关,对吗?是否有可能从外部以某种方式追踪这种联系?我真的很喜欢它的工作原理,对我来说它看起来很神奇,但我想了解“幕后”发生的事情