Fehlerbehebung für compute mesh inertia tensor failed

Sign in to queue

Description

Falls ihr euch gerade durch das eine oder andere Unity-Tutorial arbeitet, kann es gut sein, dass euch folgender Fehler über den Weg läuft:

 

Actor::updateMassFromShapes: Compute mesh inertia tensor failed for one of the actor's mesh shapes! Please change mesh geometry or supply a tensor manually!

Bekanntermaßen besteht ein Spielobjekt üblicherweise aus einer Zusammensetzung verschiedenster GameObjects, die unter einem (meist leeren) Eltern-GameObject zusammengefasst werden.

Angenommen, mehrere dieser Unterobjekte haben sogenannte Kollisionskomponenten. Diese werden von Unity als ein komplexeres gesamtes Kollisionsobjekt behandelt. Damit kann dem individuellen Aufbau verschiedener Spielfiguren Rechnung getragen werden, wenn sie richtig eingesetzt werden.

Wenn ich ein einfaches Spielobjekt habe - speziell 2D, aber mit dem 3D-Modus von Unity arbeite - dann besteht es aus einem Empty GameObject sowie einem sehr sehr flachen Quad mit entsprechender Textur. 

Der Einfachheit halber kann jetzt auf dem Gesamtobjekt zum Beispiel ein Box Collider sowie Rigidbody angelegt werden, sowie das jeweils gewünschte Verhalten bei Kollision per Skript festgelegt werden. 

Jetzt kann euch schnell oben zitierter Fehler begegnen, den ihr sehr einfach lösen könnt, indem ihr bei den Unterelementen der kollidieren Spielobjekten (bzw. in deren Prefabs) prüft, ob dort eventuell Mesh Collider vorhanden sind, die mit dem Collider des übergeordneten Objekts in Konflikt stehen könnten. 

Vereinfacht ausgedrückt hat Rigidbody eine Masse, die sich aber nicht über den Mesh Collider des Quads oder Planes ausdrücken lassen kann. 

Tag:

Unity

The Discussion

Add Your 2 Cents