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.pswp.cn/web/80380.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/80380.shtml
英文地址,請注明出處:http://en.pswp.cn/web/80380.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

2025認證杯數學建模C題思路+代碼+模型:化工廠生產流程的預測和控制

2025認證杯數學建模C題思路代碼模型&#xff0c;詳細內容見文末名片 在化工廠的生產流程中&#xff0c;往往涉及到多個反應釜、管道和儲罐等設備。在 流水線上也有每個位置的溫度、壓力、流量等諸多參數。只有參數處于正常范 圍時&#xff0c;最終的產物才是合格的。這些參數…

Rust 學習筆記:關于 HashMap 的練習題

Rust 學習筆記&#xff1a;關于 HashMap 的練習題 Rust 學習筆記&#xff1a;關于 HashMap 的練習題以下代碼能否通過編譯&#xff1f;若能&#xff0c;輸出是&#xff1f;以下代碼能否通過編譯&#xff1f;若能&#xff0c;輸出是&#xff1f; Rust 學習筆記&#xff1a;關于 …

Vue-事件修飾符

事件修飾符 prevent &#xff08;阻止默認事件&#xff09; 超鏈接 點擊事件 代碼 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>事件修飾符</title><!-- 引入Vue --><script …

LeetCode --- 156雙周賽

題目列表 3541. 找到頻率最高的元音和輔音 3542. 將所有元素變為 0 的最少操作次數 3543. K 條邊路徑的最大邊權和 3544. 子樹反轉和 一、找到頻率最高的元音和輔音 分別統計元音和輔音的出現次數最大值&#xff0c;然后相加即可&#xff0c;代碼如下 // C class Solution {…

告別 pip:使用 uv 加速你的 Python 包管理

使用 uv:更快的 Python 包管理工具 隨著 Python 生態的演進,包管理工具也在不斷升級迭代。uv 是 Astral(同樣維護 ruff 的團隊)推出的下一代 Python 包與項目管理器,主打 單一可執行文件、極致性能,可在多數場景下取代 pip、pip-tools、pipx 與 virtualenv 等傳統工具,…

MATLAB學習筆記(七):MATLAB建模城市的雨季防洪排污的問題

使用 MATLAB 對城市雨季防洪排污問題進行建模與仿真&#xff0c;需要結合數學模型、工程經驗和 MATLAB 的數值計算、數據可視化及優化工具。以下是詳細的步驟指南&#xff0c;包含實際案例和代碼示例&#xff1a; 一、問題分析與建模框架 1. 問題拆解 ? 核心目標&#xff1a; …

以項目的方式學QT開發C++(二)——超詳細講解(120000多字詳細講解,涵蓋qt大量知識)逐步更新!

API 描述 函數原型 參數說明 push_back() 在 list 尾部 添加一個元素 void push_back(const T& value); value &#xff1a;要添 加到尾部的元 素 這個示例演示了如何創建 std::list 容器&#xff0c;并對其進行插入、刪除和迭代操作。在實際應用中&am…

08 web 自動化之 PO 設計模式詳解

文章目錄 一、什么是 POM二、如何基于 POM 進行自動化框架架構&#xff1f;1、base 層封裝2、pageobjects 層封裝3、TestCases 層封裝 三、元素和方法分離&數據分離1、哪些部分可以進行分離2、示例代碼 四、總結 一、什么是 POM POM page object model 頁面對象模型 WEB 自…

將 JSON 批量轉換為 XML:深度解析與完整實現指南

在數據科學與機器學習項目中&#xff0c;數據預處理始終扮演著不可或缺的角色。尤其當你面對多類別圖像標注任務&#xff0c;而標注數據卻是以 JSON 形式存在&#xff0c;而目標檢測模型卻偏好 VOC 格式的 XML 時&#xff0c;這個轉換過程就變得極為關鍵。 本文將帶你深入解讀…

AlphaEvolve:基于Gemini的算法發現與優化綜合報告

引言 ? 本報告分析Google DeepMind于2025年5月14日正式發布的AlphaEvolve技術。? AlphaEvolve是一種由Gemini大型語言模型驅動的進化式編碼代理&#xff0c;專注于通用算法的發現和優化。? 報告深入探討AlphaEvolve的技術原理、實際應用及其對未來AI和算法研究的潛在影響。…

