---
title: "Unity2018.4上材质对贴图的冗余引用是否可以不管？"
author: "石心.Yong"
published_by: "Perrin Yong"
canonical: https://www.pystone.net/notes/uwa-answer-unity-material-texture-redundancy/
type: note
content_role: source
source_type: "source"
visibility: public
id_stability: rename-stable
source_path: "10-计算机、信息技术与工程/05-游戏图形与运行时/我的UWA问答/2021-05-21 - Unity2018.4上材质对贴图的冗余引用是否可以不管？.md"
content_hash: 438273b5b570934bc4c2277a50ae6b37d4f2d6950faaad1b55ecf6b64d950678
knowledge_version: 224c990773de.5fa8af6e39fa
site_commit: 224c990773de166d23a886306577dd90379529ce
notes_commit: 5fa8af6e39fa3891d1b9b4832bfa6c4e0ecaaf0a
---
# Unity2018.4上材质对贴图的冗余引用是否可以不管？

> **note · 我的 UWA 问答**
> 本文收录我在 UWA 问答发表的公开回答。问题内容归原提问者；回答保留当时语境，技术结论可能受 Unity 版本、平台和项目条件限制。

## 问题

打包后使用AssetHunter插件分析发现有很多冗余引用，但是在游戏中使用Profiler却没有

打开材质文件发现保存了很多旧的贴图引用信息

![image.png](/media/af4668b6c676974b568b.png)

如_CloudTex这个，是旧版本使用过的，新的Shader里都没有这个属性了

一般的查找引用的方法是找到所有关联的GUID，那就会找到这些旧的引用

但在手机上使用Profiler看内存时却没有相关引用的贴图被加载

所以是否是因为Unity打包时会自动把这些旧引用筛除？尽管在Editor上还是找得到这些冗余引用，是否可以不用理会？

- 提问者：wenzhao
- 提问时间：2021-05-21 04:49:52

## 我的回答

旧的Shader使用过的texture引用会被保留在序列化信息中，这是Unity有意的设计，为了避免编辑器下切换Shader再换回来时需要重新配置的麻烦。

而Unity在**打包时确实会对材质进行深度检查，把当前Shader没有使用的texture依赖都去除**，因此通常情况下打包旧的引用也不会导致包体变大。

但旧的引用在Editor下还存在一个问题，AssetDatabase.GetDependencies接口返回的引用会包括旧的引用，它不会进行深度检测来进行剔除。右键资源Select Dependencies调用的是这个接口，所以也会显示旧的引用，如下图：

![image.png](/media/9786db4856c56b38136c.png)

pic2和pic3是当前Shader2没有引用的。

![image.png](/media/65f06cc14a00037f778e.png)

所以使用GetDependencies这个接口实现一些功能的话，可能由于旧引用导致意外的问题。解决方法是，使用EditorUtility.CollectDependencies这个接口可以返回剔除旧引用的结果。

此外，如果Mat和Pic1，Pic2，Pic3分配别单独打了一个AB包，那么打出的mat.manifest文件中会显示旧的Texture引用，这就是AssetBundle打包的一个不太合理的地方了，还没有调研新的Addressable系统是否做了改进。

![image.png](/media/10647b512d5957a44cd0.png)

- 回答时间：2021-05-21 20:01:18
- 最后更新：2021-05-21 20:01:18
- 采纳状态：未采纳

## 来源与关系

- 上位集合：[我的 UWA 问答](https://www.pystone.net/notes/my-uwa-answers/)
- UWA 标签：Shader、资源管理、渲染模块
- 原始问题：[Unity2018.4上材质对贴图的冗余引用是否可以不管？](https://answer.uwa4d.com/question/60a65af06bb31032f9791779)
- 源页最后更新：2021-05-23 23:23:03
