1、 将分割代码放入Editor中

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEditor;
using UnityEditor.SceneManagement;
using UnityEngine.SceneManagement;
using System.IO;public class Tools : EditorWindow
{[MenuItem("Tools/openWindow")]public static void createWindow(){Tools window = EditorWindow.GetWindow<Tools>("设置位置");window.Show();window.minSize = new Vector2(200, 300);}private void OnGUI(){if (GUILayout.Button("分割图集")){ProcessToSprite();}}static SpriteMetaData[] spriteArr;static void getSprite(){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;//获取图片入口spriteArr = texImp.spritesheet;for (int i = 0; i < spriteArr.Length; i++){MonoBehaviour.print(spriteArr[i].rect);}}static void setSprite(){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;//获取图片入口texImp.spritesheet = spriteArr;}[MenuItem("Tools/ProcessToSprite #&C")]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);//创建文件夹MonoBehaviour.print(path);// texImp.spritesheet = foreach (SpriteMetaData metaData in texImp.spritesheet)//遍历小图集{Texture2D myimage = new Texture2D((int)metaData.rect.width, (int)metaData.rect.height);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));}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();File.WriteAllBytes(rootPath + "/" + image.name + "/" + metaData.name + ".png", pngData);// 刷新资源窗口界面AssetDatabase.Refresh();}}}

2、选择图集,勾选模式及可编辑

3、点击Sprite Editor ,选择图片裁剪模式,对图片进行裁剪,Apply保存设置

4、选中图集图片,快捷键shift +alt +c 会在图集当前目录下生成对应的散图,

unity 代码拆分图集相关推荐

  1. unity代码更换ui图片_关于Unity UI的动静图集分离,你需要了解这些!

    这是第101篇UWA技术知识分享的推送!(此处应有掌声)随着大家在UWA平台上的发言愈加活跃,我们也源源不断地收到了许多技术大咖的热心回复和真知灼见. UWA 问答社区:answer.uwa4d.co ...

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

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

  3. Vue性能优化:如何实现延迟加载和代码拆分?

    移动优先方法已经成为一种标准,但不确定的网络条件导致应用程序快速加载变得越来越困难.在本系列文章中,我将深入探讨我们在Storefront应用程序中所使用的Vue性能优化技术,你们也可以在自己的Vue ...

  4. 在react-router中进行代码拆分

    随着react项目的迭代开发,会发现build 下静态文件包的体积会越来越臃肿,首次浏览网页,白屏或loading时间越来越长,所以代码拆分非常必要: 一. react-loadable 组件拆分: ...

  5. [react] React如何进行代码拆分?拆分的原则是什么?

    [react] React如何进行代码拆分?拆分的原则是什么? 这里我认为react的拆分前提是代码目录设计规范,模块定义规范,代码设计规范,符合程序设计的一般原则,例如高内聚.低耦合等等. 在我们的 ...

  6. 通过延迟加载和代码拆分提高网站性能

    by José M. Pérez 由JoséM.Pérez 通过延迟加载和代码拆分提高网站性能 (Improve the Performance of your Site with Lazy-Load ...

  7. 组件和高阶组件区别_为什么要对高阶组件使用代码拆分

    组件和高阶组件区别 by Nitish Phanse 由Nitish Phanse 为什么要对高阶组件使用代码拆分 (Why you should use code splitting with hi ...

  8. webpack和react_使用React和Webpack进行简单的代码拆分

    webpack和react by Didier FRANC 由Didier FRANC 使用React和Webpack进行简单的代码拆分 (Straightforward code splitting ...

  9. dll放在unity哪个文件夹下_程序丨如何将你的Unity代码整理到一个DLL中?

    原标题:程序丨如何将你的Unity代码整理到一个DLL中? 翻译:林政(玄猫大人) 审校:沈晓霖 代码复用的重要性 这里有一则故事也是你听过类似的: 你下载好Unity,看完Youtube上的一些教程 ...

最新文章

  1. c++函数返回值与引用
  2. 数据库常用增删改查记录等语句
  3. SendMessage函数的常用消息及其应用
  4. android date 组件,Android中TimePicker与DatePicker时间日期选择组件的使用实例
  5. TextEditor
  6. notify和notifyall的区别
  7. R语言绘图—在绘图中实现截断值
  8. 计算机二级C语言题库(44套真题+刷题软件)第二套
  9. 极点五笔特殊符号输入方法
  10. 在线购物系统分析类图
  11. Linux文件I/O实验报告
  12. 如何用photoshop来做流体渐变
  13. cpu的主频、外频和倍频
  14. restframework(一)
  15. 从网页抓取数据的一般方法
  16. C语言:int型数据向char型数据的强制类型转换原理
  17. 2020年4月西安葡萄城挂经
  18. 分享我用Qt写的游戏组队群聊系统
  19. 启用 DHCP 和静态 IP 共存
  20. 来自水库论坛欧成效2014年的总结

热门文章

  1. python中操作pptx中的表格填充背景没有透明度调节的解决方案
  2. Xsolla于韩国网禅达成合作
  3. 杭电OJ 1248 不死族巫妖王 完全背包问题 字节跳动 研发岗编程原题
  4. CJS、ESM、AMD、CMD、UMD
  5. Materials - FlowMap导致的材质马赛克效果
  6. 【智驾深谈】特斯拉死亡事故官方洗白,业界被判死缓(万字报告)
  7. 小程序怎么打出横线效果_小程序带横线的字体 微信小程序特殊字体
  8. php pdo drivers no supported,php使用pdo链接,参数PDO::ATTR_EMULATE_PREPARES 设为false 报错...
  9. Windows查看自己主机IP地址
  10. IP营销赋能中国玩具—成都扬帆际海教育咨询有限公司