Rust 在Bevy引擎中,如何使用&;每个系统中的mut查询?

Rust 在Bevy引擎中,如何使用&;每个系统中的mut查询?,rust,bevy,Rust,Bevy,当扩展一个基本的组件变异示例时,我尝试将&mut添加到系统中的组件参数中。但是,这触发了未找到方法“system”错误 我的代码在这里: 使用bevy::prelude::*; fn设置( mut命令:命令, 我承认我不完全理解这是如何或为什么不起作用的,所以我可能遗漏了一些基本的东西 我犯了一个简单的错误吗?人们正在做一些事情来解决这个问题吗 谢谢!fn控制系统(键盘输入:Res,mut播放器:mut){ 让mutr=player.0; println!(“你好”); } mut实体:mut

当扩展一个基本的组件变异示例时,我尝试将
&mut
添加到系统中的组件参数中。但是,这触发了
未找到方法“system”错误

我的代码在这里:

使用bevy::prelude::*;
fn设置(
mut命令:命令,
我承认我不完全理解这是如何或为什么不起作用的,所以我可能遗漏了一些基本的东西

我犯了一个简单的错误吗?人们正在做一些事情来解决这个问题吗

谢谢!

fn控制系统(键盘输入:Res,mut播放器:mut){
让mutr=player.0;
println!(“你好”);
}
mut实体:mut
似乎是格式

Mut借用了一个实体。在文档中。

我们选择在Bevy ECS中专门使用
Mut
指针,因为它们允许我们在组件发生更改时进行跟踪。这就是我们的“更改跟踪”查询工作的原因

查询实际上还返回一个
Mut
指针

实际上,我们最初为每个系统支持
&mut T
in,但这会返回一个实际的
&mut T
引用,这会阻止我们跟踪T的突变。这会造成一种情况,即使用
&mut T
的人不再信任“更改查询”的结果像
Changed
。让人们能够意外(或有意)突破变更跟踪,似乎不值得在系统中使用更直观的
&mut

Mut
是一个稍微非标准的api,它提供了非常酷的功能。许多新用户一想到它就会觉得“ok,这有点奇怪”,但他们再也不需要考虑它了