(转载请注明出处:http://blog.csdn.net/hongyouwei/article/details/45011315)

在我们找资源的时候,有时候会遇到那种把一堆图片放进一张png图片里面的情况,在做2D游戏的时候,我们往往需要将里面的一块块小图片切割出来使用,那么问题就来了,怎么切割呢,现在我们提供一张小图片(注意了,一般Unity里面要求的图片宽高最好是4的整数倍比如128*128),给大家演示一下:

那么我们现在把图片导入到Unity中,选中图片你会看到上边的Inspector界面

然后,选择Texture Type类型为Advanced,如下图:

将Read/Write Enabled选上,然后Sprite Mode选择Multiple,如上图。然后点击Sprite Editor,进入图形剪切界面:

点击左上角的Slice,在上面右图中我这里Type选择Grid,你也可以选择Automatic因为我要得到三个网格,所以我这里的像素是X:150  Y:200,其它不管,直接点击Slice,进入以下界面,然后选中每一个网格,进行调整,让其刚好与其边界搭边,如下图:

然后点击上面菜条的Apply,即可获得一个剪切过的图集。现在这个图集,已经可以直接拖出来使用了,但是如果想快速得到里面一张张的图片呢,接下来给大家介绍一个简单的编辑器扩展,这是我在不经意间,在贴吧里面看到有人使用,拿出来和大家一起分享。

首先,在Unity的Project窗口下的Assets里面创建一个文件夹名字叫Editor,然后在里面创建一个脚本,名字随便,我这里取名为: ImageSlicer,接下来就是打开脚本进行编码了,这里我直接贴上代码,然后大家就可以在选中图片后,进入Assets目录下,选择ImageSlider/Process to Sprites,然后就能得到一个文件夹,里面放有一张张的小图片,现在贴上代码和剪切结果图片:

using UnityEngine;
using System.Collections;
using UnityEditor;
using System.IO;
using System.Collections.Generic;public static class ImageSlicer
{[MenuItem("Assets/ImageSlicer/Process to Sprites")]static void ProcessToSprite(){Texture2D image = Selection.activeObject as Texture2D;//获取旋转的对象string rootPath = Path.GetDirectoryName(AssetDatabase.GetAssetPath(image));//获取路径名称string path = rootPath + "/" + image.name + ".PNG";//图片路径名称TextureImporter texImp = AssetImporter.GetAtPath(path) as TextureImporter;//获取图片入口AssetDatabase.CreateFolder(rootPath, image.name);//创建文件夹foreach (SpriteMetaData metaData in texImp.spritesheet)//遍历小图集{Texture2D myimage = new Texture2D((int)metaData.rect.width, (int)metaData.rect.height);//abc_0:(x:2.00, y:400.00, width:103.00, height:112.00)for (int y = (int)metaData.rect.y; y < metaData.rect.y + metaData.rect.height; y++)//Y轴像素{for (int x = (int)metaData.rect.x; x < metaData.rect.x + metaData.rect.width; x++)myimage.SetPixel(x - (int)metaData.rect.x, y - (int)metaData.rect.y, image.GetPixel(x, y));}//转换纹理到EncodeToPNG兼容格式if(myimage.format != TextureFormat.ARGB32 && myimage.format != TextureFormat.RGB24){Texture2D newTexture = new Texture2D(myimage.width, myimage.height);newTexture.SetPixels(myimage.GetPixels(0),0);myimage = newTexture;}var pngData = myimage.EncodeToPNG();//AssetDatabase.CreateAsset(myimage, rootPath + "/" + image.name + "/" + metaData.name + ".PNG");File.WriteAllBytes(rootPath + "/" + image.name + "/" + metaData.name + ".PNG", pngData);// 刷新资源窗口界面AssetDatabase.Refresh();}}
}

Unity的2D图集处理,并切割出一张张小图片相关推荐

  1. 将切割后的小图片还原为大图片

    本文可以看作是我的这篇博客(切割过程)的续集. 一.数据说明: (1)原始大图片:6000*6000 (2)小图片:512*512,且相邻小图片之间的重叠率为50% (3)根据切割的要求,原图共被分割 ...

  2. Unity 工具 之 图集根据切割为一张张单张图片的简单封装(Unity 自带 SpritePackage 打包图集的性能优化)

    Unity 工具 之 图集根据切割为一张张单张图片的简单封装(Unity 自带 SpritePackage 打包图集的性能优化) 目录 一.简单介绍 二.实现原理 三.注意事项 四.实现步骤 五.关键 ...

  3. 利用Unity自带的合图切割功能将合图切割成子图

    转载的,牛人无处不在,我还太渺小 虽然目前网上具有切割合图功能的工具不少,但大部分都是自动切割或者根据plist之类的合图文件切割的, 这种切割往往不可自己微调或者很难维调,导致效果不理想. 今天逛贴 ...

  4. 基于unity的2D横版游戏开发日志 小结

    前言 说是基于unity的2D横版游戏,实际上只是一个初学unity与C#新人的练手Demo,目前还处于半成状态.美术资源方面全部出自unity免费资源,经过自己的小修,大致拼出了一个游戏.代码方面, ...

  5. [Unity官方文档翻译]2D or 3D Projects Unity中2D和3D项目的区别

    2D or 3D Projects 2D或3D项目 Unity is equally suited to creating both 2D and 3D games. But what's the d ...

  6. 《基于Unity的2D多人乱斗闯关游戏设计与开发》--小组博客综述

    文章目录 项目名称 项目背景 项目简介 项目架构 项目特色 大致功能需求 游戏模式/内容 项目技术选型 项目分工 项目具体计划 此次项目实训不完全按照项目计划书进行,因为游戏范围太广,可能随时调整游戏 ...

  7. Unity 创建2D平台游戏开发学习教程

    了解如何使用C#在Unity中创建您的第一款2D平台游戏 你会学到什么 使用Unity创建2D奥运会 使用可脚本化的对象和单一模式 使用良好的编程实践 创造武器和射弹 使用可脚本化的对象和委托模式创建 ...

  8. Unity制作2D动作平台游戏视频教程

    Metroidvania工具包:打造统一的2D行动平台 流派:电子学习| MP4 |视频:h264,1280×720 |音频:AAC,48.0 KHz 语言:英语+中英文字幕(根据原英文字幕机译更准确 ...

  9. 思路拓展,如果是用2D的方式去做切割

    思路拓展,如果是用2D的方式去做切割 可以用遮罩来做表现 用BOX2D来做物理 laya的话,用mask就可以了 ocos那个, 用了setStencil(shape),shape是一个DrawNod ...

最新文章

  1. CV00-04-卷积
  2. 苹果曝光无人车新进展,这名华人工程师是主要贡献者
  3. 【c语言】蓝桥杯入门训练 圆的面积
  4. wireshark 与 tcpdump抓包
  5. mysql db 复制_MySQL管理工具MySQL Utilities — mysqldbcopy(6)
  6. 云原生时代业务架构的变革:从单体迈向Serverless
  7. java爬虫隐藏表单提交_java爬虫--jsoup简单的表单抓取案例
  8. Google菜市场(Android Market)上不去的解决方法
  9. 对于python的感受_聊聊我对python的感受
  10. 风控必须了解的报表权限与角色控制
  11. APK的Mokey测试
  12. python怎么读取txt文件-Python三种读取txt文件方式
  13. cmd命令行使用ffmpeg合并mp4格式视频文件
  14. 数字电路专题:FPGA芯片速度等级认识
  15. 解决ECharts官网打开缓慢的问题
  16. 在Gtalk中和你的msn,yahoo,icq/aim,qq好友聊天
  17. NanoPi M4开发opencv图像识别aruco码全过程(超详细)(二:测试补充)
  18. 华为思科宣布全力布局,美国NSF巨资支持的NDN到底什么来头?
  19. Qt工程中c++实现wrl到pcd格式转换
  20. mtk android平台学习,MTK平台的驱动学习——(阶段1规划篇)

热门文章

  1. 广州大学人工智能导论实验一(八数码问题)
  2. UE4_如果快速做出毛玻璃效果
  3. 2022 年您需要了解的 10 大计算机视觉框架
  4. Android中ClearEditText自带清除功能的EditText
  5. Win2008 r2 远程桌面服务授权管理器激活方法
  6. libevent下载
  7. 丑小鸭进化 之 软件计划
  8. L3-009 长城 (30 分)
  9. iOS-Core-Animation-Advanced-Techniques(七)上
  10. GoFullPage:必须给大家推荐这个好东西