Unity的AssetPostprocessor之Model:深入解析与实用案例 2
Unity AssetPostprocessor中Model相关函数的实际应用
Unity AssetPostprocessor是Unity引擎中的一个重要功能,它可以在导入资源时自动一些脚本,以便对资源进行自定义处理。其中,Model相关的函数可以用于对导入的3D模型进行处理,包括修改模型的材质、纹理、网格等属性。本文将介绍Model相关函数的实际应用,并提供多个使用例子。
ModelImporterMaterialName
ModelImporterMaterialName函数可以用于修改模型的材质名称。例如,我们可以将所有模型的材质名称都修改为“DefaultMaterial”。具体实现如下:
using UnityEngine;
using UnityEditor;
public class MyModelPostprocessor : AssetPostprocessor
{
void OnPreprocessModel()
{
ModelImporter importer = assetImporter as ModelImporter;
importer.materialName = "DefaultMaterial";
}
}
ModelImporterMaterialSearch
ModelImporterMaterialSearch函数可以用于修改模型的材质搜索路径。例如,我们可以将所有模型的材质搜索路径都修改为“Assets/Materials”。具体实现如下:
using UnityEngine;
using UnityEditor;
public class MyModelPostprocessor : AssetPostprocessor
{
void OnPreprocessModel()
{
ModelImporter importer = assetImporter as ModelImporter;
importer.materialSearch = ModelImporterMaterialSearch.Local;
importer.materialSearchPath = "Assets/Materials";
}
}
ModelImporterMaterialImportMode
ModelImporterMaterialImportMode函数可以用于修改模型的材质导入模式。例如,我们可以将所有模型的材质导入模式都修改为“None”。具体实现如下:
using UnityEngine;
using UnityEditor;
public class MyModelPostprocessor : AssetPostprocessor
{
void OnPreprocessModel()
{
ModelImporter importer = assetImporter as ModelImporter;
importer.materialImportMode = ModelImporterMaterialImportMode.None;
}
}
ModelImporterMeshCompression
ModelImporterMeshCompression函数可以用于修改模型的网格压缩方式。例如,我们可以将所有模型的网格压缩方式都修改为“Off”。具体实现如下:
using UnityEngine;
using UnityEditor;
public class MyModelPostprocessor : AssetPostprocessor
{
void OnPreprocessModel()
{
ModelImporter importer = assetImporter as ModelImporter;
importer.meshCompression = ModelImporterMeshCompression.Off;
}
}
ModelImporterNormals
ModelImporterNormals函数可以用于修改模型的法线计算方式。例如,我们可以将所有模型的法线计算方式都修改为“Calculate”.具体实现如下:
using UnityEngine;
using UnityEditor;
public class MyModelPostprocessor : AssetPostprocessor
{
void OnPreprocessModel()
{
ModelImporter importer = assetImporter as ModelImporter;
importer.importNormals = ModelImporterNormals.Calculate;
}
}
ModelImporterTangents
ModelImporterTangents函数可以用于修改模型的切线计算方式。例如,我们可以将所有模型的切线计算方式都修改为“Calculate”.具体实现如下:
using UnityEngine;
using UnityEditor;
public class MyModelPostprocessor : AssetPostprocessor
{
void OnPreprocessModel()
{
ModelImporter importer = assetImporter as ModelImporter;
importer.importTangents = ModelImporterTangents.Calculate;
}
}
ModelImporterAnimationCompression
ModelImporterAnimationCompression函数可以用于修改模型的动画压缩方式。例如,我们可以将所有模型的动画压缩方式都修改为“Off”。具体实现如下:
using UnityEngine;
using UnityEditor;
public class MyModelPostprocessor : AssetPostprocessor
{
void OnPreprocess()
{
ModelImporter importer = assetImporter as ModelImporter;
importer.animationCompression = ModelImporterAnimationCompression.Off;
}
}
ModelImporterAnimationType
ModelImporterAnimationType函数可以用于修改模型的动画类型。例如,我们可以将所有模型的动画类型都修改为“Legacy”。具体实现如下:
using UnityEngine;
using UnityEditor;
public class MyModelPostprocessor : AssetPostprocessor
{
void OnPreprocessModel()
{
ModelImporter importer = assetImporter as ModelImporter;
importer.animationType = ModelImporterAnimationType.Legacy;
}
}
ModelImporterRigImportMode
ModelImporterRigImportMode函数可以用于修改模型的骨骼导入模式。例如,我们可以将所有模型的骨骼导入模式都修改为“None”。体实现如下:
using UnityEngine;
using UnityEditor;
public class MyModelPostprocessor : AssetPostprocessor
{
void OnPreprocessModel()
{
ModelImporter importer = assetImporter as ModelImporter;
importer.animationType = ModelImporterAnimationType.None;
}
}
结论
本文介绍了Unity AssetPostprocessor中Model相关函数的实际应用,并提供了多个使用例子。这些函数可以用于对导入的3D模型进行自定义处理,包括修改模型的材质、纹理、网格等属性。通过使用这些函数,我们可以更加灵活地处理导入的3D模型,满足不同的需求。
Unity的AssetPostprocessor之Model:深入解析与实用案例 2的更多相关文章
- Unity3D for VR 学习(9): Unity Shader 光照模型 (illumination model)
关于光照模型 所谓模型,一般是由学术算法发起, 经过大量实际数据验证而成的可靠公式 现在还记得2009年做TD-SCDMA移动通信算法的时候,曾经看过自由空间传播模型(Free space propa ...
- Unity之GPS定位(高德解析)
Unity之GPS定位 Unity之GPS定位(高德解析) 前言 开篇 Unity版本及使用插件 正题 创建场景 写脚本 把脚本挂载到场景中 打包发布场景 安装真机并且测试 代码中的==Key==怎么 ...
- Android之三种网络请求解析数据(最佳案例)
AsyncTask解析数据 AsyncTask主要用来更新UI线程,比较耗时的操作可以在AsyncTask中使用. AsyncTask是个抽象类,使用时需要继承这个类,然后调用execute()方法. ...
- 用DOM4J解析XML文件案例
用DOM4J解析XML文件案例,由于DOM4J不像JAXP属于JAVASE里,所以如果要使用DOM4J,则必须额外引入jar包,如图:
- (转载)Android之三种网络请求解析数据(最佳案例)
[置顶] Android之三种网络请求解析数据(最佳案例) 2016-07-25 18:02 4725人阅读 评论(0) 收藏 举报 分类: Gson.Gson解析(1) 版权声明:本文为博主原创 ...
- DNS解析综合学习案例
DNS解析综合学习案例 #图右侧为做题前环境配置 #命令为红色 #命令加载内容为绿色 #vi编辑内容为蓝色 1.用户需把/dev/myvg/mylv逻辑卷以支持磁盘配额的方式挂载到网页目录下 [roo ...
- DNS解析综合学习案例(附详细答案)
1.用户需把/dev/myvg/mylv逻辑卷以支持磁盘配额的方式挂载到网页目录下2.在网页目录下创建测试文件index.html,内容为用户名称,通过浏览器访问测试3.创建用户账户,对LVM配置磁盘 ...
- .NET 用 Unity 依赖注入——概述注册和解析类型(1)
本文内容 Unity 概述 环境 一个真实的例子 类型注册(Type Registrations) 解析类型(Resolving Types) 跳槽,新公司使用了 Unity,初步看了一下,公司的使用 ...
- 《Unity系列》Json文件格式的解析——初级教程
Json作为轻量级的数据交换格式,被广泛应用于网络数据传输中.相关的解析工具层出不穷,一般掌握一个工具的应用其他的相应工具就能立马学会. 这里以C#中的LitJson为例给大家示范一下解析工具的用法. ...
- 【转】关于Unity协同程序(Coroutine)的全面解析
http://www.unity.5helpyou.com/2658.html 本篇文章我们学习下unity3d中协程Coroutine的的原理及使用 1.什么是协调程序 unity协程是一个能暂停执 ...
随机推荐
- 多线程结合自定义logback日志实现简单的工单日志输出
前言 这周学习了logback自定义日志格式.多线程基础.以及常见的定时器,本篇博客主要是结合以上知识实现一个简单的定时全部工单输出任务,再通过自定义的日志打印输出到控制台. 1.logback自定义 ...
- Springboot整合Jwt实现用户认证
前言 相信大家在进行用户认证中或多或少都要对用户进行认证,当前进行认证的方式有基于session.token等主流方式,但是目前使用最广泛的还是基于JWT的用户认证,特别适用于前后端分离的项目. 本篇 ...
- GPFS 文件系统部署步骤
GPFS 文件系统部署步骤 参考文档: 简书网友提供: https://www.jianshu.com/p/a0ecc0838b3b?utm_campaign=maleskine&utm_co ...
- 2021.05.09【NOIP提高组】模拟赛总结
2021.05.09[NOIP提高组]模拟赛总结 T1 T2
- Python_11 类的方法
一.查缺补漏 1. 实例方法必须用类实例化对象()来调用,用类来调用时会执行,但是self中不是实例化类地址而是传的字符串 二.类中的方法 1. 实例方法 1. 定义在类里面的普通方法(函数) 2. ...
- Cesium之Web Workers
1. 引言 多线程是编程中常用的方法,例如,在桌面程序中,主线程一般是UI线程,负责UI绘制与用户交互,而运算处理往往是交给背后的工作线程,这样可以有效避免交互时的卡顿感 浏览器是多进程的,每打开一个 ...
- rockyLinux 初体验(教程)PostgreSQL15
目录 数据库软件 PostgreSQL 安装 数据库软件 PostgreSQL 配置 数据库软件 PostgreSQL 交互 通用数据库管理软件 DBeaver 彼时,PostgreSQL 已经更新到 ...
- C# 打开蓝牙设置界面
蓝牙设置相关界面,以下是通过C#方式打开的几个方式,记录一下 蓝牙设置界面 1.控制面板命令bthprops.cpl 可以用控制面板 control+bthprops.cpl,也可以直接bthprop ...
- PropertyGrid实现文件选择项
原来公司的一段代码,现在给朋友写的软件里也用上了,看样用处挺多,所以保存一下. 自定义属性类: using System; using System.Collections.Generic; usin ...
- 2021-05-06:给定一个二维数组matrix, 你可以从任何位置出发,走向上下左右四个方向 。返回能走出来的最长的递增链长度。
2021-05-06:给定一个二维数组matrix, 你可以从任何位置出发,走向上下左右四个方向 .返回能走出来的最长的递增链长度. 福大大 答案2021-05-06: 自然智慧即可. 动态规划.二维 ...