【问题标题】:Unity Custom Editor NullReferenceException When SerializedProperty Has Any Accessor当 SerializedProperty 有任何访问器时 Unity 自定义编辑器 NullReferenceException
【发布时间】:2021-04-19 02:01:22
【问题描述】:

我正在尝试在 Unity 中为具有如下私有字段的 ScriptableObject 类制作自定义编辑器:

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

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

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

【问题讨论】:

标签: unity3d accessor unity-editor


【解决方案1】:

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


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

因此FindProperty("ingredients") 返回null,因为它没有找到任何名为ingredients 的字段。

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

【讨论】:

  • 还有。从第一部分开始。没有列表,所以列表可以为空
  • @BugFinder 该列表是一个[SerializeField],所以Unity的序列化器会自动初始化它..当然假设Item实际上是一个可序列化的类型;)
  • 感谢您注意到这一点,我不敢相信我犯了这样的错误......也很抱歉放了我的代码图片,下次我会做得更好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多