C# Variable in anderem Skript aufrufen?

3 Antworten

Für die Speicherung von Nutzereinstellungen kannst du PlayerPrefs nutzen.

Beispiel:

PlayerPrefs.SetInt("Some setting", 123);
PlayerPrefs.Save();

// somewhere else:
int defaultValue = 0;
int someSetting = PlayerPrefs.GetInt("Some setting", defaultValue);

Bezüglich der Kommunikation zwischen zwei Skripts ist die Zuweisung einer Referenz über den Inspektor eine einfache Methode.

Angenommen, du hast ein Skript A und ein Skript B. Skript A soll auf Skript B zugreifen. Dafür legst du in Skript A ein Feld mit dem Typ von Skript B an.

public ScriptB scriptB;

Im Editor wird daraufhin auf der Skriptkomponente ein Feld erscheinen, dem du via Drag & Drop das Skript / das GameObject mit dem Skript zuweisen kannst.

In der Klasse von der du auf das GameObject zugreifen willst definierst du eine Property die vom Typ des GameObjects ist auf das du zugreifen willst. Nun gehst du in den Unity-Editor wählst im Projekt-Explorer dort deine C# Datei aus und dort müsstest du der erstellten Property das GameObject zuweisen können.

Disclaimer: Ich hab lang nicht mehr mit Unity gearbeitet und das ist nur aus meinen Erinnerungen ausgegraben, hoffe aber es funktioniert trotzdem.

Woher ich das weiß:Hobby – Ich programmiere seit 3 Jahren mit C#

Habe so eben eine Lösung gefunden. Man muss zuerst die Zahl Speichern: PlayerPrefs.SetInt((Name), (Zahl));

PlayerPrefs.Save();

Dann muss man die Zahl in der gleichen oder in einem anderen Skript wieder herunterladen.

int (Name) = 0;

...

int (Name) = PlayerPrefs.GetInt("VorherigerName");

Somit wird die Zahl gespeichert bis sie neu Gespeichert wird. Gibt sicherlich auch andere möglichkeiten aber die hab ich herausgefunden

Woher ich das weiß:eigene Erfahrung