場景保存與編輯器嘗試|貓方塊開發日誌 #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