Peanut Geschrieben 27. Juli 2021 Melden Share Geschrieben 27. Juli 2021 Hallo liebe Community. Ich versuche mich gerade in Zeit Manipulation von einzelnen Objekten in Unity. Deshalb kann ich Time.timeScale nicht nutzen. Ich benutze eine float Variable von 0 bis 1 um die Zeit von Objekten zu definieren. Das bedeutet das ich die Physik zum Teil selber schreiben muss . Gravity war kein Problem . Aber das Pushen bzw. das werfen von Objekten bereitet mir Kopfschmerzen da ich ja nicht einfach den Vektor mit der Zeit Variable multiplizieren kann. Hat da jemand eine Idee weil das liebe Internet hat keine Antwort parat. x___x Liebe Grüße 😄 Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 27. Juli 2021 Melden Share Geschrieben 27. Juli 2021 Ich weiß nicht so ganz, was "Zeit Manipulation" heißen soll... warum kannst du timeScale (meinst du deltaTime) nicht nutzen? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Peanut Geschrieben 28. Juli 2021 Autor Melden Share Geschrieben 28. Juli 2021 Weil Time.timeScale alle Gameobjekte gleichzeitig betrifft und nicht nur ein einzelnen. Als Beispiel: Jedes Gameobjekt hat ein Skript mit einer Variable timeManipulationValue die die Zeit für das einzelne Objekt verändert. Wenn ich einen Ball werfe soll er bei einem timeManipulationValue von 1 innerhalb von 1 Sekunde 5m weit fliegen. Gleichzeitig soll ein anderer Ball aber bei einem timeManipulationValue von 0.5 innerhalb von 2 Sekunden 5m weit fliegen. Alles möglichst physikalisch korrekt Mein genaues Problem ist jetzt das ich : AddForce(wurfVektor * Time.deltatime * timeManipulationValue); Nicht machen kann weil ich damit den Vektor verkürze und das Gameobjekt dann nicht weit genug fliegt. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 28. Juli 2021 Melden Share Geschrieben 28. Juli 2021 Verstehe ich das also richtig - du möchtest sozusagen für jedes Objekt sein eigenes timeScale haben - dass das eine Objekt normal schnell und das nächste z.B. mit halb so schneller Zeit bewegt wird? Also... für den Fall, dass ich das jetzt richtig verstanden habe, habe ich hier etwas gefunden: https://forum.unity.com/threads/physics-simulate-for-a-single-object-possible.614404/ Das Problem ist ja, dass du auch eigentlich nicht einfach nur die Zeit umstellen kannst, sondern eigentlich jedem Rigidbody sein eigenes FixedUpdate-Intervall geben müsstest. Muss das denn sehr präzise sein oder ist das okay, wenn zwei gleich geworfene Würfel minimal woanders den Boden berühren, wenn sie unterschiedliche "Zeit-Einstellungen" haben? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Peanut Geschrieben 28. Juli 2021 Autor Melden Share Geschrieben 28. Juli 2021 Ganz genau . Der Post ist sehr Hilfreich . Vielen Dank ! Es wäre ok wenn es nicht ganz präzise ist . Kennst du denn eine gute und relativ einfache Möglichkeit FixedUpdate-Intervalle für einzelne Objekte umzusetzen :)? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 28. Juli 2021 Melden Share Geschrieben 28. Juli 2021 Jau! Hier ist mein Artikel zu dem Thema: http://blog.13pixels.de/2019/what-exactly-is-fixedupdate/ Ich hoffe, dass er beim Verständnis hilft, aber der Code, den du suchst, ist da auch schon drin Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Peanut Geschrieben 30. Juli 2021 Autor Melden Share Geschrieben 30. Juli 2021 Geilo :D! Werde ich demnächst ausprobieren vielen Dank! 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.