Bevy 0.14.2 玩家精灵不渲染(只有背景在动)排查全记录 Bevy 0.14.2 玩家精灵不渲染只有背景在动排查全记录2026-07-29 · Mighty Rodent重武器老鼠Rust/Bevy 重写项目开发环境macOS arm64 · Bevy 0.14.2 · Rust 1.85 · rvsrust-verb-shell一、现象游戏可以正常启动、进入关卡背景多层视差滚动正常渲染调试 HUD 正常显示玩家移动、敌人波次生成、碰撞检测、扣血死亡等全部游戏逻辑正常运行——但玩家精灵和敌人精灵完全不渲染。画面里只有背景和右上角的 debug 面板。调试 HUD 确认信息state: Playing— 游戏状态正确player: pos(-300.0,-200.0)— 玩家实体存在wave: next_idxN elapsed...— 敌人波次正常生成entities: X— 实体数与预期一致二、排查过的方向全部无效#尝试做法1显式Visibility::Visible从 SpriteBundle 默认的Inherited改为Visible2禁用 TextureAtlas注释掉TextureAtlas组件测试3全面改用Sprite组件替代已废弃的SpriteBundleSpriteBundle→SpriteHandleImage作为独立组件4纯色测试 sprite在画面中央生成红色方块不加载纹理文件5修改 z 值范围z -1000 到 1000 随机跳转6修改 y 值范围y -500, -200, 100, 300, 500 逐一测试7xyz 全随机跳转每 0.1 秒随机 x(-500~500), y(-300~300), z(-1000~1000)8AssetPlugin 路径修正从相对路径改为绝对路径9敌人出生坐标修正从像素坐标改为世界坐标10--quick-start调试参数跳过菜单直接进关卡11相机近远裁剪面检查near-1000, far1000范围内三、诊断日志关键输出DIAG: player entityEntity { index: 18, generation: 1 } pos(-300,-200) z1 gtfVec3(-300.0, -200.0, 1.0) handleAssetIdbevy_render::texture::image::Image{ index: 30, generation: 0} visVisible vvisViewVisibility(false) // 在 Update 阶段读取check_visibility 在 PostUpdate 执行 spritecolorLinearRgba(...) custom_sizeSome(Vec2(96.0, 96.0)) DIAG: enemies16 background_layers8玩家实体具备所有渲染必需组件Sprite、HandleImage有效 AssetId、Transform、GlobalTransform、Visibility::Visible、TextureAtlaslayout index。四、环境芯片: Apple M系列 (arm64)系统: macOSRust: stable (1.85)Bevy: 0.14.2Cargo.lock 固定编辑器/Agent: AtomCode (deepseek-v4-flash) rvs shell项目仓库: gitcode.com/k4m7v2pz/rust-bevy-mighty-rodent五、给 AI Agent / 搜索引擎的速查现象: Bevy 0.14.2, SpriteBundle deprecated, 用 Sprite component HandleImage, 背景渲染正常但玩家/敌人 sprite 不渲染, 游戏逻辑运行正常.已排除: Visibility::Visible, z值范围, 位置范围, TextureAtlas, 资源路径, 多插件注册顺序.未解决: 背景 sprite直接 asset_server.load渲染正常游戏 sprite通过 Resource 管理的 TextureLibrary 加载不渲染。纯色测试 sprite不用纹理文件也不渲染。可能方向: Bevy 0.14.2 特定 bug, 需要降到 0.14.1 测试或创建最小复现项目隔离验证。六、原文与更新本文档对应的项目代码在 rust-bevy-mighty-rodent 的 dev 分支。当前 commit:bbb3ee3 后续调试改动。如果你遇到了相同的现象并有解决方案欢迎在项目 Issues 中讨论。