c# – 如何以单位形式设置自定义检查器字段的初始值

我有两个类似的ClassA和ClassB类.这两个类都包含一个bool:

在A类:

[SerializeField]
private bool _overwrite = true;

public bool overwrite
{
    get { return _overwrite; }
    set { _overwrite = value; }
}

在B级:

[SerializeField]
private bool _hide = true;

public bool hide
{
    get { return _hide; }
    set { _hide = value; }
}

这两个脚本都有一个CustomEditor脚本.在两个Editor脚本中,在OnInspectorGUI()方法中,以下两行用于将相应的bool添加到Inspector.

ClassA.overwrite = EditorGUILayout.ToggleLeft(“Overwrite”,ClassA.overwrite);

ClassB.hide = EditorGUILayout.ToggleLeft(“Hide”,ClassB.hide);

当我将ClassA添加到GameObject时,“Overwrite”字段未被选中,但是当我将ClassB添加到GameObject时,将检查“隐藏”字段.

我不明白什么是不同的,或者在设置属性的默认/初始值时涉及的其他因素.

理想情况下,我希望默认情况下检查它们.

我可能会缺少什么想法?

谢谢你的时间,

利亚姆

最佳答案 MonoBehaviours的
Reset方法似乎将提供您正在寻找的功能.它看起来像这样:

void Reset() 
{
    _overwrite = true;
}
点赞