SuperAPI AI 工具集

bevy-migration-0-18-to-0-19

编程与开发

查看项目

更新于 10-15 17:33

技能介绍

用途:面向从 Bevy 0.18 升级到 0.19 的项目,按官方迁移指南自上而下应用,优先处理最可能影响游戏代码的变更。

主要能力:列出高影响变更对照,包括 #[derive(Component, Resource)] 拆分为不同类型且 Resource 实现 Component、宽泛查询与 Res<T> 的冲突(必要时用 Without<IsResource> 过滤资源实体)、init_non_send_resource 改为 init_non_send、SceneRoot/DynamicScene 改为 WorldAssetRoot/DynamicWorld、旧世界序列化由 bevy_scene 迁往 bevy_world_serialization、TextFont 改为 FontSource 与 FontSize、TextLayout::new_with_justify 改为 TextLayout::justify、LoadContext::loader() 改为 load_builder()、自定义 Reader 需 AsyncSeekForward 与 seekable()、渲染节点改为 Core2d/Core3d 调度中的系统、Replace/on_replace 改为 Discard/on_discard、set_executor_kind 改为 set_executor 实例、灯光 shadows_enabled 改为 shadow_maps_enabled(可选 contact_shadows_enabled)、相机 Atmosphere 改为独立实体、InputFocus.0 改为 get/set/clear 方法。

使用方式:先把引擎与所有 Bevy 生态 crate 一起升级;用项目真实 default-features 与目标三元组重新构建;先修资源与宽泛查询冲突再看次级错误;更新场景、文本、资源、渲染、灯光与 UI 焦点;重新生成持久化的动画目标 ID 与序列化世界数据;编译代表性示例并测试原生与 Web/平台构建。验证命令:cargo check --all-targets、cargo test、cargo tree -d | rg 'bevy(_| )'。

限制:资料未提供具体收费、价格与平台支持细节。注意 bevy::render::renderer::RenderGraph 这一非相机顶层调度仍存在,不要盲目替换;不要机械地给每个查询加 Without<IsResource>;audio 不再由 2d/3d/ui 隐含,ui 不再由 2d/3d 隐含;自定义 profile 需配 default-features = false;禁用默认特性时原生手柄需 bevy_gilrs;InputFocus 由 DefaultPlugins 初始化,0.19.1 中调用 focus.set(entity, FocusCause::Navigated)。