Jump to content
Unity Insider Forum
LarsB

Zugriff auf Variable aus einem anderen Skript

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

Share this post


Link to post
Share on other sites

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?!

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...