2016-06-05 15 views
-1

Ich habe ein System Kugel Physik verwenden, die Verbindung starre Körper Physik verwendet,Berechnen, welches untergeordnete Objekt durch Strahl oder Kollision getroffen wurde?

ein Raycast die Objekte Kinder schlagen, einfach das Objekt zurückgibt, (kein Kind-Objekt)

, dies zu umgehen, verwende ich die Abstand vom Hitpoint zum Kindobjekt, aber das ist ein bisschen naiv, da das Kollisionsvolumen eine Kugel, ein Würfel, eine Kapsel usw. sein kann, die auf 3 Achsen skaliert ist.

kann ich die x bekommen, y und z gebunden dimensons lokal auf das Objekt,

wie würde ich diese Informationen benutzen, welches Kind Objekt zu erkennen durch den Strahl getroffen wurde?

Ich dachte eine Art Überprüfung gegen den Punkt, und die Grenzen der Kindformen, aber es muss ziemlich schnell sein, und seine Verwendung von Python.

Antwort

0

Zwei Lösungen, die den Trick machen könnten.

Separate Beschleuniger

zuerst die Beschleuniger trennen und jeweils eine andere Aufgabe geben, dann die Objekte programmatisch verknüpfen und sie nebeneinander bewegen. Auf diese Weise wird kein compound collider angezeigt.


Iterative Kollision

Zweite Option ist vielleicht rechnerisch teuer, wenn es eine Kollision, die Collider eins nach dem anderen deaktivieren und Neufassung der Strahl, bis Sie die Collider ist die nächste finden.

+0

Wie wird die Frage abgelehnt? (wtf?) – BluePrintRandom

+0

@BluePrintRandom Ich weiß nicht, ich habe dich gewählt. – j4hangir

0

unparent alle Stücke, Guss ray -> finden, die getroffen wurde -> Reparent alle Stücke scheint wie die einzige Lösung, aber ich bin nicht sicher, wie teuer es **

sein wird oder ein BVH Baum bauen, wenn zusammengebaut , wo die Gesichter zu Objekten indexiert werden ... get hit face-> den Index des Scheitelpunktes überprüfen, um hitObject zu erhalten .....?