如何排查项目中文件的使用情况?以textures、3D models、materials为例
查找纹理、3D模型、材质的使用位置与甄别冗余文件方法
Unity 场景操作
查询资源使用位置
- 选中目标资源,在Inspector面板底部点击
Find References In Scene,可快速定位场景内引用该资源的对象; - 若要覆盖所有场景、预制体的全局引用,使用
Edit > Find References In Project,结果会在Project窗口搜索区展示,支持按资源类型筛选; - 可通过
AssetDatabase编写简单脚本批量查询,示例代码:
using UnityEditor; using UnityEngine; public class AssetReferenceFinder { [MenuItem("Tools/List All Asset References")] static void ListReferences() { var selectedAsset = Selection.activeObject; if (selectedAsset == null) return; string assetPath = AssetDatabase.GetAssetPath(selectedAsset); var allReferences = AssetDatabase.GetDependencies(new[] { assetPath }, true); Debug.Log($"资源 {selectedAsset.name} 的所有引用:"); foreach (var path in allReferences) { if (path != assetPath) Debug.Log(path); } } }
甄别未使用资源
- 打开
Window > Analysis > Memory Profiler,捕获内存快照后,在Assets标签下筛选未标记为Used的资源; - 用
AssetDatabase.FindUnusedAssets()编写脚本导出未使用资源列表,注意该方法会忽略Resources文件夹或代码动态加载的资源; - 可借助编辑器扩展脚本批量清理(避免依赖第三方工具时的兼容性问题)
Unreal Engine 场景操作
查询资源使用位置
- 右键目标资源,选择
Find References,在弹出的Reference Viewer面板中查看完整引用链,可展开层级定位到具体使用的Actor、蓝图或材质实例; - 启用
Window > Developer Tools > Reference Viewer面板,将资源拖入面板后,可直观查看双向引用关系(谁引用了该资源,该资源引用了谁)
甄别未使用资源
- 进入
Edit > Project Settings > Project > Packaging,勾选Find Missing Assets和Report Unused Assets,打包过程中会自动生成未使用资源的报告文件; - 打开
Window > Asset Management > Asset Manager,在过滤器中选择Unused Assets,一键筛选出所有无静态引用的资源;
跨引擎通用方法
查询资源使用位置
- 使用文本编辑器(如VS Code)的全局搜索功能,在项目的场景文件、配置文件、脚本中搜索资源的文件名或唯一标识符(多数引擎会用UUID记录资源关联);
- 对于模型文件(如FBX),可查看其导入后的关联资源(比如绑定的材质、纹理),直接追踪使用链路;
甄别未使用资源
- 导出所有资源文件的路径列表,再导出所有场景、预制体、蓝图中记录的资源引用路径,对比后找出不在引用列表中的文件;
- 重点标记动态加载的资源(如通过代码字符串加载的资源),这类资源不会出现在静态引用查询结果中,需手动核对业务逻辑确认是否有用;
内容的提问来源于stack exchange,提问作者djastas
相关产品推荐
相关产品推荐

