Jump to content
Unity Insider Forum
Leone

Collider für komplexe Bauteil

Recommended Posts

Hallo zusammen!

Gibt es eine Möglichkeit komplexe Objekte wie zum Beispiel einen Kaminofen auf einfache Art und Weise mit Collidern zu versehen?

Bisher habe ich mich sehr abgemüht Box Collidern manuel dem Objekt anzupassen, was mich sehr viel Zeit kostet.

Mesh Collider helfen mir leider nicht weiter da meine Anwendung dynamisch ist, sprich ich möchte den Ofen bewegen.

Außerdem passiert es mir, das andere Teile bei der Bewegung des Ofens nicht von diesem getroffen werden sondern einfach "hindurchfliegen".

Freue mich über jede nützliche Info 😃

Share this post


Link to post
Share on other sites

Willkommen!
Der Typ des Colliders hat nichts damit zu tun, ob du ihn bewegen kannst oder nicht. Auch ein MeshCollider bewegt sich mit dem Objekt mit, wenn das Objekt bewegt wird.

Damit etwas kollidiert, also nicht durch andere Objekte duchflutscht, müssen diese Objekte jeweils einen Collider haben. Das sollte ja klar sein.
Außerdem muss mindestens eines dieser Objekte einen Rigidbody haben, denn nur mit einem Rigidbody wird auch eine Kollision ausgewertet und die ganzen physikalischen Eigenschaften wie Reibung, Masse, Federung und Bremswirkung auf die Rotation oder Bewegung werden mit einberechnet.

Ob jetzt alle Objekte einen Rigidbody haben oder nur der Ofen, hängt davon ab, welche Objekte physikalische Eigenschaften haben sollen. Das kann man also nicht so ohne Weiteres sagen.
Man sollte aber an RB's sparen, denn jeder RB berechnet ja etwas und das kostet Leistung. Dinge, die nicht bewegt werden, brauchen keinen RB.

Wenn du dann ein Objekt mit einem RB bewegst, dann soltest du das mit physikalischen Befehlen machen. Also nicht mit Transform-Befehlen arbeiten, denn die Physik wird in einem anderen Zyklus berechnet, als der Rest, der ja abhängig von der Framerate ist. Somit könnte es bei schnellen Bewegungen schnell zu Durchtunnelungen kommen. Nutze also die Force oder die Velocity um den RB zu bewegen.

Share this post


Link to post
Share on other sites

Hallo malzbie,

vielen Dank für die schnelle Antwort 😃 das war schonmal sehr hilfreich!

Vielleicht hätte ich erwähnen sollen, dass ich in meiner Anwendung mit VR arbeite und den Ofen daher mit einem VR-Controller greife, mithilfe des VRTK Tools und SteamVR über einen "Fixed Joint" und per "Precision Grab" . Folglich passiert es mir, dass bei zu schnellen Bewegungen die Kugeln im Ofen "durchflutschen" :D also muss ich ihn sehr langsam führen. 

Mit Mesh Collidern habe ich leider null Chance die Kugeln auch bei der kleinsten Bewegungen zur Kollision zu bringen. Sie fallen einfach durch. Also brauche ich die Box Collider.

Gibt es demnach eine Möglichkeit Box Collider für komplexe Geometrien zu erstellen? Ohne tausend kleine Box Collider an die Geometrie manuell anpassen zu müssen?

Share this post


Link to post
Share on other sites
Zitat

Vielleicht hätte ich erwähnen sollen, dass ...

Ja!
Alles was wichtig ist, sollte auch erwähnt werden. ;)

OK.

Da du mit Box Collidern besser zurecht kommst, als mit dem Meshcollider, gehe ich davon aus, dass eine der Wände, die der Meshcollider umspannt, wirklich sehr dünn ist.
Und da du nicht über die Physik bewegst, kommt es eben zur Durchtunnelung.
Ich sehe da eigentlich nur die Möglichkeit, das du Fixed Timestep reduzierst.

https://docs.unity3d.com/Manual/class-TimeManager.html

Geh mal auf 0.005. Geht auch noch tiefer, aber irgendwann kostet das so viel Performance, dass du den Zyklus nicht mehr erreichen kannst.
Dieser Timestamp ist der Intervall, den die Physik durchfährt. Je kleiner der Wert ist umso öfter wird überprüft. Kostet aber jedes Mal Prozessorleistung.

Merke dir auch: Je dicker ein Collider ist umso eher wird eine Kollision erkannt. Wenn von der einen Überprüfung zur anderen Überprüfung ein Objekt die Dicke eines Kolliders überwinden kann, ist der Kollider zu dünn oder das Objekt zu schnell. Dickere Collider können da Abhilfe schaffen.
Genauso kannst und solltest du beim Rigidbody die Collision Detection auf auf "Continuous" oder "Continuous Dynamic" schalten. Um schnelle Bewegungen noch besser zu erfassen.
 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...