别在真空里调 UI:Prefab Mode 的 UI Environment 机制实测与踩坑日志
实测环境:Unity 2022.3.62f3c1(Windows/macOS 行为一致)。本文所有结论均来自项目内实证,非文档转述。
这里收录 Aesir 系列包、Unity 编辑器机制、工程实践相关的长文——多来自项目内的实测与踩坑记录,尽量只写结论可复现的内容。
为 Unity 中文社区(团结引擎官方社区)撰写的文章专栏,以 Odin Inspector 系列笔记为主:入门与许可证、序列化系统、Attributes、自定义 Drawer、编辑器窗口、实战案例与坑点速查。文章在本站与社区同步发布,本站版本保留完整的代码示例与排版。
实测环境:Unity 2022.3.62f3c1(Windows/macOS 行为一致)。本文所有结论均来自项目内实证,非文档转述。
Odin 官方关于嵌套 Prefab 支持现状的说明。核心结论:Odin 序列化在嵌套 Prefab 场景下仅支持单层覆盖;完整支持是长期未决项目,时间表不确定,甚至可能无法落地。
Odin Inspector and Serializer 是 Sirenix 开发的 Unity 编辑器扩展插件,三大核心能力:
仅显示,不写入文件;编辑态改的值不影响 Play 模式;运行时实时刷新值,适合调试。
设计:自定义 OdinInterfaceReference<TInterface, TObject> 存「实现特定接口的对象」;自定义 Drawer 支持拖拽选择 + 验证圆点;[OdinRequiredInterface] 限定类型。
OnGUI;注入 GUI 请重写 DrawEditors 或用 [OnInspectorGUI] 特性。OnGUI 时务必 base.OnGUI(),否则只剩普通 EditorWindow。Odin 不覆盖 Unity 序列化,只是扩展它;一个类可同时拥有 Unity 与 Odin 序列化字段。
Odin 强大的序列化只有在直接实现时才生效。