Unity教程之-Unity3d中Sprite(精灵)的切割和导出

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

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

1,打开Unity建工程,同时导入素材进行资源分类,工程不在于大小,这是我们对待它的态度!

 

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

 

编辑精灵.


开始分割精灵

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

贴精灵导出代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
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/导出精灵:

OK,大功告成,好了,本篇unity3d教程关于Sprite精灵的切割和导出到此结束,下篇我们再会!

  • 9
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值