文章 | 机核 GCORES ( ) • 2024-04-13 23:57

日志

场景的加载和保存 @宏楼 Koiro

这周我更新了一下 Tilemap 系统,以及完成了简单的场景的加载和保存。现在所有场景中的实体都是 Scene 实体的子实体,卸载场景就是删除掉 Scene 实体和其所有子实体。我们将场景序列化成 toml 文件存储。
一些小坑:
  • Bevy 中 world.despawn 的默认行为不会删除子实体,因此同时删除子实体需要用 bevy::prelude::despawn_with_children_recursive(world, id)
  • 使用 world.despawn 一个实体后,其父实体的 Children 组件会仍然包含这个已销毁的子实体,使用 bevy::prelude::despawn_with_children_recursive(world, id) 则不会有这个问题
  • 当子实体有 Visibility 组件时,需要给父实体也安上 InheritedVisibility 组件(Bevy 会警告)
其它:实现了一个小的 “推迟几帧执行某个系统” 的工具包,为了满足自己推迟几帧执行系统的需求

编辑器尝试 @宏楼 Koiro

这周进行了编辑器相关的尝试。编辑器基于 egui, egui dock, bevy egui, bevy inspector egui,现在有一些简单的放置 & 删除及调试功能。现在可以左键放置方块和右键删除方块,更改进入编辑模式等等。
参考资料: