LarsB Geschrieben 29. Januar 2019 Melden Share Geschrieben 29. Januar 2019 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 More sharing options...
LarsB Geschrieben 29. Januar 2019 Autor Melden Share Geschrieben 29. Januar 2019 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 More sharing options...
Sascha Geschrieben 29. Januar 2019 Melden Share Geschrieben 29. Januar 2019 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 More sharing options...
LarsB Geschrieben 29. Januar 2019 Autor Melden Share Geschrieben 29. Januar 2019 Hmm. Das kann sein. Danke für den Tipp. Jetzt funktioniert es auch mit BoardManager.instance... Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.