Untiy图集切割

独立开发游戏的第一天(图集转图片)

想自己做游戏已经很久了,之前是没有能力,现在是没有什么时间,不过最终还是下定决心做一做,立简单的策划案,开始去网上收集资源,开始做游戏。网络上大部分的资源都是unity相关的资源包,有的直接就是unitypackage。但是由于个人能力有限打算做2D并且想往小游戏平台上放一放,所以还是打算用CocosCreator去开发。

图集分离图片

由于大部分下载的资源都是以图集的形式打包的直接就是一张png图片,使用unity的SpriteEdior就可以很好的去解决问题,但是Cocos2D上目前没有发现很好的方案,于是这便是这篇博文的主题,将图集切割出来。

导入图片并且设置格式

这里需要将图片的格式设置为Multiple不然是无法使用SpriteEditor进行切割的。
这里还需要将读写的权限打开。
Untiy图集切割_第1张图片
然后这里按照末日的切割方式就好了,这里就不展示自己的原图了,如果有需要也可以使用其他模式,只要将图集内的图片切割好,就可以进行下一步了
Untiy图集切割_第2张图片
应用完成后

Tool工具

[MenuItem("Tools/切割图集")]
static void CutSprite()
{
    // 文件名 当前文件处于Resources目录下
    string loadPath = "Bg";
    Sprite[] sprites = Resources.LoadAll(loadPath);        
    if (sprites.Length > 0)
    {
        // 创建导出文件夹
        string OutPath = Application.dataPath + "/OutImage/" + loadPath;
        // 创建文件夹
        System.IO.Directory.CreateDirectory(OutPath);

        foreach (Sprite sprite in sprites)
        {
            // 创建单独的纹理              
            Texture2D tex = new Texture2D((int)sprite.rect.width, (int)sprite.rect.height);

            Color[] colors = sprite.texture.GetPixels((int)sprite.textureRect.x, (int)sprite.textureRect.y,
                (int)sprite.textureRect.width, (int)sprite.textureRect.height);
            tex.SetPixels(colors);
     
            tex.Apply();
            
            //写入文件
            System.IO.File.WriteAllBytes(OutPath + "/" + sprite.name + ".png", tex.EncodeToPNG());
        }            
    }
}
这样图片就被切割图片就会放在Asset目录下的OutImage/Bg文件夹内。
这里第一篇文章就结束了。

你可能感兴趣的:(Untiy图集切割)