rust - 在Bevy Engine中,如何在for-each系统中使用&mut查询?

标签 rust bevy

在扩展组件变异的基本示例时,我尝试将&mut添加到系统中的组件参数。但是,这触发了no method "system" found错误。
我的代码在这里:

use bevy::prelude::*;

  fn setup(
      mut commands: Commands,
      asset_server: Res<AssetServer>,
      mut materials: ResMut<Assets<ColorMaterial>>,
  ) {
      let texture_handle = asset_server.load("icon.png").unwrap();
      commands
          .spawn(Camera2dComponents::default())
          .spawn(SpriteComponents {
              material: materials.add(texture_handle.into()),
              rotation: Rotation::from_rotation_z(0.0),
              ..Default::default()
          })
          .with(Player(0.0))
          .with(());
  }

  struct Player(f32);

  fn control_system(keyboard_input: Res<Input<KeyCode>>, player: &mut Player) { // <- mut added here
      let mut r = player.0;
      println!("hello");

      /*
      if keyboard_input.pressed(KeyCode::Left) {
          player.0 += 0.1;
      }

      if keyboard_input.pressed(KeyCode::Right) {
          player.0 -= 0.1;
      }
      */
  }

  fn main() {
      App::build()
          .add_default_plugins()
          .add_startup_system(setup.system())
          .add_system(control_system.system())
          .run();
  }
看着Into foreach system,我承认我不完全了解这是如何或为什么不起作用,所以也许我错过了一些基本的知识!
我犯了一个简单的错误吗?人们正在做一些事情来解决这个问题吗?
谢谢!

最佳答案

fn control_system(keyboard_input: Res<Input<KeyCode>>, mut player: Mut<Player>) {
    let mut r = player.0;
    println!("hello");
}
mut entity: Mut<Entity>似乎是格式。
Mut借了一个实体。在文档here中。

关于rust - 在Bevy Engine中,如何在for-each系统中使用&mut查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63551984/

相关文章:

variables - Rust 服务器必须保存变量的更新值

rust - 使用 Rust 和 Bevy 0.10.1 - 我期望文本显示在屏幕上,但我什么也没看到

rust - 为什么我在Bevy中进行变更检测的尝试永远不会触发?

rust - 如何在bevy引擎中加载部分图像

使用rust (Bevy) : ECS Network data structure

rust - 与/不理解 Rust 借用检查器作斗争

rust - 如何正确弃用一个 crate 特性

rust - 用Bevy 0.4拖动 Sprite 可以接受的方法是什么?

rust - 阴影变量绑定(bind)的资源是否立即释放?

file - 用于迭代 FASTA 文件并返回结构的代码设计应该是什么?