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

Unity材质球自动遍历所需贴图

Unity材质球自动遍历所需贴图


文章目录

  • Unity材质球自动遍历所需贴图
  • 一、原理
  • 二、用法
    • 1.代码:
    • 2.使用方法


一、原理

例如一个材质球名为:Decal_Text_Cranes_01_Mat ,
然后从全局遍历出:Decal_Text_Cranes_01_Albedo赋值给材质球的BaseMap,
全局遍历出Decal_Text_Cranes_01_MAODS 赋值给材质球MetallicMap通道,
全局遍历出Decal_Text_Cranes_01_Normal 给材质球NormalMap通道,
**规律:**材质球名字:Decal_Text_Cranes_01_Mat 把后面Mat换成通道名称,就是该材质球的通道贴图


二、用法

1.代码:

using UnityEngine;
using System.Collections.Generic;
using System.IO;
using UnityEditor;public class AutoAssignTextureMaps : MonoBehaviour
{public List<Material> targetMaterials; // 在Inspector中指定目标材质列表private Dictionary<string, string> textureMapNames = new Dictionary<string, string>{{ "Albedo", "_BaseMap" },   // Base Color{ "MAODS", "_MetallicGlossMap" }, // Metallic and Smoothness{ "Normal", "_BumpMap" }     // Normal Map};[ContextMenu("_AlphaMat后缀自动补全")]void AssignTextures1( ){foreach (Material material in targetMaterials){string baseName = material.name.Replace("_AlphaMat", "");foreach (var pair in textureMapNames){string textureName = baseName + "_" + pair.Key;Texture2D texture = FindTexture(textureName);if (texture != null){material.SetTexture(pair.Value, texture);Debug.Log($"Assigned {textureName} to {pair.Value} for material {material.name}");}else{Debug.LogError($"Could not find texture {textureName} for material {material.name}");}}}}[ContextMenu("_Mat后缀自动补全")]void AssignTextures2( ){foreach (Material material in targetMaterials){string baseName = material.name.Replace("_Mat", "");foreach (var pair in textureMapNames){string textureName = baseName + "_" + pair.Key;Texture2D texture = FindTexture(textureName);if (texture != null){material.SetTexture(pair.Value, texture);Debug.Log($"Assigned {textureName} to {pair.Value} for material {material.name}");}else{Debug.LogError($"Could not find texture {textureName} for material {material.name}");}}}}Texture2D FindTexture(string textureName){string[] guids = AssetDatabase.FindAssets(textureName);if (guids.Length > 0){string assetPath = AssetDatabase.GUIDToAssetPath(guids[0]);return AssetDatabase.LoadAssetAtPath<Texture2D>(assetPath);}return null;}
}

2.使用方法

在这里插入图片描述

1.将脚本挂载到一个空物体:
2.把所需的材质球添加到集合列表中。
3.点右上角三个点,进行调用脚本中的方法。


相关文章:

Unity材质球自动遍历所需贴图

Unity材质球自动遍历所需贴图 文章目录 Unity材质球自动遍历所需贴图一、原理二、用法1.代码&#xff1a;2.使用方法 一、原理 例如一个材质球名为&#xff1a;Decal_Text_Cranes_01_Mat &#xff0c; 然后从全局遍历出&#xff1a;Decal_Text_Cranes_01_Albedo赋值给材质球的…...

C++那些事之结构化绑定

C那些事之结构化绑定 在聊结构化绑定之前&#xff0c;有几个面试问题&#xff0c;看看你会不会&#xff1f; 如何使用结构化绑定访问自定义类的私有成员&#xff1f;如何使用结构化绑定修改自定义类的成员呢&#xff1f; 这几个题目估计没几个人能答上来&#xff0c;题目与答案…...

ECRS工时分析软件:工业工程精益生产的智慧引擎

在工业工程学的广阔领域中&#xff0c;程序分析一直扮演着至关重要的角色。其中&#xff0c;ECRS四大原则——取消、合并、重排、简化&#xff0c;作为程序分析的核心&#xff0c;旨在通过优化生产过程&#xff0c;实现成本的节省和精益生产的目标。如今&#xff0c;随着科技的…...

大语言模型的核心岗位及其要求

