Unity 切割导出精灵

  Unity中经常使用到精灵,尤其是2D游戏中制作动画等!今天我们就学习下精灵的切割和导出吧!

废话不多说,先建议空的工程。

1,打开Unity建工程。

2 导入素材进行资源分类,工程不在于大小,这是我们对待它的态度!

3.开始分割精灵,三步走!

编辑精灵.

开始分割精灵

Apply一下,看下分割的精灵,0-9共9个。

贴精灵导出代码:

using UnityEngine;
using UnityEditor;

public class SpriteTailed:MonoBehaviour
{
    [MenuItem("Tools/导出精灵")]
    static void SaveSprite()
    {
        string resourcesPath = "Assets/Resources/";
        foreach (Object obj in Selection.objects)
        {
            string selectionPath = AssetDatabase.GetAssetPath(obj);

            // 必须最上级是"Assets/Resources/"
            if (selectionPath.StartsWith(resourcesPath))
            {
                string selectionExt = System.IO.Path.GetExtension(selectionPath);
                if (selectionExt.Length == 0)
                {
                    continue;
                }

                // 从路径"Assets/Resources/Sprite/number.png"得到路径"Sprite/number"
                string loadPath = selectionPath.Remove(selectionPath.Length - selectionExt.Length);
                loadPath = loadPath.Substring(resourcesPath.Length);

                // 加载此文件下的所有资源
                Sprite[] sprites = Resources.LoadAll<Sprite>(loadPath);
                if (sprites.Length > 0)
                {
                    Debug.Log(sprites.Length);
                    // 创建导出文件夹
                    string outPath = Application.dataPath + "/outSprite/" + loadPath;
                    System.IO.Directory.CreateDirectory(outPath);

                    foreach (Sprite sprite in sprites)
                    {
                        Debug.Log("Export Sprite:" + sprite.name);
                        // 创建单独的纹理
                        Texture2D tex = new Texture2D((int)sprite.rect.width, (int)sprite.rect.height, sprite.texture.format, false);
                        tex.SetPixels(sprite.texture.GetPixels((int)sprite.rect.xMin, (int)sprite.rect.yMin,
                                                               (int)sprite.rect.width, (int)sprite.rect.height));
                        tex.Apply();

                        // 写入成PNG文件
                        System.IO.File.WriteAllBytes(outPath + "/" + sprite.name + ".png", tex.EncodeToPNG());
                    }
                    Debug.Log("SaveSprite to " + outPath);
                }
            }
        }
        Debug.Log("SaveSprite Finished");
    }
}

将脚本挂到MainCamera上,点击Tools/导出精灵:

失败了,检查下原因!莫急,,,哦,现在的精灵是不可以读写的,我们要修改它的属性。

再次点击Tools/导出精灵,然后Refresh资源,就可以看到了!

OK,精灵资源导出成功!

时间: 2025-01-06 20:57:05

Unity 切割导出精灵的相关文章

unity场景导出

一.场景物件遍历所有物件旋转.位移,缩放     在重新摆放物件时,如果有光照贴图,需要恢复贴图的索引信息.      二.场景烘焙后会生成贴图和对应的LightmapSnapshot.asset文件     LightmapSnapshot.asset 只在 editor 模式下有效,是不能导出 assetbundle 的.(如果需要恢复光照和无效,也没必要保存这个) 光照信息和雾效的信息,需要保存到额外文件中. 三.不建议使用 Unity 自带的 Terrain,在将 TerrainData

unity fbx 导出动画

public class ActionConvetTool { [MenuItem("ActionTools/动作处理")] public static void ActionConvert() { UnityEngine.Object[] arr = Selection.GetFiltered(typeof(UnityEngine.Object), SelectionMode.Unfiltered); for (int index = 0; index < arr.Length

Unity 导出切片精灵

http://blog.csdn.net/akof1314/article/details/38845933 设有一张png/tga图集,导入到Unity,放置目录"Assets/Resources/UI"(UI文件夹可替换成其他的,重要的是要在"Assets/Resources/"路径下),默认为如下设置: 为了可以使用Unity自带的精灵切割,要将纹理类型改成"Sprite","Sprite Mode"改成"Mu

(转)Unity输出 切割后的图片

假设有一张png/tga图集,导入到Unity,放置目录"Assets/Resources/UI"(UI文件夹可替换成其他的,重要的是要在"Assets/Resources/"路径下),默认为如下设置: 为了可以使用Unity自带的精灵切割,要将纹理类型改成"Sprite","Sprite Mode"改成"Multiple","Format"改成"Truecolor"

「Unity」与iOS、Android平台的整合:3、导出的Android-Studio工程

本文属于「Unity与iOS.Android平台的整合」系列文章之一,转载请注明出处. Unity默认导出的是Android-Eclipse工程,毕竟Eclipse for Android开发在近一两年才开始没落,用户量还是非常巨大的. 个人认为AndroidStudio非常好用,能轻易解决很多Eclipse解决不了或者很难解决的问题. 所以我将Unity导出的Andoid工程分为Eclipse和AndroidStudio两部分. 不过我之后的相关内容都会使用AndroidStudio,希望依然

「Unity」与iOS、Android平台的整合:2、导出的Android-Eclipse工程

本文属于「Unity与iOS.Android平台的整合」系列文章之一,转载请注明出处. Unity默认导出的是Android-Eclipse工程,毕竟Eclipse for Android开发在近一两年才开始没落,用户量还是非常巨大的. 个人认为AndroidStudio非常好用,能轻易解决很多Eclipse解决不了或者很难解决的问题. 所以我将Unity导出的Andoid工程分为Eclipse和AndroidStudio两部分. 不过我之后的相关内容都会使用AndroidStudio,希望依然

unity导出iOS所遇到的问题

现在的公司要做AR教育类的app,所以需要用到unity那边的代码,但unity那边导出iOS后,运行xcode会各种报错,千奇百怪,我只说下我自己遇到的问题以及解决方式 unity导iOS不要在window上导,不然怎么弄都会报错,把unity开发那边给的包拿到mac版的unity上导出来 我用的是unity5.3和xcode7.3 先说下导出iOS的步骤   先把包直接拖进unity里  然后build settings 把要运行的环境拖进去 然后选iOS  再点switch platfor

整理的Unity导出安卓工程利用ANT进行多渠道批量打包APK

Unity导出的安卓工程利用ant进行多渠道循环批量打包 一:设置JAVA环境变量 做android开发的配置这个是基础. win7 下配置java环境变量,下面是链接 http://www.cnblogs.com/zhj5chengfeng/archive/2013/01/01/2841253.html 二:配置Android的SDK环境变量 除了需要Java的环境变量,我们还需要配置Android的sdk的位置,名字是ANDROID_HOME,值就是你的android的sdk的位置,比如我的

Unity 2D 终结手册 (1) (2) - 2D 项目+精灵_Unity3d开发

Unity 2D 终结手册 (1) - 2D 项目+精灵_Unity3d开发_蓝鸥 这篇系列文章主要介绍 Unity 2D 开发技术.包括 2D/3D 项目的区别.如何设置 2D/3D 模式.2D 开发中使用到的组件等. Unity 不止能够制作酷炫的 3D 游戏,同样也能够制作完美的 2D 游戏.使用 Unity 开发 2D 内容时,编辑器的大部分功能都是通用的,只不过有些功能为了简化 2D 开发,做了一些调整. (图 1)Unity 2D 游戏 在 Scene 视图上方的工具条中,有一个明显