2017-08-19 3 views
1

Wie kann ich Unity zwingen, die Geschwindigkeit und Richtung von Objekten nach einer Kollision nicht zu ändern? Ich muss OnCollisionEnter2d Ereignis bekommen, aber ich muss nicht automatisch Geschwindigkeit und Richtung ändern; Ich möchte es manuell machen.Physik nach Kollision ignorieren in unity3d (2d)

Antwort

2

muss ich OnCollisionEnter2d Ereignis bekommen, aber ich brauche nicht zu automatisch Geschwindigkeit und die Richtung ändern, weil ich es tun wollen manuell

Wenn Sie nicht möchten, dass das Objekt beeinflussen, wenn es kollidiert mit einem anderen Objekt, Sie müssen den Collider als Trigger markieren.

enter image description here

Danach, verwenden, um die Trigger-Funktion anstelle der Kollisionsfunktionen.

void OnTriggerEnter2D(Collider2D other) 
{ 

} 

Es wird erkennen, dass die Objekte kollidiert haben, es wird sie nicht bewegen. Sie können sie dann manuell verschieben, wie Sie möchten.

+0

Aber ich muss Collision2D manuell einen Reflect-Vektor erstellen, in OnTriggerEnter2D gibt es keine Kollision - nur Collider. – DeRibura

+0

Sie brauchen nicht 'Collision2D', um einen Reflektvektor manuell zu erstellen. Warum brauchen Sie das? Sie können Ihren Reflektorcode in Ihrer Frage bearbeiten und veröffentlichen. – Programmer

+0

Ich brauche Standart Vector3.Reflect (oldVector, normalisiert). Aber ich habe keinen normalisierten Vektor ohne Collision2D - wie kann ich es bekommen? – DeRibura

Verwandte Themen