Unity 自定义编辑器 NullReferenceException 当 SerializedProperty 有任何访问器时

Unity Custom Editor NullReferenceException When SerializedProperty Has Any Accessor

我正在尝试在 Unity 中为 ScriptableObject class 创建一个自定义编辑器,它具有如下私有字段:

但是一旦我的一个字段有了访问器(我也尝试了 get; 的属性),当我尝试在检查器中查看我的 ScriptableObject 时,我收到以下错误。

我做了一些测试,它在没有访问器的情况下工作得很好。例如,我可以看到“测试”字段。 这是我的自定义编辑器的代码:

有什么想法吗?我不相信不支持具有访问器的 class 的自定义编辑器。 谢谢!

这与“存取器”无关。请注意 properties are not serialized by Unity


错误很简单:您的字段名称是 而不是 ingredients 而是 _ingredients!

因此 FindProperty("ingredients") returns null 因为它没有找到任何名为 ingredients.

的字段

(这当然假设 Item 是一个 [Serializable] 类型。)