Globale Variablen Fragen - Unity Antworten

FALSCH eine statische var ist keine globale var. Öffentlichkeit macht eine Variable global, nicht statisch.

static macht eine Variable eine Klassenvariable (es ist ein wenig anders als in C ++), was bedeutet, dass es mit einer Klasse zugeordnet ist, keine ihrer Instanzen. Öffentliches macht eine Variable oder Funktion von außen zugänglichen Funktionen. Daraus ergibt sich die Verwendung von Eigenschaften Felder verkapseln.







Unity lässt Sie jede serializable öffentliche Instanz-Variable inspizieren. Nun kann das klingt einschüchternd, wenn Sie kein Programmierer sind so lassen Sie mich das aufgliedern:







Serializable. Alle Unity-Typen, Mono-Objekte und die grundlegenden Datentypen (int, float, string), und Sie alle Klassen erstellen, die das Attribut [Serializable] haben.

Öffentlichkeit. Die einfachste, können sie nicht privat oder geschützt sein.

Instanzvariable. Solange es nicht statisch ist, dann ist es eine Instanzvariable.

Der richtige Weg, eine globale Variable für den Zugriff auf (außer durch eine Eigenschaft ist) ist eine Instanz der Klasse erhalten dann seinen Wert zu lesen.

Zitat: Serializable. Alle Unity-Typen, Mono-Objekte und die grundlegenden Datentypen (int, float, string), und Sie alle Klassen erstellen, die das Attribut [Serializable] haben.

Ich habe tatsächlich ein Versehen zu schreiben, dass so lassen Sie mich eine kleine Korrektur vornehmen. Nicht alle Mono-Objekte werden im Inspektor angezeigt. Einige sind, aber andere wie Method (nur ein gelegentliches holen) nicht.

Ich werde ein Beispiel für jeden geben: