2016-09-16 3 views
0

Ich mache ein Spiel in Unity3D und ich habe 2 verschiedene Skripte. Einer namens Rays (es prüft, was ich anklicke und senkt seine HP) und ein Skript namens colorChange (es ändert die Farbe des Objekts, auf das ich geklickt habe, abhängig von seiner HP). Ich habe die HP-Variable in colorChange erstellt und ich muss HP in Ray überprüfen.Wie überprüfe ich Intets von anderen Klassen in separaten Skripten?

Antwort

1

Also hängt das "colorChange" Skript vom "Rays" Skript ab, ja? Dann können Sie den „Farbwechsel“ Skript definieren mit den Tasten [RequireComponent] Tag, der beschrieben wird hier eine „Strahlen“ Komponente auf dem gleichen Gameobject zu erwarten: https://docs.unity3d.com/ScriptReference/RequireComponent.html

Dann in der „Awake“ Funktion „Farbwechsel "Sie erhalten einen Verweis auf" Rays ". Wenn die "hp" -Variable in "Rays" öffentlichen Zugriff hat, dann können Sie in "colorChange" den erworbenen Verweis auf das "Rays" -Skript verwenden, um seinen aktuellen Wert zu überprüfen.

Beispiel für Skript "Strahlen":

using UnityEngine; 

public class Rays : MonoBehaviour { 
    private int hp = 0; 
    public int Hitpoints { 
     get { return hp; } 
    } 

    // ... other methods ... 
} 

Beispiel für Skript "Farbwechsel":

using UnityEngine; 

[RequireComponent (typeof (Rays))] 
public class colorChange : MonoBehaviour { 
    private Rays raysReference = null; 

    protected void Awake() { 
     raysReference = GetComponent<Rays>(); 
    } 

    protected int getRaysHitpoints() { 
     return raysReference.Hitpoints; 
    } 

    // ... other methods that may use getRaysHitpoints ... 
} 
+1

Man nannte Strahlen (nicht Ray) und ein genanntes Umfärben. Nenne dein Script Ray nicht. Es gibt bereits eine Klasse namens Ray und das ist keine gute Idee. – Programmer

+0

Danke. Ich habe es korrigiert. – Jireugi

Verwandte Themen