本文主要是介绍Untiy图集切割,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
独立开发游戏的第一天(图集转图片)
想自己做游戏已经很久了,之前是没有能力,现在是没有什么时间,不过最终还是下定决心做一做,立简单的策划案,开始去网上收集资源,开始做游戏。网络上大部分的资源都是unity相关的资源包,有的直接就是unitypackage。但是由于个人能力有限打算做2D并且想往小游戏平台上放一放,所以还是打算用CocosCreator去开发。
图集分离图片
由于大部分下载的资源都是以图集的形式打包的直接就是一张png图片,使用unity的SpriteEdior就可以很好的去解决问题,但是Cocos2D上目前没有发现很好的方案,于是这便是这篇博文的主题,将图集切割出来。
导入图片并且设置格式
这里需要将图片的格式设置为Multiple不然是无法使用SpriteEditor进行切割的。
这里还需要将读写的权限打开。
然后这里按照末日的切割方式就好了,这里就不展示自己的原图了,如果有需要也可以使用其他模式,只要将图集内的图片切割好,就可以进行下一步了
应用完成后
Tool工具
[MenuItem("Tools/切割图集")]
static void CutSprite()
{// 文件名 当前文件处于Resources目录下string loadPath = "Bg";Sprite[] sprites = Resources.LoadAll<Sprite>(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图集切割的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!