排序算法之高效排序:快速排序,歸并排序,堆排序詳解

排序算法之高效排序&#xff1a;快速排序、歸并排序、堆排序詳解 前言一、快速排序&#xff08;Quick Sort&#xff09;1.1 算法原理1.2 代碼實現&#xff08;Python&#xff09;1.3 性能分析 二、歸并排序&#xff08;Merge Sort&#xff09;2.1 算法原理2.2 代碼實現&#xf…

Android開發——輪播圖引入

Android開發——輪播圖引入 一、前期準備與依賴引入二、配置啟動類(AndroidManifest.xml)三、構造啟動類(MainActivity.java)四、配置布局文件(activity_main.xml)五、最終效果與擴展方向一、前期準備與依賴引入 在開始引入輪播圖功能前,需確保已正確搭建Android開發環境…

[逆向工程]C++實現DLL卸載(二十六)

[逆向工程]C實現DLL卸載&#xff08;二十六&#xff09; 引言 DLL注入&#xff08;DLL Injection&#xff09;是Windows系統下實現進程間通信、功能擴展、監控調試的核心技術之一。本文將從原理分析、代碼實現、實戰調試到防御方案&#xff0c;全方位講解如何用C實現DLL注入&…

lesson01-PyTorch初見(理論+代碼實戰)

一、初識PyTorch 二、同類框架 PyTorchVSTensorFlow 三、參數 對比 四、PyTorch生態 四、常用的網絡層 五、代碼分析 import torch from torch import autogradx torch.tensor(1.) a torch.tensor(1., requires_gradTrue) b torch.tensor(2., requires_gradTrue) c tor…

STM32中的DMA

DMA介紹 什么是DMA? DMA&#xff08;Direct Memory Access&#xff0c;直接存儲器訪問&#xff09;提供在外設與內存、存儲器和存儲器之間的高速數據傳輸使用。它允許不同速度的硬件裝置來溝通&#xff0c;而不需要依賴于CPU&#xff0c;在這個時間中&#xff0c;CPU對于內存…

聊聊JetCache的緩存構建

序 本文主要研究一下JetCache的緩存構建 invokeWithCached com/alicp/jetcache/anno/method/CacheHandler.java private static Object invokeWithCached(CacheInvokeContext context)throws Throwable {CacheInvokeConfig cic context.getCacheInvokeConfig();CachedAnnoC…

c#隊列及其操作

可以用數組、鏈表實現隊列&#xff0c;大致與棧相似&#xff0c;簡要介紹下隊列實現吧。值得注意的是循環隊列判空判滿操作&#xff0c;在用鏈表實現時需要額外思考下出入隊列條件。 設計頭文件 #ifndef ARRAY_QUEUE_H #define ARRAY_QUEUE_H#include <stdbool.h> #incl…

開源項目實戰學習之YOLO11:12.3 ultralytics-models-sam-encoders.py源碼分析

?? 點擊關注不迷路 ?? 點擊關注不迷路 ?? 另外,前些天發現了一個巨牛的AI人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。感興趣的可以點擊相關跳轉鏈接。 點擊跳轉到網站。 ultralytics-models-sam 1.sam-modules-encoders.pyblocks.py: 定義模型中的各…

STM32 | FreeRTOS 消息隊列

01 一、概述 隊列又稱消息隊列&#xff0c;是一種常用于任務間通信的數據結構&#xff0c;隊列可以在任務與任務間、中斷和任務間傳遞信息&#xff0c;實現了任務接收來自其他任務或中斷的不固定長度的消息&#xff0c;任務能夠從隊列里面讀取消息&#xff0c;當隊列中的消…

Java 安全漏洞掃描工具:如何快速發現和修復潛在問題?

Java 安全漏洞掃描工具&#xff1a;如何快速發現和修復潛在問題&#xff1f; 在當今的軟件開發領域&#xff0c;Java 作為一種廣泛使用的編程語言&#xff0c;其應用的規模和復雜度不斷攀升。然而&#xff0c;隨著應用的拓展&#xff0c;Java 應用面臨的潛在安全漏洞風險也日益…