一、核心岗位 研究科学家&#xff08;Research Scientist&#xff09;&#xff1a; 负责制定研究计划&#xff0c;探索新算法和模型架构。数据科学家&#xff08;Data Scientist&#xff09;&#xff1a; 进行数据收集、分析和预处理。机器学习工程师&#xff08;Machine Lear…...

【屏驱MCU】RT-Thread 文件系统接口解析

本文主要介绍【屏驱MCU】基于RT-Thread 系统的文件系统原理介绍与代码接口梳理 目录 0. 个人简介 && 授权须知1. 文件系统架构1.1 虚拟文件系统目录架构 2. menuconfig 分析3. 代码接口分析3.1 DFS框架挂载目录3.2 【FAL抽象层】分区表和设备表3.3 如何将【文件路径】挂…...

进程管理工具top ps

概述 top 和 ps 是 Linux 系统中两个非常重要的用于管理和监控进程的命令工具。以下是它们的主要功能和区别&#xff1a; 1. 动静 2. 整体 & 详细 top&#xff1a; 动态视图&#xff1a;top 提供了一个实时动态更新的视图&#xff0c;能够持续显示系统中当前正在运行的进程…...

2年社招冲击字节,一天三面斩获offer

在工作满两年的时间选择了求变&#xff0c;带着运气和实力以社招身份重新看今天的互联网环境&#xff0c;从结果看还是复合预期的。 整个面试的流程还挺快的。周中让招聘专员给投递了简历。问什么时候面试&#xff0c;申请了一个周日&#xff0c;直接安排三面。下周周中就开启…...

oppo,埃科光电25届秋招,快手25届技术人才专项计划等几千家企业岗位内推

oppo&#xff0c;埃科光电25届秋招&#xff0c;快手25届技术人才专项计划等几千家企业岗位内推 ①【OPPO】25届秋招开启&#xff01; 内推简历优先筛选&#xff01; 【岗位类别】AI/算法类&#xff0c;软件类&#xff0c;硬件类&#xff0c;工程技术类&#xff0c;品牌策划类&a…...

【Vulnhub系列】Vulnhub Lampiao-1 靶场渗透(原创)

【Vulnhub系列靶场】Vulnhub Lampiao-1靶场渗透 原文转载已经过授权 原文链接&#xff1a;Lusen的小窝 - 学无止尽&#xff0c;不进则退 (lusensec.github.io) 一、主机发现 二、端口扫描 三、web框架 四、web渗透 1、信息收集 2、目录扫描 获得版本信息7.56 3、获取shell …...

MySQL:ORDER BY 排序查询

通过 ORDER BY 条件查询语句可以查询到符合用户需求的数据&#xff0c;但是查询到的数据一般都是按照数据最初被添加到表中的顺序来显示。 基本语法 在MySQL中&#xff0c;排序查询主要通过ORDER BY子句实现。其基本语法如下&#xff1a; SELECT column1, column2, ... FR…...

UML类图 详解

总目录 前言 作为一个程序员&#xff0c;我们经常会使用UML来绘制各种图&#xff08;UML中定义了用例图、类图、时序图、协作图等九种&#xff09;&#xff0c;类图就是其中常用图之一。设计模式中经常会用到的是类图&#xff0c;本文主要是学习UML类图相关资料后的汇总笔记&a…...

【IEEE出版 | 高录用率 | 快速检索 | 有ISBN号!】2024年智能计算与数据挖掘国际学术会议 (ICDM 2024,9月20-22)

智能计算与数据挖掘是当今信息技术领域的研究热点&#xff0c;并在众多领域都有着广泛的应用&#xff0c;如金融、医疗、教育、交通等。随着大数据时代数据量爆炸式增长&#xff0c;如何从海量数据中提取有价值的信息&#xff0c;一直是需要迭代解决的问题。 2024年智能计算与…...

DaoCloud配置不同环境的流水线(Q)

在DaoCloud自动化部署时&#xff0c;不知道如何分别构建生产&#xff0c;测试环境镜像。 Dockfile文件里有 ARG BUILD_ENV"uat" RUN npm run build:${BUILD_ENV} 这样两行代码来区分环境打包的&#xff0c;ARG是用于指定传递给构建运行时的变量&#xff0c;可是…...

基础的Shell命令

Shell命令有很多&#xff0c;以下是一些常用的Shell命令及其简要说明&#xff1a; 1. cd: 切换当前工作目录。 2. ls: 列出目录内容。 3. pwd: 显示当前工作目录的路径。 4. mkdir: 创建新目录。 5. rm: 删除文件或目录。 6. cp: 复制文件或目录。 7. mv: 移动文件或目录…...

