- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想创建一个第一人称相机。
我已经研究了其他几个实现的源代码,比如
https://github.com/mcpar-land/bevy_fly_camera
https://github.com/sburris0/bevy_flycam
但是当我自己实现它时(主要是复制粘贴 tbh),当在 git 上使用最新的 bevy 版本时,它无法编译。
编译输出:
error[E0277]: `*mut (usize, PhantomData<MouseMotion>)` cannot be sent between threads safely
--> src/player_input.rs:151:13
|
151 | mut state: ResMut<State>,
| ^^^^^^^^^^^^^ `*mut (usize, PhantomData<MouseMotion>)` cannot be sent between threads safely
|
::: /home/luca/.cargo/git/checkouts/bevy-f7ffde730c324c74/89a41bc/crates/bevy_ecs/src/resource/resource_query.rs:66:26
|
66 | pub struct ResMut<'a, T: Resource> {
| -------- required by this bound in `bevy::prelude::ResMut`
|
= help: within `player_input::State<'_>`, the trait `Send` is not implemented for `*mut (usize, PhantomData<MouseMotion>)`
= note: required because it appears within the type `Local<'_, (usize, PhantomData<MouseMotion>)>`
= note: required because it appears within the type `bevy::prelude::EventReader<'_, MouseMotion>`
= note: required because it appears within the type `player_input::State<'_>`
= note: required because of the requirements on the impl of `Resource` for `player_input::State<'_>`
这是代码:
#[derive(Default)]
struct State<'a> {
mouse_motion_event_reader: EventReader<'a, MouseMotion>,
}
fn mouse_motion_system(
time: Res<Time>,
mut state: ResMut<State>, //<-- IMPORTANT LINE (Line 151)
mouse_motion_events: Res<Events<MouseMotion>>,
mut query: Query<(&mut FlyCamera, &mut Transform)>,
) {
//...
}
它只会在最新版本的 bevy 上引发此错误,而不会在 0.4.0 版上引发此错误。
最佳答案
你不应该有 EventReader
在 State
在这里。也许您想跟踪状态中的最后一个光标位置?
由于事件 API 针对 Bevy 0.5 进行了简化,因此您只需要 EventReader
作为系统参数; mouse_motion_events: Res<Events<MouseMotion>>,
现在已过时,可以替换为 mut mouse_motion_events: EventReader<MouseMotion>
.
关于rust - 如何在 bevy 中读取鼠标运动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66946558/
我对 Bevy 和 Rust 还很陌生。我想加载一个 png 图像并获取它的宽度和高度。下面的代码不会打印“found resource ...”。 fn setup( mut commands: C
我正在和 Bevy 一起制作一个小 boids 玩具,每个 boid 的速度/加速度取决于它周围 boid 的位置和速度值。这意味着对于每个 boid,我想运行一些依赖于其他 boid 的某个子集的逻
这是一个非常简单的问题。 我已经重写了我的代码以处理新版本 bevy 附带的语法和其他更改。 编译时似乎一切正常,除了实体的消失。 我在上述实体中生成,例如: commands.spawn_bundl
我正在尝试取消绘制我使用Commands.spawn()函数生成的一些实体,但它需要为Commands.Entity().despawn函数提供不同类型的参数。以下是我的代码:。此代码给出错误:Exp
我正在尝试取消绘制我使用Commands.spawn()函数生成的一些实体,但它需要为Commands.Entity().despawn函数提供不同类型的参数。以下是我的代码:。此代码给出错误:Exp
是否可以通过在 bevy rust 中包含实体来获取组件列表?例如用于调试目的。 use bevy::prelude::*; fn main() { App::build()
我想创建一个第一人称相机。 我已经研究了其他几个实现的源代码,比如 https://github.com/mcpar-land/bevy_fly_camera https://github.com/s
我想将我的对象旋转给定的量并将其向前平移以创建一个可操纵的坦克。 我找不到解决方法,所有的矩阵、向量和四元数让我很难找到解决方案。 这是我想要做的 Unity 等价物: transform.Rotat
Bevy ,一个新的 Rust 游戏引擎和 ECS,有一个特性,它根据参数的类型“范围”它的系统。来自 its docs : The parameters we pass in to a "syste
我目前正在尝试使用事件在我的 Bevy 游戏中角色跳跃时发出信号。我希望处理玩家输入的系统发送一个 JumpedEvent然后可以被其他系统接收以执行适当的操作(设置正确的玩家动画、速度、声音等),但
我试图查看按下鼠标的位置,以便我可以选择我的角色。 我已经尝试了以下 #[derive(Default)] struct State { // Set up from example mous
在 bevy 示例 breakout 中只使用矩形,有加载 Sprite 的示例,有加载 3d 网格的示例。在 2d 中,我想绘制一个三角形(或其他多边形),但我无法通过文档弄明白。 最佳答案 目前不
以下程序是大量 SpriteComponents 的一个非常简约的示例。在此示例中,使用 FPS 计数器,您可以看到 SpriteComponents 的成本似乎是多么高。 我确实注意到,如果我重用
我在 empty 借了一笔钱变量,我想延长它的生命周期。在注释的代码块中,我尝试解决它,但引用不再可用。我必须再次遍历循环才能找到匹配项才能对其采取行动。 如何遍历查询以寻找最佳匹配,然后在我知道它是
我试图根据玩家是在屏幕上向左还是向右移动来翻转 Sprite 。我目前修改 SpriteSheetComponents 变换的方法如下,似乎根本没有改变 Sprite : fn player_di
我想创建一个 portal-like effect使用 Bevy . Unity 似乎有一个 render texture实现这一目标。 有没有办法在 Bevy 中做同样的事情?如果没有, futur
我不太确定我是否完全理解实体组件系统方法,这可能是出现此问题的原因之一。仍在与 OOP 思维方式作斗争! 我正在尝试创建一个类似于网络的数据结构,例如,类似于电路的东西: 因此,例如,实体 4 连接到
使用 Res>我可以在屏幕空间坐标(左下角为零)中获得鼠标位置的变化,例如 #[derive(Default)] struct State { cursor_moved_reader: Eve
当我尝试在character.ars文件中定义此常量时,出现错误:。错误是:
在 Amethyst 或许多其他游戏引擎中,update 之间存在区别。对于逻辑和fixed_update用于渲染。 Bevy 0.4 引入了状态,但只有 enter , update和 exit生命
我是一名优秀的程序员,十分优秀!