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

将材质球中的纹理属性对应的贴图保存至本地

 通过Texture2D的EncodeToPNG方法将纹理转为图片形式

material.GetTexture方法通过属性名获取纹理贴图

material.SetTexture方法通过属性名设置纹理贴图

属性名可在shader代码中查看

using UnityEngine;
using System.IO;public class TextureSaver : MonoBehaviour
{public Material targetMaterial;public string textureName = "_MainTex"; // 可自定义材质属性名public void SaveMaterialTexture(){if (targetMaterial == null){Debug.LogError("未指定目标材质球!");return;}Texture mainTex = targetMaterial.GetTexture(textureName);if (mainTex == null){Debug.LogError($"材质中未找到纹理属性:{textureName}");return;}if (mainTex is Texture2D){SaveTexture2D(mainTex as Texture2D);}else if (mainTex is RenderTexture){SaveRenderTexture(mainTex as RenderTexture);}else{Debug.LogError("不支持此纹理类型:" + mainTex.GetType());}}void SaveTexture2D(Texture2D texture){if (!texture.isReadable){Debug.LogError("纹理不可读!请在导入设置中启用 Read/Write Enabled");return;}byte[] bytes = texture.EncodeToPNG();string filePath = Path.Combine(Application.persistentDataPath, "SavedTexture.png");File.WriteAllBytes(filePath, bytes);Debug.Log("保存成功:" + filePath);}void SaveRenderTexture(RenderTexture rt){Texture2D tex2D = new Texture2D(rt.width, rt.height, TextureFormat.RGBA32, false);RenderTexture.active = rt;tex2D.ReadPixels(new Rect(0, 0, rt.width, rt.height), 0, 0);tex2D.Apply();RenderTexture.active = null;SaveTexture2D(tex2D);Destroy(tex2D);}
}

http://www.xdnf.cn/news/730495.html

相关文章:

  • 【iptables防火墙】-- URL过滤 (Hexstring、IP、DoT和DoH)
  • 用wireshark抓了个TCP通讯的包
  • 讲述我的plc自学之路 第十一章
  • 一套qt c++的串口通信
  • 新版Chrome浏览器WEB端加载DWG TrueView查看DWG、dxf工程图纸
  • CentOS 7 环境下部署 LAMP
  • RabbitMQ和MQTT区别与应用
  • MSVC支持但是Clang会报错的C++行为
  • 在 ODROID-H3+ 上安装 Win11 系统
  • Python图片格式批量转换器教程
  • 【仿生机器人】仿生机器人系统架构设计2.0——具备可执行性
  • MySQL事务及其原理
  • 【Java】mybatis-plus乐观锁-基本使用
  • 高效微调大模型:LoRA技术详解
  • python里的Matplotlib库
  • C#面试问题41-60
  • 嵌入式(1):STM32 GPIO与AFIO深度解析:从原理到高阶应用实战
  • YOLO使用SAHI进行小目标检测
  • 深度剖析Node.js的原理及事件方式
  • AgenticSeek,开源本地通用AI Agent,自主执行任务
  • 从零开始手写一个Promise,彻底理解异步编程的核心原理
  • 如何获取Minio元数据
  • 每日八股文5.30
  • 谷云科技发布业内首份 Oracle OSB 迁移到 iPaaS 技术白皮书
  • 40. 自动化异步测试开发之编写异步业务函数、测试函数和测试类(类写法)
  • Delphi读写Mifare Desfire Ev1 Ev2 EV3卡修改AES密钥源码
  • 39. 自动化异步测试开发之编写异步业务函数、测试函数和测试类(函数写法)
  • 逆向分析基础总结
  • HTML 文件反编译指南:优化与学习网页代码
  • 【容器docker】启动容器kibana报错:“message“:“Error: Cannot find module ‘./logs‘