Ich habe zwei ähnliche Klassen ClassA
und ClassB
. Beide Klassen enthalten eine Bool:Wie Anfangswerte für benutzerdefinierte Inspektor Felder in Einheit festgelegt werden
In Klasse A:
[SerializeField]
private bool _overwrite = true;
public bool overwrite
{
get { return _overwrite; }
set { _overwrite = value; }
}
In der Klasse B:
[SerializeField]
private bool _hide = true;
public bool hide
{
get { return _hide; }
set { _hide = value; }
}
Beide Skripte haben eine CustomEditor
Skript. In beiden Editor-Skripten werden innerhalb der OnInspectorGUI()
-Methode die folgenden zwei Zeilen verwendet, um die jeweiligen Bool's zum Inspector hinzuzufügen.
ClassA.overwrite = EditorGUILayout.ToggleLeft("Overwrite", ClassA.overwrite);
ClassB.hide = EditorGUILayout.ToggleLeft("Hide", ClassB.hide);
Als ich KlasseA zu einem Gameobject hinzufügen, aber die „Überschreiben“ Feld nicht markiert ist, wenn ich ClassB zu einem Gameobject, das „Ausblenden“ Feld wird geprüft, hinzufügen.
Ich verstehe nicht, was anders ist, oder welcher andere Faktor bei der Festlegung eines Standard-/Anfangswerts für eine Eigenschaft beteiligt ist.
Idealerweise möchte ich, dass beide standardmäßig überprüft werden.
Irgendwelche Ideen, was ich vermisse?
Vielen Dank für Ihre Zeit,
Liam
entschuldigung! Das habe ich beim Kopieren und Einfügen verpasst. Die eigentliche Klasse heißt 'grabObject'. Was Sie oben haben, ist ziemlich genau das, was ich in meinem Projekt habe. –