当前位置:网站首页>unity 代码拆分图集
unity 代码拆分图集
2022-08-02 03:34:00 【落水无痕】
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 会在图集当前目录下生成对应的散图,


边栏推荐
- 【plang 1.4.4】编写茶几玛丽脚本
- 【MQ-3 Alcohol Detector and Arduino Detect Alcohol】
- 剑指Offer 32.Ⅰ从上到下打印二叉树
- 联阳IT6561|IT6561FN方案电路|替代IT6561方案设计DP转HDMI音视频转换器资料
- Comparative analysis of OneNET Studio and IoT Studio
- 分割回文串 DP+回溯 (LeetCode-131)
- C语言教程 - 制作单位转换器
- 简单的RC滤波电路
- LT8918L LVDS转MIPI芯片技术支持资料
- GM7150,振芯科技,视频解码器,CVBS转BT656/601,QFN32,替换TVP5150/CJC5150
猜你喜欢

所有子字符串中的元音 —— LeetCode - 2063

Industry where edge gateway strong?

Comparative analysis of OneNET Studio and IoT Studio

GM8775C MIPI转LVDS调试资料分享

增量编译技术在Lightly中的实践

2020 - AAAI - 图像修复 Image Inpainting论文导读 -《Region Normalization for Image Inpainting》

功率计,物联网,智能插座电路设计【毕业设计】

TC358860XBG BGA65 东芝桥接芯片 HDMI转MIPI

基础IO(下):软硬链接和动静态库
![[Arduino connected to GP2Y1014AU0F dust sensor]](/img/b4/c32dcd32bf5b9e8596af406c9177a2.png)
[Arduino connected to GP2Y1014AU0F dust sensor]
随机推荐
使用飞凌嵌入式IMX6UL-C1板子——qt+opencv环境搭建
改变文件的扩展名
联阳IT66121FN提供SDI转HDMI方案分享
rosdep update失败解决办法(亲测有效)
【面试必看】链表的常见笔试题
TQP3M9009电路设计
Anaconda(Jupyter)里发现不能识别自己的GPU该怎么办?
汇编语言跳转指令总结
【LeetCode】Merge
Process (in): process state, process address space
如何使用 PHP 实现网页交互
Laptop charging problems
【详解】线程池及其自定义线程池的实现
判断子序列 —— LeetCode-392
引擎开发日志:集成Bullet3物理引擎
Chrome 里的小恐龙游戏是怎么做出来的?
模拟电子技术------半导体
LL(1)文法 :解决 if-else/if-else 产生式二义性问题
ICN6211:MIPI DSI转RGB视频转换芯片方案介绍 看完涨知识了呢
【plang 1.4.3】定时器的使用