【Unity资源管理】任何导入资源的配套导入器AssetImporter

AssetImporter 类是什么呢?

当在Unity中导入资源(比如图片、模型、音频等)时,Unity会根据资源的类型创建相应的AssetImporter! 在Unity中,每个导入的资源都会有一个相应的AssetImporter与之对应。当你将资源(比如图片、模型、音频等)导入到Unity项目中时,Unity会自动为每种类型的资源创建一个对应的AssetImporter实例。

为啥说Unity开源呢 AssetImporter类似于PS(Photoshop)能够解读多种格式的图片文件(比如 JPG、PNG、PSD),Unity中的AssetImporter可以解读不同类型的资源文件(比如图片、模型、音频等)并提供统一的接口来管理它们。它们都有能力理解特定格式的数据,并根据这些数据进行相应的操作。

AssetImporter提供了在Unity项目中对资源进行处理和管理的能力,允许你修改和配置资源的各种属性和设置。这种能力类似于资源解码器能够解析不同类型文件的数据并提供访问和修改的功能!

AssetImporter 类的用途

在 Unity 中主要用于管理和控制各种资源的导入过程。以下是一些 AssetImporter 类可以执行的操作:

1. **获取和设置导入参数**:
   - 设置纹理的压缩格式、颜色空间、分辨率等。
   - 设置模型的优化级别、网格格式、骨骼层级等。
   - 设置音频的采样率、位深度、压缩格式等。

2. **控制资源的导入状态**:
   - 刷新(Reload)特定资源的导入设置,使其根据最新的源文件重新导入。
   - 确定资源是否需要重新导入(IsImportedAtPath)。

3. **AssetBundle管理**:
   - 设置或获取资源所属的 AssetBundle 名称(assetBundleName)和变体名称(assetBundleVariant)。
   - 控制资源是否应被打包进 AssetBundle。

例如:

[MenuItem("LeoTools/NameAb/Models")]static void RenameAbModels(){// 获取用户在Assets目录下选中的对象,并且存储在数组中GameObject[] AllSelectObj = Selection.gameObjects;//返回用户选择的对象// 如果有对象被选中,则执行选中操作if (AllSelectObj != null && AllSelectObj.Length > 0){// 为选中的对象设置 AssetBundle 名称foreach (Object OneSelectObj in AllSelectObj){//AssetDatabase.GetAssetPath(selectedObject) 这句是获取选择的物体所在路径           string OneSelectAssetPath = AssetDatabase.GetAssetPath(OneSelectObj);Debug.Log(OneSelectAssetPath);//获取这个遍历到的其中一个资源的路径,通过这个唯一的路径获取该资源编码信息AssetImporter assetImporter = AssetImporter.GetAtPath(OneSelectAssetPath);//设置AssetBundle名字和后缀变体assetImporter.SetAssetBundleNameAndVariant("Models", "unity");}// 刷新 AssetDatabase,确保在编辑器中能够看到新生成的 AssetBundlesAssetDatabase.Refresh();}else{UnityEngine.Debug.LogWarning("未选中物体");}Debug.Log("把选中的物体指定一个AssetBundle名叫-Models");}

;用于设置资源的AssetBundle名称和变体!assetPath是资源在项目中的路径,例如:"Assets/Textures/MyTexture.png"。

4. **用户数据管理**:
   - 获取或设置自定义的用户数据(userData),这些数据可以是任何字符串形式的信息,用于存储与特定资源相关的元数据。

5. **路径操作**:
   - 使用 GetAtPath 方法通过指定的路径获取 AssetImporter 对象,以便对特定资源进行操作。
   - 获取资源的导入路径(assetPath)。

6. **导入设置预设应用**:
   - 应用或删除导入设置预设(ApplyReimportSettings 和 DeleteImportSetting)。

7. **重定向引用**:
   - 在资源之间有依赖关系时,处理资源重定向引用(RedirectReferencesToAssets)。

8. **导出和导入**:
   - 导出资源到特定文件格式(ExportPackage)。
   - 从已导出的包中导入资源(ImportAssetAtPath)。

9. **元数据操作**:
   - 获取或设置资源的元数据信息,如生成器(GetGeneratorName 和 SetGeneratorName)和其他特定于类型的导入设置。

通过使用 AssetImporter 类,开发者可以精细地控制资源的导入过程和最终生成的资源内容,以优化游戏性能、减少加载时间或者实现特定的项目需求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/497929.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何衡量机器与人类的智能关系,AI智商评测标准专家研讨会邀请

21世纪以来,人工智能领域陆续爆发很多重要事件。其中最吸引人们眼球的,当属2016年战胜了人类围棋冠军并开始能够从0自我学习的AlphaGo。10月26日,软银CEO孙正义在沙特阿拉伯举行的未来投资计划大会上称,未来30年内AI的智商&#x…

java测试一个泰勒级数_自己 推导一个 泰勒级数

一开始 的 时候, 以为 泰勒级数 是 f ( x ) 和 n 阶导数 之间 的 关系, 或者 f ( x ) 的 1 阶导数 和 2 阶 、3 阶 …… n 阶导数 之间 的 关系 , 作了 一些 这样 的 推导 :f ′ ( x ) [ f ( x ⊿ x ) - f ( …

谷歌Jeff Dean团队发文,探讨「学习模型」如何替代传统索引结构

原文来源:arxiv-vanity作者:Tim Kraska、Alex Beutel、Ed H. Chi、Jeffrey Dean、Neoklis Polyzotis「雷克世界」编译:嗯~阿童木呀、多啦A亮、我是卡布达索引就是模型:B-Tree-Index可以看作是一个能够将一个键映射到排序数组中记录…

Struts2源码阅读(二)_ActionContext及CleanUP Filter

1. ActionContext ActionContext是被存放在当前线程中的,获取ActionContext也是从ThreadLocal中获取的。所以在执行拦截器、 action和result的过程中,由于他们都是在一个线程中按照顺序执行的,所以可以可以在任意时候在ThreadLocal中获取 Act…

php html区别_php与html区别

php与html区别HTML是超文本标记语言;PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。HTML主要用在客户端的显示,比如我们浏览的网页,特别是静态网页,都…

Struts2源码阅读(三)_DispatcherConfigurationProvider

首先强调一下struts2的线程程安全,在Struts2中大量采用ThreadLocal线程局部变量的方法来保证线程的安全,像Dispatcher等都是通过ThreadLocal来保存变量值,使得每个线程都有自己独立的实例变量,互不相干. 接下来就从Dispatcher开始看起,先看其构造函数&a…

php点击链接代码,php 获取超链接中文本的代码

本文分享的这段代码,使用php正则从超链接中提取文本。例如,可以从Link中,获取文本内容:Link。代码如下:/*** 从超链接中提取文本* param string $url* return string* edit www.jbxue.com*/function getUrlLinkText($u…

谷歌宣布在北京成立AI中国中心:李飞飞和李佳共同领导

来源:澎湃新闻概要:谷歌正式宣布谷歌AI中国中心(Google AI China Center)在北京成立。谷歌正式宣布谷歌AI中国中心(Google AI China Center)在北京成立。12月13日,在上海举行的谷歌开发者大会&a…

2008php多版本共存,ECS Windows 2008 IIS如何同时配置多版本的php

ECS Windows 2008 IIS如何同时配置多版本的phpWindows可以通过IIS下安装PHP Manager工具让IIS可以同时支持多版本的php,具体步骤如下所示:1.首先需要下载PHP Manager软件(下载地址:http://phpmanager.codeplex.com/releases/view/69115)&…

Struts2源码阅读(四)_DispatcherConfigurationProvider续

接下来第三步:init_LegacyStrutsProperties()调用的是调用的是LegacyPropertiesConfigurationProvider通过比较前面DefaultPropertiesProvider与调用的是LegacyPropertiesConfigurationProvider.发现DefaultPropertiesProvider继承自后者,但重写了register()方法,主要是生成Pro…

AI 与区块链:两大热门技术,会碰撞出什么样的火花?

来源:36氪概要:区块链和AI可以说是当今最热门的两个技术方向了。区块链和AI可以说是当今最热门的两个技术方向了。在一般人看来,这两大技术似乎没有什么交叉的地方,因为区块链和AI分别属于是技术谱系的两个极端:一个是…

php5.5升级到php5.6,从php5.5.9升级到php5.6之后,相当于php5enmod?

在ubuntu服务器中,我曾经为php5.5.9安装模块,例如带有apt-get的mcrypt,然后使用sudo php5enmod mcrypt启用了它.现在,我已经升级到php5.6,并且错过了一个在Laravel 4.2中与PHPThumb一起使用的模块,该模块需要GID或Imagick来修改图像.所以我做了 :$sudo apt-get inst…

伯克利人工智能研究院最新研究:协作型工业机器人如何更智能?

原文来源:BAIR作者:Changliu Liu、Masayoshi Tomizuka「雷克世界」编译:嗯~阿童木呀、我是卡布达在现代工厂中,工人和机器人是两大主要劳动力。出于安全考虑,这两者通常被限制在金属笼中的机器人分离开来,而…

Struts2源码阅读(五)_FilterDispatcher核心控制器

Dispatcher已经在之前讲过,这就好办了。FilterDispatcher是Struts2的核心控制器,首先看一下init()方法。 public void init(FilterConfig filterConfig) throws ServletException { try { this.filterConfig filterConfig; initLogging(); …

Php如何过360拦截,PHP常见漏洞修复文件-360漏洞修复插件

主要对常见的漏洞进行拦截,如:SQL注入漏洞、检测POST数据、XSS漏洞防护等,效果非常不错,值得拥有。1、下载:360漏洞修复插件2、解压后,上传整个文件夹至服务器根目录3、if(is_file($_SERVER[DOCUMENT_ROOT]./360safe/3…

谷歌开源 TFGAN,让训练和评估 GAN 变得更加简单

作者:思颖概要:训练神经网络的时候,通常需要定义一个损失函数来告诉网络它离目标还有多远。三年前,蒙特利尔大学 Ian Goodfellow 等学者提出「生成式对抗网络」(Generative Adversarial Networks,GANs&…

Struts2源码阅读(六)_ActionProxyActionInvocation

下面开始讲一下主菜ActionProxy了.在这之前最好先去了解一下动态Proxy的基本知识.ActionProxy是Action的一个代理类,也就是说Action的调用是通过ActionProxy实现的,其实就是调用了ActionProxy.execute()方法,而该方法又调用了ActionInvocatio…

py语言和php,php和python什么区别

python语言的风格Python在设计上坚持了清晰划一的风格,这使得Python成为一门易读、易维护,并且被大量用户所欢迎的、用途广泛的语言。设计者开发时总的指导思想是,对于一个特定的问题,只要有一种最好的方法来解决就好了。这在由Ti…

计算机产业深度报告:云计算与人工智能开启新一轮技术变革周期

来源:乐晴智库概要:每一次的技术迭代都将行业推向新的高度,同时也对产业生态和企业兴衰产生重大影响。纵观整个IT产业的发展史,从1960年代到现在的2010年代,科技行业历经了大型机时代、小型机时代、PC时代、互联网时代…

自动分页,返回时跳回指定页

实现原理: displaytag 自动分页时,只需要提供一个“集合”(name 属性) 和翻页对应的 requestURI 属性(也是返回整体的集合) 执行翻页时 displaytag 会自动计算出页数,形如: http://localhost:8080/bpp/ma…