OnCollisionEnter wird nicht als Einheit
Habe ich überprüft, fast alle Antwort auf diese, aber das waren meist einfache Fehler und Irrtümer.
Mein problem ist, dass OnCollisionEnter wird nicht aufgerufen, auch wenn Sie kollidieren mit anderen Festkörper.
hier ist das Teil, was nicht genannt wird:
void OnCollisionEnter(UnityEngine.Collision col) {
Debug.Log("collision!!!");
foreach(ContactPoint contact in col.contacts) {
//checking the individual collisions
if(contact.Equals(this.target))
{
if(!attacking) {
Debug.Log("hitting target");
} else {
Debug.Log("dying");
//engage death sequence
}
}
}
}
Nicht einmal die "Kollision!!!" Meldung wird angezeigt. Verstehe ich die Nutzung falsch, oder habe ich etwas vergessen?
- auch die angeschlossenen Komponenten, um das Objekt: transform; sprite-renderer; box collider 2D; Kreis collider 2D; feindkontrolle (script); Festkörper 2D; Animator;
- Bitte Bearbeiten Sie Ihre post fügen Sie diese Informationen, nicht, fügen Sie es als einen Kommentar, wie es übersehen werden
- Das OnCollisionEnter nicht aufgerufen werden, wenn Sie einen characterController. Das hat seine eigene Kollision-Methode (ich bin nicht in der Lage, um es nachschlagen im moment zu verlinken).
- okay, ich habe es geschafft, es zu lösen. ich brauchte, um das 2D-äquivalent. der Kollision. Leider keine Antwort auf meine eigene Frage.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie 2D-Beschleunigern und rigidbodies ??. Wenn ja, verwenden Sie diese Funktion, anstatt OnCollisionEnter
Müssen Sie sicherstellen, dass die Kollision matrix (Edit->Projekt-Einstellungen->Physik) schließt nicht aus, Kollisionen zwischen den Ebenen, die Ihre Objekte gehören.
Unity Docs
Müssen Sie auch, um sicherzustellen, dass das andere Objekt hat : collider, Festkörper, und dass das Objekt selbst oder eine diese Komponenten sind nicht deaktiviert.
Versuchen, diese
http://docs.unity3d.com/Documentation/ScriptReference/Collider.OnCollisionEnter.html
Hier ist was ich tun:
Nun Ihre OnCollisionEnter funktioniert. Ich hoffe, dies hilft Ihnen.
weil Sie misstyped Klasse name des Parameters. dies macht keine Fehler, auch nicht funktioniert.
eg:
Brauchen Sie nur Anhängen script auf dem gleichen Objekt, dessen Notwendigkeit erkennt die Kollision.