Unity 2020 LTS中Odin插件卸载后元数据文件自动生成问题
问题原因及解决方案
原因分析
- Odin Inspector若为手动导入的
.unitypackage(非Package Manager安装),Unity Package Manager不会收录它,git回滚可能遗漏了项目内的Odin残留文件(如隐藏的.meta文件、Editor/Plugins目录下的Odin相关脚本或DLL)。 - Unity的
Library文件夹是本地编译缓存目录,默认不在git追踪范围内,回滚git无法清理此处的Odin残留缓存,导致Editor启动时自动重新生成关联元数据。 - 项目脚本中仍存在Odin专属特性引用(如
[ShowInInspector]、[Button]等),Unity编译时会自动生成对应的元数据文件。
解决方案
1. 彻底清理项目内Odin残留
- 打开项目
Assets目录,手动删除所有Odin相关文件夹(通常命名为Odin Inspector或Sirenix)。 - 检查
Assets/Editor、Assets/Plugins目录,删除Sirenix.OdinInspector.Editor.dll、Sirenix.Serialization.dll等Odin相关文件及其对应的.meta文件。 - 用IDE全局搜索(如VS的
Ctrl+Shift+F)找出所有包含Sirenix或Odin的脚本,移除其中的Odin特性引用。
2. 清理Unity本地缓存
- 关闭Unity Editor。
- 删除项目根目录下的
Library文件夹(重启Unity会自动重建,不会丢失项目核心数据)。 - 清理Unity全局缓存:除已清理的
%AppData%\Roaming\Unity\Asset Store-5.x,再删除%AppData%\Local\Unity\cache下的所有内容。
3. 重置Unity临时文件与设置缓存
- 删除项目根目录下的
Temp文件夹(Unity临时文件存储目录)。 - 打开Unity后,依次点击
Edit > Preferences > Cache Server,点击Clear Cache按钮清空缓存服务器数据。
4. 重置git仓库状态
- 执行
git status确认未追踪文件是否为Odin残留,确认后执行git clean -fd(此命令会删除所有未追踪文件/文件夹,执行前确保无需要保留的本地更改)。 - 拉取干净的目标git分支,确保项目文件完全回到未安装Odin的状态。
5. 最终验证
- 重启Unity Editor,观察是否仍生成陌生元数据。
- 若问题依旧,检查第三方插件是否依赖Odin,或ScriptableObject、Prefab等资源中是否残留Odin序列化数据,需手动检查并重置这些资源。
内容的提问来源于stack exchange,提问作者user14136803
相关产品推荐
相关产品推荐

