2016-05-13 9 views
1

Ich bemerkte, dass OnCollisionEnter2D nicht ausgelöst wird, wenn zwei Objekte mit Collider2D-Komponenten Kontakt herstellen. Es wird nur ausgelöst, wenn einer von ihnen ein RigidBody angehängt hat. Das erscheint mir seltsam, weil der Unity-Editor selbst sagt, dass ein statischer Collider anstelle eines sich nicht bewegenden RigidBody viel besser für die Performance ist. Warum erlaubt Unity dann nicht, dass zwei Spielobjekte mit statischen Collidern Kollisionsereignisse auslösen, wenn sie Kontakt aufnehmen?Kollisionsereignisse in Unity3D

+0

sicher, das ist *** der ganze Punkt *** der PhysX-Engine! Vergessen Sie "statische" Collider, die Sie sehr selten in gewöhnlichen Spielen verwenden. Du machst Spiele mit RigidBody. Sie könnten das "statische" Feature von Unity entfernen, es hat nur ein paar obskure Nutzungen und würde 99% der Spiele wenig verändern. Vergiss es einfach. – Fattie

Antwort

1

Sicher, statische Collider sind leistungsfähiger, aber wie das Wort anzeigt: Sie sind statische.
Bewegung erfordert Physikberechnung und daher einen Starrkörper (der Informationen über Geschwindigkeit etc. enthält). Dies ist tatsächlich in den Dokumenten für die normale Kollision hier angegeben http://docs.unity3d.com/ScriptReference/Collider.OnCollisionEnter.html