TiTo Geschrieben 26. Oktober 2017 Melden Share Geschrieben 26. Oktober 2017 Hallo liebe Community, ich habe ein Problem und zwar verstehe ich es nicht wie ich das Verhalten von zwei Rigidbody's beeinflussen kann. Folgendes Szenario: Ich habe ein Fahrzeug mit einer Masse von 1500 und ein Cube mit einer Masse von 10. Und wenn ich mein Cube in die Hand nehme und zum Auto laufe, dann kann ich mit dem Cube das Auto einfach auf die Seite schieben. Wie löse ich das Problem? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Helishcoffe Geschrieben 26. Oktober 2017 Melden Share Geschrieben 26. Oktober 2017 Wie bewegst du genau deinen Cube bzw. deinen Spieler der den Cube in der Hand hält? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
TiTo Geschrieben 26. Oktober 2017 Autor Melden Share Geschrieben 26. Oktober 2017 Der Cube bekommt als Parent, die FP Kamera des Spieler's und somit bewegt sich der Cube mit der Kamera. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Helishcoffe Geschrieben 26. Oktober 2017 Melden Share Geschrieben 26. Oktober 2017 Ja gut okay aber wie genau bewegst du denn den Spieler? Wie sieht dein Script dazu aus? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
TiTo Geschrieben 26. Oktober 2017 Autor Melden Share Geschrieben 26. Oktober 2017 Zum bewegen des Spielers, nutze ich das CharacterController Component. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Helishcoffe Geschrieben 26. Oktober 2017 Melden Share Geschrieben 26. Oktober 2017 Soweit ich weiß, igoniert der CharacterController interaktionen mit der Spielphysik. Versuch mal deinen Spieler mit Rigidbody zu bewegen. Also ohne CharacterController. Dafür müsstest du dann ein Script schreiben, welches deinen Rigidbody bewegt und somit auch deinen Spieler. Dann werden auch Physikalische Eigenschaften wie Masse bei deiner Kollision berücksichtigt. Der CharacterController macht dies jedoch nicht. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
TiTo Geschrieben 26. Oktober 2017 Autor Melden Share Geschrieben 26. Oktober 2017 Ja es geht mir ja nicht um den Character, sondern um das Physikverhalten von zwei Rigidbodys. In meinem Fall das Auto und der Cube. Wie ein Cube mit der Masse 10 ein Auto mit der Masse 1500 einfach weg schieben? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Zer0Cool Geschrieben 26. Oktober 2017 Melden Share Geschrieben 26. Oktober 2017 2 Sachen fallen mir dazu spontan ein, um konkreter zu werden, müsste ich deinen Aufbau nachstellen: a ) Du bewegst den Cube mit RB nur indirekt über dein Parent. Vermutlich bewegst du dein Parent innerhalb der Updatemethode: Beides ist für eine korrekte Simulation zwischen beiden RB schlecht. b ) Der RB deines Auto hat eine Reibungskraft gegenüber dem Boden, ist diese gering, dann kann dein Auto sehr leicht weggeschoben werden, die hohe Masse verhindert dies nicht. Laut meiner Erfahrung ist das größere Problem aber a). Dadurch, daß du den Würfel nur indirekt bewegst und zusätzlich noch die Position über die Updatemethode des Transforms vermutlich ständig überschreibst, kann sich der der RB des Würfels nicht korrekt verhalten und wird durch den RB des Autos nicht gebremst und dadurch kann er ggf. das Auto ungehindert wegschieben. Vermutliche Lösung: Den RB des Cubes über Kraft bewegen oder über:https://docs.unity3d.com/ScriptReference/Rigidbody.MovePosition.html Sobald du aber den Parent des Cubes dafür verwendest, sind die Auswirkungen auf die Physikengine quasi "unvorhersehbar". PS: Zudem kannst du nicht einerseits einen CharacterController verwenden und gleichzeitig eine korrekte Simulation zwischen 2 RBs erwarten. Der CC tut eben genau dies nicht. Aus diesem Grund gibt es spezielle Playercontroller für RBs. Möchte man trotzdem einen CC verwenden, dann muss man eine Kraft die der CC auf die Außenwelt ausüben soll nachträglich hinzufügen. Ein Wegschieben eines anderen RB wäre dafür ein Beispiel:https://docs.unity3d.com/ScriptReference/Rigidbody.AddForce.html Einfach einen RB an den CC zu hängen funktioniert da eben nicht. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.