【发布时间】:2016-06-22 03:39:27
【问题描述】:
例如UnityEngine.UI.Text
它包含text 变量,用于将文本的值设置为字符串。
现在,在我自己的类中,我使用 property(get;set) 代替直接访问变量,这让我能够在设置新值时更新视图或触发一些事件。问题是当使用 property(get set) 时,它不会在检查器中显示该字段,甚至在集成测试工具中也不会显示。
但 Unity 的文本组件决定不使用 get set。在我看来,我对处理价值变化感到不舒服。
问题是text 变量中的原始UnityEngine.UI.Text 如何处理这个问题?
我认为它不仅仅是OnValidate(),因为它只能在编辑器上工作。但是text 变量也适用于运行时脚本。
这个函数在脚本被加载或者一个值被调用的时候被调用 在检查器中更改(仅在编辑器中调用)。 https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnValidate.html
【问题讨论】:
-
您如何知道 Unity 正在检测更改,而不仅仅是检查上次更新周期中的值?
-
我没看懂你的问题,请改写你的问题。
-
@P0IT10n 我编辑了,抱歉。
-
问题在于使用 property(get; set) 是它没有显示在检查器中,甚至没有显示在集成测试工具中。 这是不正确的。自 Unity3D 中的一段时间以来,属性显示在检查器中。
标签: c# unity3d getter-setter