【小工具】导出Unity资源的预览缩略图

devtools/2024/11/13 9:11:19/

ExportPreviewTools

介绍

导出Unity资源的预览缩略图

使用场景

在某些情况下想要展示拥有的模型资源进行预览时,可以使用其快速预览功能。

工具原理
  • Selection
//获取选中的资源的GUID
string[] assetGUIDs = Selection.assetGUIDs;
  • AssetDatabase类操作资源
//获取预制体
string assetPath = AssetDatabase.GUIDToAssetPath(assetGUID);
Object asset = AssetDatabase.LoadAssetAtPath<Object>(assetPath);
  • AssetPreview生成和获取资源的预览图像
Texture2D previewTexture = AssetPreview.GetAssetPreview(asset);
  • IO写入文件
if (!System.IO.Directory.Exists(folderPath))
{System.IO.Directory.CreateDirectory(folderPath);
}System.IO.File.WriteAllBytes(exportPath, pngData);
  • EncodeToPNG Texture2D 转化为 PNG 字节数组
 byte[] pngData = previewTexture.EncodeToPNG();
代码
using UnityEditor;
using UnityEngine;public static class ExportPreviewTool
{[MenuItem("Tools/Export Preview Images")]static void ExportImages(){//获取当前选中资产的GUIDsstring[] assetGUIDs = Selection.assetGUIDs;foreach (string assetGUID in assetGUIDs){// 获取资产Texture2Dstring assetPath = AssetDatabase.GUIDToAssetPath(assetGUID);Object asset = AssetDatabase.LoadAssetAtPath<Object>(assetPath);Texture2D previewTexture = AssetPreview.GetAssetPreview(asset);//导出Png图片if (previewTexture != null){string folderPath = "Assets/ExportedPreviews";string exportPath = $"{folderPath}/{asset.name}.png";if (!System.IO.Directory.Exists(folderPath)){System.IO.Directory.CreateDirectory(folderPath);}// Texture2D 转化为 PNG 字节数组byte[] pngData = previewTexture.EncodeToPNG();System.IO.File.WriteAllBytes(exportPath, pngData);Debug.Log("Exported preview image to: " + exportPath);}else{Debug.LogWarning("No preview image available for: " + assetPath);}}}
}

http://www.ppmy.cn/devtools/56199.html

相关文章

【图像处理】1、使用OpenCV库图像轮廓的检测和绘制

OpenCV (Open Source Computer Vision Library) 是一个用于计算机视觉和图像处理的开源库。它提供了数百种用于图像和视频分析的算法&#xff0c;并被广泛应用于研究和商业领域。OpenCV 支持多种编程语言&#xff0c;包括 C、Python、Java 等&#xff0c;具有跨平台的特性&…

Cyuyanzhong的内存函数

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、memcpy函数的使用与模拟实现二、memmove函数的使用和模拟实现三、memset函数与memcmp函数的使用&#xff08;一&#xff09;、memset函数&#xff08;内存块…

制造企业的仓库管理如何做好数据分析?

在竞争激烈的现代制造业环境中&#xff0c;仓库管理成为许多生产制造企业面临的一大挑战。随着产品种类的不断增加和客户需求的日一个型号&#xff0c;仓库不仅要处理物料、半成品和成品&#xff0c;还要应对产品更新换代、不同项目客户的特殊需求等复杂因素。面对这些挑战&…

Vue.js中的计算属性:如何让数据自动更新

引言 在Vue.js的世界里&#xff0c;computed属性就像是你的智能助手&#xff0c;它能自动追踪变化&#xff0c;帮你快速做出反应。想象一下&#xff0c;你在做一道菜&#xff0c;调料&#xff08;数据&#xff09;一变&#xff0c;味道&#xff08;界面&#xff09;立刻跟上。…

【干货】微信小程序免费开源项目合集

前言 2024年了&#xff0c;还有小伙伴在问微信小程序要怎么开发&#xff0c;有什么好的推荐学习项目可以参考的。今天分享一个收集了一系列在微信小程序开发中有用的工具、库、插件和资源&#xff1a;awesome-github-wechat-weapp。 开源项目介绍 它提供了丰富的资源列表&…

threejs的学习(二)

上次我们说了如何搭建环境&#xff0c;并成功显示了一个静止的方块&#xff0c; 1.通过轨道控制器查看方块&#xff0c;同时添加坐标轴辅助器 main.js import * as THREE from "../assets/js/three.module"; import { OrbitControls } from "../../../three.j…

【面试系列】PHP 高频面试题

欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;欢迎订阅相关专栏&#xff1a; ⭐️ 全网最全IT互联网公司面试宝典&#xff1a;收集整理全网各大IT互联网公司技术、项目、HR面试真题. ⭐️ AIGC时代的创新与未来&#xff1a;详细讲解AIGC的概念、核心技术、…

第G1周:生成对抗网络(GAN)入门

本文为&#x1f517;365天深度学习训练营中的学习记录博客 &#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制 &#x1f680; 文章来源&#xff1a;K同学的学习圈子深度学习第J6周&#xff1a;ResNeXt-50实战解析 一.理论 生成对抗网络(Generative Adversarial Ne…