我正在使用TextureAtlas
为Libgdx中的游戏加载我的资源。我知道TextureAtlas的方法findRegion
是昂贵的,内存明智的,所以应该加载一次并存储。
我刚刚经历了Skin
课,我遇到了这个例子:
TextureAtlas atlas = ...
Skin skin = new Skin();
skin.addRegions(atlas);
...
TextureRegion hero = skin.get("hero", TextureRegion.class);
这意味着我也可以使用Skin获取纹理。我的问题是,Skin类如何加载这些资产。它会在skin.addRegions(atlas);
上加载所有内容吗?或者skin.get("hero", TextureRegion.class);
是否在每次调用时从TextureAtlas加载它,使其与atlas.findRegion("hero")
调用一样昂贵?
我希望在游戏开始时从TextureAtlas加载我的所有资源。所以我想我可以在皮肤上做一个简单的加载,然后从那里使用我的资产?
答案 0 :(得分:1)
从源头看来,添加到Skin
的区域存储在Array
中,并通过0.9.8中的字符串比较找到,就像它们在TextureAtlas
中一样。查找时间将类似。