Problem mit der Kollisionserkennung von einem sich schnell bewegenden ball mit einem Schläger gesteuert durch Maus

In der Einheit, ich habe einen Schläger soll um einen ball zu schlagen, und der Schläger wird direkt gesteuert durch die Maus, ich.e die Fledermaus wird mit der Maus verschoben mit der Maus Achsen und der Verwendung zu verwandeln.translate () - Funktion, bewegen Sie den Schläger.

Erwartete ich, dass Unity3d Physik nicht richtig übersetzen Sie die Schläger-Bewegung direkt die Maus und die Auswirkungen der ball entsprechend, und hätte ich etwas zu schreiben Brauch, und es stellte sich heraus, um wahr zu sein.

Aber der ball Kollision wird nicht richtig erkannt, wenn der Schläger bewegt. Wenn es immer noch ist, ist alles in Ordnung, und der ball verhält, wie ich möchte.

Nun ich ging so weit wie das schreiben eines benutzerdefinierten Physik script (ich nutze C# - scripting), in dem ich befestigt 4 raycasts der Länge 0.6 F auf den ball, und nachdem ich einige der komplexe Vektor-Berechnungen, die Berechnung der Geschwindigkeit des Balles nach dem Auftreffen auf den Schläger, und wenden Sie es direkt auf die Geschwindigkeit der ball mit Festkörper.Geschwindigkeit = calculateVelocity(). Jetzt ist es wieder gut, wenn der Schläger nicht bewegt, aber nicht wenn ich mich bewege den Schläger. Die genaue (Symptome) problem ist:

Verwendung der integrierten Physik-und Kollisions-Erkennung: Wenn der Schläger bewegt sich der ball manchmal pass quer durch den Schläger, und manchmal, verlangsamt es (zu unglaublichen Ebenen).

Mit meinem Skript zum berechnen der Geschwindigkeit: das problem ist Das gleiche, aber es lässt mich erkennen, was falsch ist, wenn ich drucken Sie die normale des collider (die Schläger). Manchmal geben die Recht normal, und irgendwann gibt das negativ des normalen-Vektor, was bedeutet, dass es geradeaus durch die Obere Oberfläche und die Erkennung der Treffer mit der Unterseite des collider (Schläger).

Die Dinge, die ich versucht habe:

  1. Erhöhung der Größe des collider (es funktioniert mit der breiteren box collider auf dem Schläger, aber dann offensichtlich den ball aus einiger Entfernung, Weg von den Schläger, und mein eigenes script hier funktioniert, Standard-Physik seltsame Ergebnisse, wenn Schläger bewegt wird), kurz gesagt ich bekomme nicht die Realität, die ich will.

  2. Verringerung der festen timestamp zu 0,001 deutlich verbessert, aber immer noch sehr sehr weit entfernt von dem Ergebnis, das ich will, und der ball ist wieder ganz oft die Kommissionierung der falschen Seite den ball.

  3. Ändern Kollisionserkennung zu kontinuierlichen dynamischen. Die nicht Dinge verbessern entweder.

Und zusätzlich auf die falsche Seite ausgesucht, bei der Kollision, ein weiteres problem, das ich beobachtet habe ist, dass nach dem abprallen der Schläger, der ball bewegt sich aber der Schläger schneller bewegt, es stattdessen, sich in einem kompletten Bogen oder Linie, irgendwie erscheint vor dem ball, was in zwei Treffern. Es ist eine Vermutung basierend auf dem, was sichtbar ist.

Es ist auch klar, dass die "Bewegung" Aspekt der Schläger ist nicht das vorlesen durch die Unity3d built-in Physik, was ein seltsames Verhalten, wenn Schläger bewegt sich mit der Maus trifft den ball.

Bin ich stecken geblieben, ich habe keine Ahnung, wo sich zu bewegen von hier aus. Bitte sagen Sie mir, was ich falsch mache.

Schreibe einen Kommentar