联系方式
Java服务器开发群:66728073
游戏开发者高级群:398808948
Unity3d游戏开发:286114103

Unity3d 动态加载Atlas,从Atlas获取Sprite

 二维码 43
发表时间:2019-12-01 11:42

有开发游戏的时候,有时候我们需要使用代码,根据条件动态的加载所需要的资源,如果这些资源被统一放在某一个Atlas图集之中,就需要先使用代码将Atlas加载到内存中管理,然后再从Atlas获取所需要的Sprite。


第一步,首先将制作好的Atlas放在Resources目录下面,如果没有Resources目录,可以手动创建一个。

第二步,在代码中使用如下脚本:


SpriteAtlas spriteAtlas = Resources.Load<SpriteAtlas>("AtlasName");

        Sprite[] sprites = new Sprite[spriteAtlas.spriteCount];

spriteAtlas.GetSprites(sprites);

        foreach(Sprite sprite in sprites)

        {

            Debug.Log(sprite.name);

        }



这样就可以获取所有的Sprite了。

第三步,获取单个的Sprite

       Sprite oneSprite =   spriteAtlas.GetSprite("alphabet2_1");

        Debug.Log("one sprite : " + oneSprite.name);