Lia*_*ris 5 c# unity-game-engine
我有两个类似的课程ClassA和ClassB。这两个类都包含一个布尔值:
在A类中:
[SerializeField]
private bool _overwrite = true;
public bool overwrite
{
get { return _overwrite; }
set { _overwrite = value; }
}
Run Code Online (Sandbox Code Playgroud)
B类:
[SerializeField]
private bool _hide = true;
public bool hide
{
get { return _hide; }
set { _hide = value; }
}
Run Code Online (Sandbox Code Playgroud)
两个脚本都有一个CustomEditor脚本。在两个编辑器脚本中,OnInspectorGUI()方法内部使用以下两行将相应的布尔值添加到检查器中。
ClassA.overwrite = EditorGUILayout.ToggleLeft("Overwrite", ClassA.overwrite);
ClassB.hide = EditorGUILayout.ToggleLeft("Hide", ClassB.hide);
当我将 ClassA 添加到游戏对象时,“覆盖”字段未被选中,但是当我将 ClassB 添加到游戏对象时,“隐藏”字段被选中。
我不明白有什么不同,或者设置属性的默认/初始值涉及什么其他因素。
理想情况下,我希望默认情况下检查它们。
有什么想法我可能会错过吗?
谢谢你的时间,
利亚姆
MonoBehaviours 的方法Reset似乎它将提供您正在寻找的功能。它看起来像这样:
void Reset()
{
_overwrite = true;
}
Run Code Online (Sandbox Code Playgroud)