我有一个在编辑和播放模式下执行的脚本。它包含几个带有设置器的属性,这些属性可以执行重要的操作以保持 GameObject 的数据最新。因此我可以编辑属性'
我有一个在编辑和播放模式下执行的脚本。它包含几个带有设置器的属性,这些属性可以执行重要的操作以保持 GameObject 的数据为最新。因此我可以编辑属性的值,其中许多属性都有带有 SerializeField
属性的支持字段。我想知道是否有任何有效的方法可以做到这一点,以便每当通过 Inspector 编辑其中一个支持字段时,都会调用相应属性的设置器以保持 GameObject 更新并启用对结果的实时预览。
这个问题 的答案中描述的系统 几乎就是我想要的,除了它只能让 Inspector 编辑触发无参数方法,这对许多属性的设置器不起作用。如果有更熟悉 C# Reflection 的人可以帮助重构代码,在适用的情况下将 Inspector 中的新值传递给相应属性的设置器,那正是我所需要的。
使用 OnValidate()
也行不通,因为有些设置器执行的操作是线程不安全的。此外,我理想情况下不想为每个属性编写大量额外的代码,这些属性的设置器应在 Inspector 编辑时调用。