Jump to content
Unity Insider Forum

Zugriff auf Variable aus einem anderen Skript


LarsB

Recommended Posts

In meinem Projekt habe ich ein BoardManager Skript. Um anderen Skripten einen Zugriff zu ermöglichen, habe ich eine Singleton-Pattern gebildet:

public class BoardManager : MonoBehaviour
{

    public static BoardManager instance;
    public int IsFlowing;

    void Awake()
    {

        instance = GetComponent<BoardManager>();
        IsFlowing = 0;

    }

In einem anderen Skript kann ich nun z.B. auf Variablen im BoardManager-Skript zugreifen, z.B. in der Update-Funktion:

void Update() 
{

     BoardManager.instance.IsFlowing = 1;

Wenn ich das gleiche in der OnMouseDown-Funktion versuche:

void OnMouseDown()
{

    BoardManager.instance.IsFlowing = 1;

erhalte ich die Fehlermeldung:

Zitat

Die lokale Variable "BoardManager" kann erst verwendet werden, nachdem sie deklariert wurde.

Warum funktioniert der Zugriff in der Update- aber nicht in der OnMouseDown-Funktion? Wie kann ich dennoch auf die Variable zugreifen?

Danke für eure Hilfe.

Viele Grüße

Lars

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habe es jetzt in dem anderen Skript so gelöst:

public class Field : MonoBehaviour
{

    public BoardManager boardManagerScript;

    void Start() {

        boardManagerScript = BoardManager.instance;

    }

    void OnMouseDown()
    {

        boardManagerScript.IsFlowing = 1;

Trotzdem wundert es mich, dass der Weg

BoardManager.instance.IsFlowing = 1;

in der Update-Funktion funktioniert, in der OnMouseDown-Funktion jedoch nicht?! Vielleicht gibt es dazu noch Hinweise, damit ich das Problem umfassend für mich abschließen kann?!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Die Fehlermeldung weist darauf hin, dass du in deinem OnMouseDown-Script eine Variable namens "BoardManager" hast, die weiter unten in der Methode deklariert wird.Der Compiler muss dann annehmen, dass du mit "BoardManager" diese Variable meinst und nciht den Klassennamen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...