场景保存与编辑器尝试|猫方块开发日志 #001


3楼猫 发布时间:2024-04-14 15:32:22 作者:宏楼 Language

日志

场景的加载和保存 @宏楼 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,现在有一些简单的放置 & 删除及调试功能。现在可以左键放置方块和右键删除方块,更改进入编辑模式等等。
参考资料:
  • Egui demos: https://www.egui.rs/#Demo
  • Getting started with egui in Rust: https://whoisryosuke.com/blog/2023/getting-started-with-egui-in-rust
  • Bevy egui_dock example: https://github.com/jakobhellermann/bevy-inspector-egui/blob/main/crates/bevy-inspector-egui/examples/integrations/egui_dock.rs
  • Egui Dock: https://github.com/Adanos020/egui_dock
  • Bevy Inspector Egui: https://github.com/jakobhellermann/bevy-inspector-egui/tree/main

© 2022 3楼猫 下载APP 站点地图 广告合作:asmrly666@gmail.com