在自定义检查器中设置初始值
Setting initial value in Custom inspector
我想将初始值设置为检查器中的级别。我正在使用以下模型 class.
public class Sample : MonoBehaviour
{
public float Level { get; set; }
}
在我的编辑器 class 中,这是我访问模型的方式。
sampleScript.Level = EditorGUILayout.FloatField(sampleScript.Level);
如何在检查器中将级别的初始值设置为 1?
public class Sample : MonoBehaviour
{
[SerializeField]
private float level = 1; // initial value
public float Level { get => level; set => level = value; }
}
在 Unity 中,您应该将私有字段公开为 [SerializeField]。这样它将在检查器中可见。您也可以使用 public 字段,但我建议您始终使用带有序列化私有支持字段的 属性。
编辑:
您不能在检查器中公开属性。这些属性只是 Inspector 的方法。您可以找到或制作自己的自定义编辑器脚本来序列化自动属性,但是使用带有序列化后备字段的完整属性是最好的 IMO(而且非常简单)。
我想将初始值设置为检查器中的级别。我正在使用以下模型 class.
public class Sample : MonoBehaviour
{
public float Level { get; set; }
}
在我的编辑器 class 中,这是我访问模型的方式。
sampleScript.Level = EditorGUILayout.FloatField(sampleScript.Level);
如何在检查器中将级别的初始值设置为 1?
public class Sample : MonoBehaviour
{
[SerializeField]
private float level = 1; // initial value
public float Level { get => level; set => level = value; }
}
在 Unity 中,您应该将私有字段公开为 [SerializeField]。这样它将在检查器中可见。您也可以使用 public 字段,但我建议您始终使用带有序列化私有支持字段的 属性。
编辑:
您不能在检查器中公开属性。这些属性只是 Inspector 的方法。您可以找到或制作自己的自定义编辑器脚本来序列化自动属性,但是使用带有序列化后备字段的完整属性是最好的 IMO(而且非常简单)。