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

问题描述

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

更改精灵的索引时,生成的纹理不是我期望的。我假设纹理图集中的纹理反映了在构建它们时添加它们的顺序。那是不正确的假设吗?

解决方法

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

由于该项目尚处于起步阶段,因此您可以考虑在project中创建一个问题以进行更改。

目前,您可以尝试合并Bevy之外的精灵,然后像从sprite sheet example中一样直接从该资产中读取TextureAtlas