2016-08-31 6 views
-1

Ich habe eine Klasse (PowerUp), in dem ich habe eine Bool Mag die öffentlichAbrufen des Bool Wert einer Klasse von einer anderen Klasse in der Einheit

erklärt wird, wenn ich versuche, dass Bool von einer anderen Klasse (Ergebnis) zugreifen

     // class Result 

     if(PowerUP.Mag)// need to return the bool value from class PowerUp 
    { 
       // code to run if powerup.mag is true 

     CoinCollectedCounter ++; 
     CoinCounterText.text = ""+CoinCollectedCounter; 
     col.gameObject.SetActive(false); 
    } 

nicht bin immer der Boolesche value..actually es null

Antwort

1

Wenn Ihr Skript zu einem Spiel-Objekt auf der Bühne angebracht ist:

GameObject.Find("MyGameObject").GetComponent<PowerUp>().Mag;

Wenn Ihr Skript nicht angehängt ist:

PowerUp powerUp; // creating object 
powerUp.Mag; // getting variable 
-2

gibt den Bool einer anderen Klasse zuzugreifen es statisch

in der Klasse po erklärt werden sollte Werup der Boolesche Mag sollte als

public static bool Mag; 

so nach dieser Erklärung erklärt funktioniert der Code

 // class Result 

    if(PowerUP.Mag)// need to return the bool value from class PowerUp 
    { 
      // code to run if powerup.mag is true 

    CoinCollectedCounter ++; 
    CoinCounterText.text = ""+CoinCollectedCounter; 
    col.gameObject.SetActive(false); 
    } 
+0

Statische Variablen behalten während der Ausführung des Spiels einen Wert bei. Rufen Sie stattdessen die Skriptinstanz über GetComponent () ab und verwenden Sie diese Instanz, um auf den Wert zuzugreifen. –

Verwandte Themen