当前位置: 首页 > backend >正文

Unity 批量将图片从默认类型改为Sprite类型

先将该脚本放到Editor目录下

如何使用:选中目录,然后点击Tool里面的批量修改按钮

using System;
using UnityEngine;
using UnityEditor;
using System.IO;
using System.Linq;/// <summary>
/// 此工具可以批量将图片类型修改为精灵
/// </summary>
public class TextureTypeModifier
{[MenuItem("Tools/批量修改图片为Sprite(2D and UI)", false, 20)]private static void ConvertSelectedFolderToSprite(){// 获取选中的文件夹路径string folderPath = AssetDatabase.GetAssetPath(Selection.activeObject);if (!AssetDatabase.IsValidFolder(folderPath)){EditorUtility.DisplayDialog("错误", "请选择一个文件夹!", "确定");return;}// 递归获取所有图片文件string[] imagePaths = Directory.GetFiles(folderPath, "*.*", SearchOption.AllDirectories).Where(file => file.EndsWith(".png", StringComparison.OrdinalIgnoreCase) ||file.EndsWith(".jpg", StringComparison.OrdinalIgnoreCase) ||file.EndsWith(".jpeg", StringComparison.OrdinalIgnoreCase)).ToArray();int modifiedCount = 0;// 批量修改foreach (string imagePath in imagePaths){if (imagePath.EndsWith(".meta")) continue;TextureImporter importer = AssetImporter.GetAtPath(imagePath) as TextureImporter;if (importer != null&& importer.textureType==TextureImporterType.Default && importer.textureType != TextureImporterType.Sprite){importer.textureType = TextureImporterType.Sprite;importer.spriteImportMode = SpriteImportMode.Single;importer.mipmapEnabled = false;importer.SaveAndReimport();modifiedCount++;}}AssetDatabase.Refresh();EditorUtility.DisplayDialog("完成", $"已将 {modifiedCount} 张图片转换为 Sprite(2D and UI)\n目录: {folderPath}", "确定");}// 验证菜单项是否可用(仅当选中文件夹时显示)[MenuItem("Tools/批量修改图片为Sprite(2D and UI)", true, 20)]private static bool ValidateConvertSelectedFolderToSprite(){return Selection.activeObject != null && AssetDatabase.IsValidFolder(AssetDatabase.GetAssetPath(Selection.activeObject));}
}
http://www.xdnf.cn/news/6743.html

相关文章:

  • 数字金融发展对商业银行信用风险的影响研究(stata分析范文)
  • 描述性统计图表
  • HC32L190 ADC采集
  • firewall防火墙
  • 前端方法的总结及记录
  • 隧道结构安全在线监测系统解决方案
  • 探秘雷克赛恩生产基地:解码国产投影技术深耕之路
  • 动态规划-63.不同路径II-力扣(LeetCode)
  • 操作系统知识总结
  • 丝杆升降机最大载荷的工程力学解析与选型实践
  • 懒汉式单例模式的线程安全实现
  • ros2中自定义的package查不到?
  • 事件响应策略规范模版
  • 基于Unity的简单2D游戏开发
  • [特殊字符] 如何优雅地避免 SQL 多表 LEFT JOIN 造成的笛卡尔积放大问题?
  • springboot连接高斯数据库(GaussDB)踩坑指南
  • 杰理ac696配置mic
  • 二水平设计的单次重复
  • 【Shell的基本操作】
  • jvm第一篇《内存与垃圾回收》学习笔记第一章jvm初始
  • 电平匹配电路
  • windows下找出时间大于某时间的附件
  • JavaScript - JavaScript 运算符之圆括号运算符与方括号运算符(圆括号运算符概述、圆括号运算符用法、方括号运算符概述、方括号运算符用法)
  • 最新开源 TEN VAD 与 Turn Detection 让 Voice Agent 对话更拟人 | 社区来稿
  • [ linux-系统 ] 进程优先级 | Linux内核O(1)算法
  • 解决uni-app开发中的“TypeError: Cannot read property ‘0‘ of undefined“问题
  • 51单片机的lcd12864驱动程序
  • 裸金属服务器和云服务器之间的差别
  • ansible进阶06
  • NX二次开发C#---遍历当前工作部件实体并设置颜色