2017-03-27 2 views
3

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

Antwort

1

Die Reset Methode der MonoBehaviours scheint, dass es die Funktionalität, die Sie suchen bieten. Es sieht ungefähr so ​​aus:

void Reset() 
{ 
    _overwrite = true; 
} 
0

Was ist grabObject?

Wenn es die Komponente Variable ist, die Sie einen Verweis auf die OnEnable Verfahren unter Verwendung der target Variable des Editor Skript gefunden haben, dann ändert einfach Ihren Editor Skripte:

grabObject.overwrite = EditorGUILayout.ToggleLeft("Overwrite", grabObject.overwrite); 

und:

grabObject.hide = EditorGUILayout.ToggleLeft("Hide", grabObject.hide); 

sollte Ihr Problem lösen.

+0

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. –

Verwandte Themen