量子仿真speedUp的经验

不用CPU的话&#xff0c;好的电脑配置对于jax的编译会更快 GPU编译速度明显最快...

电测量数据交换DLMS∕COSEM组件第61部分:对象标识系统(OBIS)(下)

GB/T 17215.6的本部分规定了对象标识系统(OBIS)的总体结构并将测量设备中的所有常用数据项映射到其标识代码。OBIS为测量设备中的所有数据都提供唯一的标识符,不仅包括测量值,而且还包括仪表设备的配置或获取测量设备运行状态的抽象数据。 5.抽象对象(A=0) 5.1通用和服…...

【Java】重生之String类再爱我一次---练习题(012)

目录 ♦️练习一&#xff1a;用户登录 ♦️练习二&#xff1a;遍历字符串 ♦️练习三&#xff1a;统计字符次数数 ♦️练习四&#xff1a;拼接字符串 ♦️练习五&#xff1a;反转字符串 ♦️练习六&#xff1a;金额转换 ♦️练习七&#xff1a;手机号屏蔽 ♦️练习一&am…...

NSSCTF-GDOUCTF 2023新生赛

[GDOUCTF 2023]hate eat snake 考察&#xff1a;js代码审计 打开题目&#xff0c;发现需要坚持60秒&#xff0c;那么简单的一个思路就是修改得分的变量>60即可 办法1&#xff1a;修改变量 右键查看源代码&#xff0c;之后发现有一个snake.js的文件&#xff0c;ctrlf搜索i…...

论文解析——Character Region Awareness for Text Detection,字符级文本检测CRAFT算法

这篇论文来自CVPR2019&#xff0c;paper地址&#xff1a;Character Region Awareness for Text Detection。 代码&#xff1a;CRAFT-pytorch。 这篇论文主要解决之前的文本检测是基于word-level的检测框&#xff0c;不能识别任意形状的文本的问题。与之前的方法不同&#xff0…...

基于飞腾平台的Kafka移植与安装

【写在前面】 飞腾开发者平台是基于飞腾自身强大的技术基础和开放能力&#xff0c;聚合行业内优秀资源而打造的。该平台覆盖了操作系统、算法、数据库、安全、平台工具、虚拟化、存储、网络、固件等多个前沿技术领域&#xff0c;包含了应用使能套件、软件仓库、软件支持、软件适…...

Android Wi-Fi 连接失败日志分析

1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分&#xff1a; 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析&#xff1a; CTR…...

C++:std::is_convertible

C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

shell脚本--常见案例

1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件&#xff1a; 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

django filter 统计数量 按属性去重

在Django中&#xff0c;如果你想要根据某个属性对查询集进行去重并统计数量&#xff0c;你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求&#xff1a; 方法1&#xff1a;使用annotate()和Count 假设你有一个模型Item&#xff0c;并且你想…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...

算法笔记2

1.字符串拼接最好用StringBuilder&#xff0c;不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...

Java + Spring Boot + Mybatis 实现批量插入

在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法&#xff1a;使用 MyBatis 的 <foreach> 标签和批处理模式&#xff08;ExecutorType.BATCH&#xff09;。 方法一&#xff1a;使用 XML 的 <foreach> 标签&#xff…...

【JVM面试篇】高频八股汇总——类加载和类加载器

目录 1. 讲一下类加载过程&#xff1f; 2. Java创建对象的过程&#xff1f; 3. 对象的生命周期&#xff1f; 4. 类加载器有哪些&#xff1f; 5. 双亲委派模型的作用&#xff08;好处&#xff09;&#xff1f; 6. 讲一下类的加载和双亲委派原则&#xff1f; 7. 双亲委派模…...

AI语音助手的Python实现

引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...

Xela矩阵三轴触觉传感器的工作原理解析与应用场景

Xela矩阵三轴触觉传感器通过先进技术模拟人类触觉感知&#xff0c;帮助设备实现精确的力测量与位移监测。其核心功能基于磁性三维力测量与空间位移测量&#xff0c;能够捕捉多维触觉信息。该传感器的设计不仅提升了触觉感知的精度&#xff0c;还为机器人、医疗设备和制造业的智…...