Ich bin sehr mit diesem Stück Code fest. Ich werde nicht den ganzen Code nur die relevanten Stücke veröffentlichen.Variable wird nicht zugewiesen, wenn ihr Kind zerstört wird, obwohl es zugewiesen ist?
Das Problem ist: Wenn der Spieler einen Punkt fällt, so fällt im Grunde das Kind des mainhand oder supporthand (Inventar Slots), dann wird es den folgenden Fehler geben: ‚Die Variable‚mainhand‘wird nicht vergeben. "
Die Variable wurde jedoch zugewiesen und das Skript funktioniert so, wie es funktionieren soll. Ich will nur den Fehler loswerden. Irgendwelche Ideen?
Bitte helfen!
public bool handsFull = false;
public Transform mainHand;
public Transform supportHand;
public GameObject player;
public GameObject[] Items;
public float throwDistance = 2f;
void Update() {
//Dropping Items
if (Input.GetKey (KeyCode.G)) {
if (Input.GetMouseButtonDown (0) && mainHand.childCount > 0) {
GameObject itemToDrop = mainHand.GetChild(0).gameObject;
DropItem (itemToDrop);
}
if (Input.GetMouseButtonDown (1) && supportHand.childCount > 0) {
GameObject itemToDrop = supportHand.GetChild(0).gameObject;
DropItem (itemToDrop);
}
}
}
public void DropItem(GameObject itemToDrop)
{
for (int i = 0; i < Items.Length; i++) {
GameObject itemDropped;
if (Items[i].name == itemToDrop.name) {
itemDropped = (GameObject)Instantiate (Items [i], itemToDrop.transform.position, Quaternion.identity);
itemDropped.tag = "Item";
itemDropped.name = itemToDrop.name;
Destroy (itemToDrop);
itemDropped.transform.SetParent (null);
itemDropped.transform.Translate (0, 0, throwDistance);
itemDropped = null;
itemToDrop = null;
return;
//hand not defined? -
}
}
}
http://answers.unity3d.com/questions/627750/the-variable-has-not-been-assigned-but-it-has.html –
Welche Zeile löst die Ausnahme aus? – Gusman
@SimoErkinheimo Nun, ich habe gelesen, dass die Mainhand/Supporthand keine Prefabs sind, noch werden sie jemals aus der Szene entfernt. Zu diesen Variablen wird nie etwas unternommen. Die Verbindung hilft mir also nicht traurig. Irgendwelche Ideen? – Calis