Jump to content
Unity Insider Forum

Unity Error


Kojote

Recommended Posts

Grüß!

Unity haut mir schon den gesamten Morgen eine Fehlermeldung um die Ohren, aus der ich nicht schlau werde. Es ist eine rote Fehlermeldung, die sich aber nicht auf das Spiel auswirkt und durch Clear auch entfernen lässt. Könnt ihr mit der Meldung etwas anfangen?

f97a4c-1523946635.jpg

Wenn ich doppelklick auf die Meldung mache, zeigt er mir das Feld auf der rechten Seite an.

Danke schon mal! 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

OK, danke dir. :) Nun ist der Bug plötzlich genau so schnell verschwunden, wie er gekommen ist. Dafür einen neuen.

Ich hab diese beiden Zeilen hier:

for (int i = 0; i < meshrendererMaterialDrehfelderGlow1.Length; i++) {
  meshrendererMaterialDrehfelderGlow1[i] = drehfelder[i].transform.GetChild(0).GetComponent<MeshRenderer>(); 
}
for (int i = 0; i < meshrendererMaterialDrehfelderGlow2.Length; i++) {
   meshrendererMaterialDrehfelderGlow2[i] = drehfelder[i].transform.GetChild(1).GetChild(0).GetComponent<MeshRenderer>(); 
}

Beide Schleifen funktionieren und füllen die Arrays mit den richtigen Daten. Jedoch kommt bei der unteren Schleife eine Fehlermeldung:

UnityException: Transform child out of bounds

Der Fehler bedeutet ja, dass er an dieser Stelle kein Child findet. Jedoch tut er dies, füllt mir das Array mit den Daten und bringt mir trotzdem diese Fehlermeldung. Wie kommt er denn darauf?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dann kann die Exception eigentlich nicht hier auftreten. Wenn bei dieser einen Zeile eine Exception fliegen würde, w+rde die Schleife abbrechen. Ohne Wenn und Aber. Daher wieder der übliche Verdacht: Hast du das Script zweimal in der Szene? Das eine, das du im Blick hast, läuft durch, das andere schmeißt die Exception?

Die kaputtere Alternative wäre, dass die UnityException zwar in der Konsole angezeigt wird, aber gar nicht wirklich geworfen wird. Davon würde ich aber erstmal nicht ausgehen.

In jedem Fall, probiere mal das hier:

for( ... )
{
  try
  {
    deineExceptionZeile
  }
  catch(Exception e)
  {
    Debug.LogException(e);
    Debug.LogError("Kaputt bei " + i);
    // ...
  }
}

Zu den beiden Debug.Logs kannst du noch beliebige andere hinzufügen, um zu schauen, was Sache ist. Alternativ halt mit nem Breakpoint deiner IDE, wenn du das schonmal gemacht hast.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...