SuperAPI AI 工具集

bevy-migration-0-17-to-0-18

智能体与模型

查看项目

更新于 10-15 17:33

技能介绍

用途:把 Bevy 项目从 0.17 升级到 0.18 的迁移速查技能。适用场景包括:将 bevy 依赖从 0.17 改为 0.18 后出现编译错误;LLM 依据训练数据生成 0.17 时代的 API 名称;审查 PR 中隐藏的 0.18 不兼容写法;临时修复尚未发布 0.18 版本的依赖 crate。建议自上而下逐条应用,跳过靠前条目会导致后续构建失败。

主要改名:观察者事件 Trigger<E> 改为 On<E>(用 on.event() 取值);缓冲事件 Event 改为 Message,使用 #[derive(Message)]、app.add_message::<T>()、MessageReader/MessageWriter;Event 现保留给被观察的、面向实体的事件(#[derive(EntityEvent)])。相机 Camera { target } 改为 RenderTarget 组件。AmbientLight 不再是资源,全局默认用 GlobalAmbientLight 资源,逐相机覆盖则把 AmbientLight 挂到相机实体上。MaterialPlugin 配置移到 Material trait 方法(如 enable_prepass、enable_shadows),AsBindGroup::label() 变为必需,AssetLoader 需 #[derive(TypePath)]。Mesh::insert_attribute 会 panic,推荐 try_insert_attribute(返回 Result)。State::set 现在总会触发转换,需要时用 set_if_neq 防护。glTF 坐标转换改为 GltfConvertCoordinates 配置。SimpleExecutor 被移除,同一 schedule 内后置系统需读前序命令时应显式使用 before/after/chain,ApplyDeferred 依赖这些顺序。

另需注意:bevy_gizmos 拆分出 bevy_gizmos_render;Resource 不再允许非 'static 生命周期;反射属性只接受 #[reflect(...)] 括号形式;AnimationTarget 拆成 (AnimationTargetId(id), AnimatedBy(player));Atmosphere 改为引用 Handle<ScatteringMedium>。详细内容见各 references 参考文件。资料未提供各主题的完整细节、安装命令与版本发布日期之外的信息。