Unity 3D
来源:互联网 发布:小学数学必背常用数据 编辑:程序博客网 时间:2024/05/22 00:43
Unity 3D - 编辑器扩展之修改PackingTag :
C#代码 :
注意 :
代码中屏蔽了 SaveAndReimport 方法 , 如果项目中有自动修改PackingTag的脚本 , 可以使用SaveAndReimport方法重新导入.
链接 :
导入资源自动设置PackingTag链接
using System.Collections.Generic;using UnityEngine;using UnityEditor;using System.IO;using System.Linq; public class myTools { [MenuItem("myTools/修改资源的PackingTag")] static public void SetResourcePackingTag() { EditorWindow.GetWindow<SetResourcePackingTag>("修改资源的PackingTag").Show(); } } public class SetResourcePackingTag : EditorWindow { private List<string> textureList = new List<string>(); Vector2 scrollPos = Vector2.zero; private void StartCheck() { List<string> withoutExtensions = new List<string>() { ".png",".jpg" }; string[] files = Directory.GetFiles(Application.dataPath + "/GameRes/NewUI", "*.*", SearchOption.AllDirectories) .Where(s => withoutExtensions.Contains(Path.GetExtension(s).ToLower())).ToArray(); foreach (string file in files) { string strFile = file.Substring(file.IndexOf("Asset")).Replace('\\', '/'); textureList.Add(strFile); } } void OnGUI() { EditorGUILayout.BeginHorizontal(); EditorGUI.BeginChangeCheck(); if (GUILayout.Button("搜索出所有New UI", GUILayout.Width(200), GUILayout.Height(50))) { textureList.Clear(); StartCheck(); } if (GUILayout.Button("修改所有PackingTag", GUILayout.Width(200), GUILayout.Height(50))) { float count = 0; foreach (string t in textureList) { count++; EditorUtility.DisplayProgressBar("Processing...", "替换中... ("+count+" / "+textureList.Count+")", count / textureList.Count); TextureImporter ti = AssetImporter.GetAtPath(t) as TextureImporter; //可以重新导入 //ti.SaveAndReimport(); string dirName = Path.GetDirectoryName(t); string folderStr = Path.GetFileName(dirName); ti.spritePackingTag = folderStr; } EditorUtility.ClearProgressBar(); } EditorGUI.EndChangeCheck(); EditorGUILayout.EndHorizontal(); scrollPos = EditorGUILayout.BeginScrollView(scrollPos); foreach (string t in textureList) { EditorGUILayout.BeginHorizontal(); string path = t.Substring(t.IndexOf("NewUI")); EditorGUILayout.LabelField("文件路径 : "+path,GUILayout.Width(400)); string dirName = Path.GetDirectoryName(path); string folderStr = Path.GetFileName(dirName); Texture2D texture = (Texture2D)AssetDatabase.LoadAssetAtPath(t, typeof(Texture2D)); EditorGUILayout.ObjectField(texture, typeof(Texture2D), false); TextureImporter ti = AssetImporter.GetAtPath(t) as TextureImporter; EditorGUILayout.LabelField("当前PackingTag类型 : [" + ti.spritePackingTag + "]"); EditorGUILayout.Space(); if (ti.spritePackingTag != folderStr) { EditorGUILayout.LabelField("错误 !!! 文件夹名字 : [" + folderStr + "]"); } else { EditorGUILayout.LabelField(""); } if (GUILayout.Button("修改PackingTag", GUILayout.Width(150))) { //可以重新导入 //ti.SaveAndReimport(); ti.spritePackingTag = folderStr; } EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); } EditorGUILayout.EndScrollView(); } }
阅读全文
0 0
- Unity 3D
- unity 3d 注意事项
- Unity 3d 摄像头
- Unity 3D 使用
- Unity 3D--PlayerPrefs
- Unity 3d
- Unity 3D俄罗斯方块
- unity 3d 多开
- UNITY 3D笔记
- Unity 3D接触
- unity 3d
- Unity 3D简介
- Unity 3D 琐记
- unity 3d 视频
- Unity 3D 光源
- Unity 3D FingerID
- 再议Unity 3D
- unity 3d 网址
- linux安装JDK1.8
- 保存数据时总显示保存不成功是什么原因?
- 猫都能学会的Unity3D Shader入门指南(一)
- BZOJ 2212 线段树启发式合并
- java 解析json 注意事项
- Unity 3D
- HDU-2844
- 逆向分析学习入门教程
- JAVA位运算详解
- webpack开发vue2项目中的一些坑(1、跨域 2、打包后后端访问一片空白3、加载第三方库的字体文件出错4、加载背景图出错)
- 条款07:为多态基类声明virtual析构函数
- 如何高效设计游戏——关于战斗力计算方式的总结
- 资源收藏
- Android 朋友圈九宫格展示图片