Jump to content
Unity Insider Forum
Sign in to follow this  
Kojote

Unity Error

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! 

 

Share this post


Link to post
Share on other sites

Hat Unity ständig. Gerade in den noch etwas frischeren Features. Kannst du getrost ignorieren, solange alles so läuft wie du willst.

Share this post


Link to post
Share on other sites

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?

Share this post


Link to post
Share on other sites

Du bist absolut sicher, dass alle Felder des Arrays nicht null sind?

Share this post


Link to post
Share on other sites

Jop. Ich beziehe ja aus dem Objekt Daten für den Mesh Renderer und kann da auch die Farben mit steuern.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×