问题标签 [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 回答
357 浏览

rust - 没有多个按钮系统的多个按钮?

我对 rust 很陌生,对 bevy 也很陌生。我意识到这是早期的日子,并且非常喜欢 bevy,但坦率地说,我发现示例和文档有点缺乏。

我以/examples/ui/button.rs为起点。我想添加一堆按钮,而不仅仅是一个。

我正在寻找一种方法来区分单击了哪个按钮。

我意识到我可以为每个按钮添加一个系统,但这在任何语言中都不是正确的方法。

所以,我开始添加标记(就像 bevy-cheatsheet 建议的那样)。

但是我该如何去检查一个按钮是用什么标记生成的呢?

欢迎任何提示,谢谢!

编辑:现在我很困惑,因为这实际上适用于按钮 1,(但按钮 2 崩溃):

但这甚至没有建立:

这是错误:

0 投票
1 回答
502 浏览

rust - 如何将子代生成到现有组件中?

假设我有这样的事情:

一个带有一两个按钮的 NodeComponents 从启动...

...后来我想从我添加的系统中添加更多按钮:

如何将我生成的实体(组件?)插入我的 NodeComponents.Children?

如何将组件生成到已经存在的组件中?

或者我如何访问 NodeComponents.Children.ChildBuilder?我可以查询 ChildBuilders 吗?

编辑:删除的编辑。

0 投票
1 回答
178 浏览

rust - 将 TaskManager 脚本从 gdscript/Godot 迁移到 bevy 和 rust

我正在构建一个城市建设游戏原型,让村民同时执行许多不同的任务,例如搬运东西、建造、收割,为此我创建了一个带有任务积压数组和活动任务数组的 TaskManager 单例脚本,它可以根据优先级选择哪些任务从积压到活动,运行活动列表中每个任务的相应 run_task() 方法,并在完成后将其删除。我仍在学习 rust 和 bevy,但从我读到的内容来看,我无法像在 godot 中那样在 bevy 中制作单例。在这种情况下我有什么选择?抱歉,如果这不是此类问题的地方,但我很难找到有关与发动机和生锈相关的此类事物的信息。

0 投票
2 回答
1309 浏览

rust - 如何使用 Camera2dComponents 在 Bevy 中将屏幕空间转换为世界空间坐标?

使用Res<Events<CursorMoved>>我可以获得屏幕空间坐标中的鼠标位置变化(左下角为零),例如

现在的问题是,当使用来自sprite的相机时,如果我将SpriteComponents'设置为光标位置,并且位置呈现在屏幕的中心。在屏幕空间鼠标坐标和相机世界空间坐标之间转换的惯用方式是什么?transform.translationCamera2dComponents::default()0, 0

0 投票
0 回答
363 浏览

rust - 如何在 Bevy 中将父实体添加到场景中?

我正在尝试将 ComponentFoo 附加到来自 gltf 文件的整个场景。据我了解,我需要将场景实体放在拥有该 ComponentFoo 的父实体下。

给出以下错误:

正如预期的那样,这也不起作用:

如何获取场景的父实体?还是在列表中遍历该场景的所有实体?gltf加载器似乎在加载场景的根目录添加了一个包含 Transform 的父实体,我怎么能查明它?

0 投票
1 回答
1018 浏览

rust - 如何向场景中生成的实体添加组件?

在具有以下场景文件的Bevymy_scene.scn项目中:

并使用此官方 Bevy 示例之后的源代码:

我想向该实体 0 添加其他组件,例如SpriteComponents. 我如何实现这一目标?

0 投票
0 回答
357 浏览

game-engine - 如何在 Bevy 中操作渲染图

我希望能够获取先前渲染的帧并将其用作当前帧中的采样器。Bevy 存储库中有一组很好的示例代码,向我展示了如何将自定义着色器作为材质应用到网格。但是我想在后处理效果方面做更多的事情,在当前帧中使用前一帧或将前一帧复制到要在当前帧中使用的纹理。

0 投票
1 回答
294 浏览

audio - How can I load all the audio files inside a folder using Bevy?

I'm trying to make a music player where the user can play any audio file inside a folder. To do this, I'm trying to spawn entities containing a Music component and an Sound(Handle<AudioSource>) component. In the Bevy examples, I saw this line of code that seemed to be what I wanted:

Here is the function I wrote:

This code gives a compilation error because song is of the type HandleUntyped. My first idea was to convert HandleUntyped into Handle<AudioSource>. I have to imagine there is some way to do this, or else HanldeUntyped would be pretty useless, but looking through the Bevy docs I can't find any way to do this. Handle::<AudioSource>::from(song) didn't work. I've also considered using the std::fs library to get all the audio files in the directory and load them each individually with Bevy, but the existence of the load_folder method seems to imply that Bevy has a more elegant and simple way of doing this.

0 投票
2 回答
1249 浏览

rust - 二维中的 Bevy 旋转

我正在尝试使用 Bevy 0.3,并且可以轻松使用内置转换Camera2dComponents::default()。这是自上而下的二维。

问题是试图将玩家的旋转同步到鼠标:

在这个变换中,当然是我玩家的变换。这是输出的内容:

我对up2d 中的look_at 中的内容有些困惑,但我尝试了一些不同的值,结果始终相同:只要该look_at 运行,播放器就会从视图中消失。为什么在那之后相机不再看到玩家了,我在这个 look_at 上做错了什么?

谢谢

0 投票
2 回答
1108 浏览

rust - 使用 Bevy 0.4 拖动精灵的可接受方法是什么?

在尝试 Bevy 时,我需要拖放精灵。不幸的是,这似乎不是现成的,或者我没有在文档中找到它。

实现这一目标的最惯用的方法是什么?

到目前为止,我已经尝试过在我的答案中,但我很乐意接受另一种更好/更快/更惯用的解决方案。