【发布时间】:2016-02-01 12:05:00
【问题描述】:
标题已经说了……
我在 Unity 中有一个 C# 类的自定义编辑器脚本,用户可以通过 UI 设置多个参数。但是有一种情况,属于 CustomEditor 类的类中的一些序列化变量以编程方式更改,并且更改未在检查器中更新。
我如何告诉 CustomEditor 类它应该更新更改的变量?
示例代码:
public class Foo
{
[SerializeField] private float value;
public void ChangeValue()
{
value = 1.0f;
}
}
[CustomEditor(typeof (Foo))]
internal class FooEditor : Editor
{
private Foo self;
private SerializedProperty value;
internal void OnEnable()
{
self = (target as Foo);
value = serializedObject.FindProperty("value");
}
public override void OnInspectorGUI()
{
serializedObject.Update();
}
}
在Foo 中,我想更改value vis 脚本,但是当通过脚本设置时值更新不会反映在编辑器UI 中(仅当用户通过UI 更改它时)。通过脚本更新时,如何使更改也反映出来?
【问题讨论】:
标签: c# unity3d editor game-engine