【问题标题】:Setting initial value in Custom inspector在自定义检查器中设置初始值
【发布时间】:2020-10-20 19:56:54
【问题描述】:

我想将初始值设置为检查员的级别。我正在使用以下模型类。

public class Sample : MonoBehaviour
{
    public float Level { get; set; }
 

}

在我的编辑器类中,这就是我访问模型的方式。

    sampleScript.Level = EditorGUILayout.FloatField(sampleScript.Level);

如何在inspector中将level的初始值设置为1?

【问题讨论】:

  • public float Level { get; set; } = 1;?
  • @JohnathanBarclay 没用 :(
  • @user1241241 查看我的回答,如果您需要更多信息,请告诉我

标签: c# unity3d editor inspector


【解决方案1】:
public class Sample : MonoBehaviour
{
    [SerializeField]
    private float level = 1; // initial value

    public float Level { get => level; set => level = value; }
}

在 Unity 中,您应该将私有字段公开为 [SerializeField]。这样它将在 Inspector 中可见。您也可以使用公共字段,但我建议您始终使用带有序列化私有支持字段的属性。

编辑:

您不能在 Inspector 中公开属性。属性只是检查器的方法。您可以找到或制作自己的自定义编辑器脚本来序列化自动属性,但是使用带有序列化 backking 字段的完整属性是最好的 IMO(而且非常简单)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-26
    • 1970-01-01
    • 2012-06-26
    • 1970-01-01
    • 2020-05-07
    • 1970-01-01
    • 2013-11-25
    • 1970-01-01
    相关资源
    最近更新 更多