TextureAtlas 精灵索引是否反映了它们的添加顺序?

Does TextureAtlas sprite indices reflect the order in which they were added?

我正在使用 TextureAtlasBuilder 生成 TextureAtlas。我正在使用 add_texture 方法向图集中添加多个纹理。然后我将该纹理图集用作从 SpriteSheetComponents 包创建的精灵实体的一部分。

更改 sprite 的索引时,生成的纹理不是我所期望的。我假设纹理图集中的纹理反映了它们在构建时添加的顺序。这是一个错误的假设吗?

您调用 add_texture 的顺序并不能保证它们在 textures Vec 中的存储顺序。这是因为当前的实现(从 bevy 0.3.1 开始)使用 HashMap 来存储矩形的位置,因此不保留插入顺序。

由于该项目还处于起步阶段,您可以考虑在 project 中创建一个问题来更改它。

目前,您可以尝试在 Bevy 之外组合精灵,然后直接从该资产中读取 TextureAtlas,就像在 sprite sheet example.

中一样