Ich habe ein Objekt mit einem Mesh Collider und ein Prefab mit einem Sphere Collider. Ich möchte, dass die Instanz des Prefab zerstört wird, wenn die beiden kollidieren. Ich schrieb folgendes in einem Skript:
%Vor% Aber es funktioniert nicht. Ich habe versucht, isTrigger
auf beiden Objekten zu wechseln.
Ich hatte das gleiche Problem von OnCollisionEnter nicht aufgerufen und diese Frage gefunden.
Für mich bestand das Problem darin, dass ich ein 2D-Spiel machte, also sollte die OnCollisionEnter2D-Funktion stattdessen verwendet werden.
Stellen Sie sicher, dass einer von ihnen einen nicht kinematischen Starrkörper hat. Aus der Unity-Dokumentation übernommen:
Wenn eine Kollision zwischen zwei Colliders auftritt und wenn mindestens einer von ihnen ein Rigidbody angeschlossen hat , werden drei Kollisionsnachrichten an die an sie angehängten Objekte gesendet. Diese Ereignisse können in Skripts behandelt werden und ermöglichen das Erstellen eindeutiger Verhaltensweisen mit oder ohne die integrierte NVIDIA PhysX-Engine.
Von hier: Unity3D MeshCollider
Sehen Sie sich diese Tabelle
an Wenn Sie möchten, dass Ihr OnCollisionEnter
aufgerufen wird, stellen Sie sicher:
(a) An beide Objekte ist ein Collider angeschlossen.
(b) Keines der Objekte ist ein Trigger-Collider (dies wird die OnTrigger-Funktion und nicht OnCollisionEnter ausgeben)
(c) Eines der Objekte (egal welches von ihnen) ist ein starres, nicht kinematisches & amp; nicht statisches Objekt (das zweite muss kein starrer Körper sein).
(d) Aufgrund von Berechnungsschwierigkeiten kann es passieren, dass MeshCollider mit anderen Netzcolliders kollidiert und diese mit Vorsicht verwenden.
(e) Stellen Sie sicher, dass sich beide Objekte in derselben Ebene befinden.
Haben Sie versucht, die OnTriggerEnter () - Klasse zu verwenden und einen Collider für das Objekt auf einen Trigger zu setzen?
Wenn es nicht sagen muss, welches Objekt es mit Ihnen kollidiert, könnte ein einfaches
tun %Vor%Bearbeiten:
Auch ich habe OnCollision so gemacht
%Vor%Keines der Objekte sind Trigger und sie brauchen keine Körper, die funktionieren.