Bevy

bevy 的 add_system 函数作为参数 // impl IntoSystemAppConfig
system 支持各种方法 // impl_system_collection 宏
system 的参数支持自由组合 // impl_system_function 宏
system 的 Query 参数支持自由组合 // impl_anytuple_fetch 宏

app.run() 会替换 app 为 空(原因未知),不执行 run 就可以一直用 update 手动调度更新

Reflect 组件让 world 能被序列化成 scene,例子


ECS 是扁平数据结构,但可以逻辑分层 Parent and Children,移除实体时需要双向删除
Bevy 的默认清理策略是每帧清除事件,但使用双缓冲,以便前一帧更新的事件保持可用
Bundle 是创建实体的一种便利,不能直接查询
全局访问的数据适合创建成资源,只在 ECS 模式中访问时创建成组件
系统参数类型:
系统能并发运行,.after/.before 指定系统运行顺序
app.add_state 状态能指定系统,系统中能以资源 State 访问,切换 state 后需要 input.rest,能指定为系统运行条件
0.10 没有了, 用 SystemSet 替代】 Stage 是硬同步点,同一个 Stage 上的系统并发运行完才会进入下一个 Stage,内置 Stage:
  • PreStartup, Startup, PostStartup
  • First, PreUpdate, Update, PostUpdate, Last
  • Extract, Prepare, Queue, PhaseSort, Render, Cleanup

FixedTimestep::step(1.0) 指定固定刷新周期
play() 播放音频
interaction 组件判断按钮状态
动画?