问题起因:
当项目使用Odin + ScriptableObject 的方式 可视化存储配置的时候
🧨 问题机制详解:Prefab 嵌入 ScriptableObject
如果项目中有Prefab引用了
🔸 现象:
你把某个 ScriptableObject 拖到了 Prefab 的 Inspector 字段上
Unity 可能复制一份内部副本进了 prefab(不是引用外部 .asset 文件)
所以你改的 .asset 实际没被引用,运行时读取的是 prefab 内部那份!
🔸 导致:
项目一重新导入 / 重编译 / prefab 被还原
prefab 中那份“内嵌版本”替换掉你在磁盘上看到的外部文件值
解决办法:
用XGames的 资源加载器去加载Bundle 保证内存实例只有一份 或者Resources加载