分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

假设有一张png/tga图集,导入到Unity,放置目录"Assets/Resources/UI"(UI文件夹可替换成其他的,重要的是要在"Assets/Resources/"路径下),默认为如下设置:

为了可以使用Unity自带的精灵切割,要将纹理类型改成"Sprite","Sprite Mode"改成"Multiple","Format"改成"Truecolor",点击"Apply"按钮进行应用。
接着,点击"Sprite Editor"打开精灵编辑器,点击左上角的"Slice"按钮,弹出切片设置,再次点击里面的"Slice"按钮,就会自动对图片进行切割,如下图所示:
在对切割不完整的地方进行修正后,点击右上角的"Apply"按钮,进行保存。可以看到Project视图下这个图集,已经被分割出许多小图了,如下图所示:
接下来,因为要对图片进行读写操作,要更改图片的属性才能进行,否则会提示如下:
  • UnityException: Texture 'testUI' is not readable, the texture memory can not be accessed from scripts. You can make the texture readable in the Texture Import Settings.
将图片纹理类型更改为"Advanced",将"Read/Write Enabled"属性进行打勾,如下图所示:
创建一个脚本文件,代码如下:
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
using UnityEngine;
using UnityEditor;

public class TestSaveSprite
{
    [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/UI/testUI.png"得到路径"UI/testUI"
                string loadPath = selectionPath.Remove(selectionPath.Length - selectionExt.Length);
                loadPath = loadPath.Substring(resourcesPath.Length);

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

foreach (Sprite sprite in sprites)
                    {
                        // 创建单独的纹理
                        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");
    }
}

在Unity编辑器将会看到Tools菜单下多了"导出精灵"项,选中图集,然后点击"导出精灵"菜单项,即可导出子图成功。如下图所示:

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

Unity 导出切片精灵相关推荐

  1. unity学习笔记-精灵集和精灵动画

    2D游戏中,对精灵的操作需求,往往是两点: 1. 静态精灵:一般做背景展示等 2. 精灵动画:帧动画.骨骼动画等 声明:以下对Unity的操作,基于Unity3D 4.3.4,本人初学Unity,没用 ...

  2. Unity导出apk出现的问题,JDK,Android SDK,NDK,无“安装模块”

    导出apk失败 使用unity导出apk文件,会出现提示:需要合适版本的JDK.Android SDK和Android NDK,要找到.下载和安装好合适的版本非常耗费时间, 网上很多教程指出可以直接在 ...

  3. unity导出工程导入到iOS原生工程中详细步骤

    一直想抽空整理一下unity原生工程导入iOS原生工程中的详细步骤.做iOS+vuforia+unity开发这么长时间了.从最初的小小白到现在的小白.中间趟过了好多的坑.也有一些的小小收货.做一个喜欢 ...

  4. Egret3D初步笔记二 (Unity导出场景使用)

    一 Scene 根据上一节的继续.在导入unity4.7.1_Egret3D_Dll.unitypackage后. 在Unity中双击打开Assets/Egret3D/Example下的Example ...

  5. Sketch 插件导出切片

    Sketch 作为流行的 UI 设计软件,除了设计之外,还承担了设计与开发之间沟通的桥梁作用.通过 Sketch 导出的在线标注能够节省很多沟通的成本.除了标注之外还有个比较重要的功能就是切图的导出. ...

  6. unity 发布苹果商店_[Mac] Unity 导出 iOS 游戏并上架 App Store

    unity_to_appstore.jpg 0. 前言 因为之前已经上架过一款 App(Swift �语言),所以开发者账号.证书这些都已经搞定了,如果你是第一次上架 iOS 应用,具体流程可以参考本 ...

  7. Unity导出微信小游戏

    微信小游戏感觉这几年挺火,打算熟悉一下流程看看 微信提供的Unity转微信小游戏解决方案 地址:https://developers.weixin.qq.com/minigame/dev/guide/ ...

  8. Unity导出模型为Obj文件

    Unity导出模型为Obj文件 资源链接 下载导入 代码纪要 使用方式 参考链接 资源链接 原插件代码中只有MeshFilter的Obj导出代码:由于项目需求,需要将SkinnedMeshRender ...

  9. unity导出.obj模型文件

    unity导出.obj模型文件 最近使用realworldterrain生成真实地形遇到一个问题,就是该地形的坐标轴没有在中心位置,这样在旋转缩放操作时候就有各种问题,效果不好,于是想到先导出该地形为 ...

最新文章

  1. c# winform实现2048游戏
  2. 干货下载 | 评估产品增长,勿陷入“土著思维”
  3. 配置window下python3环境
  4. oracle习题-emp表查询练习
  5. 深入出不来nodejs源码-内置模块引入初探
  6. eap方法 华为手机怎么连wifi_如何手动连接802.1x EAP证书加密WIFI
  7. wince植入胎压监测_wince设备通过USB连接线上网指南(原创)(测试成功)
  8. OpenKM文档管理系统开源源码v6.3.9
  9. 国际音标 英式音标 美式音标
  10. C++实验5 游戏玩家类Player、两个道具类Helm和Armor
  11. COA-2019-第十四章 Instruction Sets
  12. 开源框架XWIKI搭建介绍
  13. 隐式内联函数和显式内联函数
  14. 从UAP-Studio中导出项目并且部署到服务器上
  15. 2022 年最受欢迎的 19个 VS Code 主题排行榜
  16. 小酌重构系列[10]——分离职责
  17. Python-OpenCV使用基本图像处理技术进行水印去除
  18. 推荐个WIN7下小巧的可转录声音的软件-Audio Record Wizard V6.99
  19. 猜数游戏(无限次数和有限次数)
  20. 机械-传动结构-减速机-谐波减速机

热门文章

  1. Hibernate一对一映射示例注释
  2. Kubernetes 入门:运行不同类型的 Job
  3. Docker上部署GitLab服务器
  4. 【JAVA 第三章 流程控制语句】课后习题 找零钱
  5. 【Python】Python库之网络爬虫
  6. linux系统账户口令管理
  7. 强化学习q学习求最值_Q学习简介:强化学习
  8. hdfs 小文件服务器,服务器远程上传hdfs文件大小
  9. 过拟合解决方法python_欠拟合、过拟合及其解决方法
  10. 安装低版本的R语言、和自行下载安装各个版本的R语言包、以及多环境运行R