OnCollisionEnter () funktioniert nicht in Unity3D

7

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.

    
Temp Id 16.08.2013, 20:09
quelle

4 Antworten

15

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.

    
Peter de Rivaz 21.11.2015 20:03
quelle
5

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

    
lukegravitt 16.08.2013 20:51
quelle
2

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.

    
Ohad Cohen 13.12.2017 21:58
quelle
1

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.

    
Matt Baeriswyl 22.08.2013 05:41
quelle

Tags und Links