Hasty Briefsbeta

双语

Bevy TLDR – Game development with Bevy summarized

7 months ago
  • #rust
  • #game-development
  • #ecs
  • Bevy是一个模块化、高性能的实体组件系统(ECS)游戏引擎,基于Rust语言构建。
  • Bevy中的实体是内存数据库中行的标识符,而组件则是列。
  • 组件可以拥有生命周期钩子(on_add, on_insert, on_replace, on_remove, on_despawn)来实现副作用。
  • 资源是特殊的无实体组件,为系统提供便捷访问方式。
  • Bevy中的系统是Rust函数,其参数必须实现SystemParam特性。
  • 命令(Commands)用于高效改变World状态,将变更排队至下个调度周期执行。
  • 应用(App)通过调度器(Startup/Update/FixedUpdate)协调系统,并能管理不同状态。
  • 插件(Plugins)将相关功能分组,可添加到App中以扩展能力。
  • 查询(Queries)让系统能访问实体组件,支持条件过滤。
  • 资源(Assets)通过AssetServer异步加载,支持事件和状态追踪。
  • 消息(Messages)和事件(Events)实现系统间通信,前者缓冲处理后者立即触发。
  • Bevy中通过ChildOf和Children等组件管理父子层级关系。
  • 输入处理支持键盘/鼠标/手柄/触摸,通过ButtonInput等资源实现。
  • 相机(Cameras)管理渲染目标、投影和视角位置,分2D/3D两种类型。
  • UI采用flexbox或CSS网格布局的节点系统,通过Interaction组件实现交互。
  • 定时器(Timers)支持单次/循环模式,用于延时触发操作。
  • 音频系统通过AudioSource和AudioSink控制播放,支持空间音效。
  • 场景(Scenes)支持将实体和组件序列化/反序列化到文件。
  • 物理引擎需通过Avian等插件添加,支持刚体和碰撞检测。