Unity 脏引用
文章目录
定义
Unity 脏引用是非主观需要的引用。但脏引用本身并不是错的,只是 Unity 在实现时的一个偏好,即保留所有引用。
例子
UI 的 Button 可以设置为根据不同状态切换不同图片,而之后如果修改切换方式为变换颜色,那么图片引用的选项会被隐藏。
但实际上图片引用并没有消失,这时如果你切换回根据不同状态切换不同图片,那么所有图片都还在。
以下是按钮 Prefab 的片段:
UIButton : Selectable
|
|
这种行为可能并不是我们需要的,在检查资源时经常会发现这种行为导致的错误资源被引用。
相关问题
类似的脏引用
- Shader 中不同平台引用的图片
- Animation 中操纵的脚本属性
- AnimatorController 中引用的其他资源
- 等等
解决方案
解决脏引用可以考虑以下方案:
- 查找两个资源间的引用的图,可以考虑使用 RelationsInspector 生成这个图
- 声明式资源检查修复工具,将资源中不正确的引用去除