问题标签 [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.

0 投票
1 回答
390 浏览

rust - 如何在 bevy 中读取鼠标动作?

我想创建一个第一人称相机。我已经研究了其他几个实现的源代码,比如

https://github.com/mcpar-land/bevy_fly_camera

https://github.com/sburris0/bevy_flycam

但是,当我自己实现它时(主要是复制粘贴 tbh),当在 git 上使用最新的 bevy 版本时,它无法编译。

编译输出:

这是代码:

它只会在最新版本的 bevy 上引发此错误,而不是在 0.4.0 版上。

我做错了什么还是应该在github上打开一个问题,因为这是引擎的错?

我必须做些什么才能让它发挥作用?

0 投票
1 回答
333 浏览

rust - 在 Bevy 中派生捆绑包时如何扩展嵌套捆绑包?

此示例中,提供了以下代码。

但是,最新版本中似乎缺少#[bundle] 标签。有没有办法在 0.4.0 中提供类似的功能?我知道我可以使用“commands.with”和“commands.with_bundle”,但我看不到“spawn_batch”的替代方案,而无需手动平展结构以组合捆绑包。

0 投票
1 回答
765 浏览

bevy - 如何在 bevy 0.5.0 中消除使用 commands.spawn_bundle() 生成的实体

这是一个非常简单的问题。我已经重写了我的代码以使用新版本的 bevy 附带的语法和其他更改。

编译时似乎一切正常,除了实体的消失。

我在上述实体中生成,例如:

但我无法像这样消失它:

它返回:

我必须做些什么才能让它发挥作用?

0 投票
1 回答
782 浏览

rust - 如何在 Bevy 中任意移动用户输入的相机

我使用 Camera2dBundle 将精灵和背景导入到我正在设置的场景中。但我不确定如何独立于精灵移动来移动相机。基本上我不希望相机跟随玩家。无论用户输入如何,我都希望它不断向一个方向移动。我试过了:

然而,这会移动玩家的 x 位置

我看到变换是由这些项目组成的:

这是我接受用户输入的方式:

有一个更好的方法吗?我可以添加要转换的项目吗?或者我可以进行哪些修改?

0 投票
1 回答
671 浏览

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,以便将文本呈现为固定覆盖?

这两个版本的完整代码可以在 Github 上找到(0.4.0) 和这里(0.5.0)。

0 投票
1 回答
131 浏览

rust - Bevy 0.5:在列中排列文本

我正在尝试使用此代码将一个文本放在另一个文本之上

到目前为止它有效,但不幸的是,尽管我尝试了所有选项,但 HELLO 与 WORLD 的距离太远了align_content,我怎样才能让 HELLO 就在 WORLD 之上?

由于stackoverflow关于代码文本比率的愚蠢政策,我被迫在我的帖子中写无用的文本,以便我可以发布它。
呜呜呜
_
_

0 投票
0 回答
126 浏览

dll - DLL 查找在应用程序加载时失败

我正在尝试按照bevy 的教程在 Windows 10 (21H1) x64 上设置所有内容。设置有点工作。我做了以下构建优化(来自 bevy 的教程):

  1. bevy的动态链接功能
  2. 切换到 LLD 链接器
  3. 每晚切换到最新的 rust
  4. 禁用共享泛型(因为这个问题

我的货物.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,这让我想知道为什么它一开始就在那里。

我的问题是:

  1. 为什么cargo run在加载时链接时使用额外的查找目录?
  2. 为什么程序搜索bevy_dylib-d54840081e5b3869.dll而不是bevy_dylib.dll
  3. 如果没有一些手动复制 dll 的讨厌的后期构建任务,这是否可以修复?
0 投票
0 回答
186 浏览

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

0 投票
0 回答
115 浏览

rust - 如何独立于渲染引擎运行系统

我想尽可能多地运行一个系统,独立于所有其他系统,可能在它自己的线程中。这支持吗?

0 投票
1 回答
1286 浏览

bevy - 获取实体的所有组件

是否可以通过使实体处于生锈状态来获取组件列表?例如用于调试目的。

bevy 的 ecs 如何了解某个 Queue 需要启动哪些系统。在 World 中,组件在某种程度上与实体相关,对吗?是否有可能从外部以某种方式追踪这种联系?我真的很喜欢它的工作原理,对我来说它看起来很神奇,但我想了解“幕后”发生的事情