Unity 切割导出精灵

7456 / 2025-08-29 22:31:00 世界杯主题歌

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 == )

{

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(loadPath);

if (sprites.Length > )

{

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,精灵资源导出成功!

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

Unity Sprite切割导出

这次需要将美术提供的Sprite图集切割导出,整体思路依然和上次的Sprite转prefab一致,只是在转prefab的逻辑修改为了创建Texture的逻辑. 过程很简单,直接看最终代码结果: usi ...

Unity如何更改精灵中心点

Unity虽然可以改中心点但是仅支持几个特定位置. 如果是一个你是切割的精灵,则可以进入精灵编辑器中调整 打开精灵编辑器后按调整如下图所示的pivot选项,我在这里把精灵调整成了右上. 在精灵编辑 ...

unity fbx 导出动画

public class ActionConvetTool { [MenuItem("ActionTools/动作处理")] public static void ActionCo ...

Unity 导出切片精灵

http://blog.csdn.net/akof1314/article/details/38845933 设有一张png/tga图集,导入到Unity,放置目录"Assets/Resou ...

unity sprite怎么获取切割后的图

学习了一段时间的unity,对里面的组件有一个大致的了解,但是具体操作来说还不是很熟悉,今天看了一片关于unity sprite怎么获取切割后的图的文章,感觉还不错. 假设有一张png/tga图集,导 ...

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

Unity导出的安卓工程利用ant进行多渠道循环批量打包 一:设置JAVA环境变量 做android开发的配置这个是基础. win7 下配置java环境变量,下面是链接 http://www.cnbl ...

关于 Unity NavMesh 数据的导出和使用

上周的工作重点转移到服务器寻路上来,刚刚做完没几天,总结一下,当时团队讨论的结果是使用 Unity 原生的 NavMesh 系统,然后将数据导出到服务器使用.我最初的思路是将导出的网格加载到服务器后, ...

将Unity导出的Eclipse工程转换为AndroidStudio工程

步骤:1)将unity项目导出到文件夹: 转换到安卓平台,这里只勾选google android project.然后导出到自己新建的文件夹. 2)打开导出的文件夹,看到如下内容.这是unity5.x ...

Unity 图片分割将spirte保存在本地

如果你拿到的是一张整图,你想分割之后使用NGUI sprite来使用! 下面就能解决的需求. 步骤: 1. 使用Unity自带的spirte进行分割图片 2. 使用代码把分割出来的2DSpirte转 ...

随机推荐

如何实现带照片缩略图的Listview

ackage com.demo; import java.util.ArrayList; import android.app.Activity; import android.content.Con ...

LDAP禁止匿名访问

LDAP默认是允许用户匿名访问的,如下图:在使用工具连接时,勾选匿名绑定后,不需要输入UserDN和密码就可能连接到LDAP服务器,但是只能进行read及search操作.不能做任何的修改及删除操作. ...

mysql 主从复制配置步骤

1.准备两台数据库环境,或者单台多实例环境,能否正常启动和登录. 2.配置my.cnf文件,主库配置log-bin和server-id参数,从库配置server-id,不能和主库及其他从库一样,一般不 ...

[jQuery] 使用jQuery printPage plugin打印其他頁面內容

目標: 點選按鈕後可以打印其他頁面的內容,可用於套版.內部表單套印...等等. 程式碼: 1.View(HTML布局)

維修申請單

《第一行代码》学习笔记19-广播接收器Broadcast_Receiver(2)

1.解决广播的安全性问题,Android引入了一套本地广播机制,使用该机制发出的广播只能够在应用程序内部进行传递,并且广播接收器只能 接收来自本应用程序发出的广播. 2.本地广播无法通过静态注册来接收 ...

学习MVC框架之一

一.MVC的概述 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑和数据显示分离的 ...

0130——UIScrollView

1.contentSize幕布实际大小决定滚动的方向,如果小于图片本身不滚动,默认也是不滚动 view.contentSize = CGSizeMake(1280, 200); 而frame只是用来显 ...

hdu 2438Turn the corner 三分

Turn the corner Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ...

JavaScript 作用域和闭包

作用域的嵌套将形成作用域链,函数的嵌套将形成闭包.闭包与作用域链是 JavaScript 区别于其它语言的重要特性之一. 作用域 JavaScript 中有两种作用域:函数作用域和全局作用域. 在一个 ...

用document.onreadystatechange和document.readyState确保文档加载完毕才获取DOM

document.onreadystatechange = function(){ //document.readyState有“interactive”和“complate”两个值 if(docum ...