Ich mache eine maschinelle Lernsimulation in Unity und ich brauchte nur ein wenig Sicherheit für meine Logik. Alle Physikereignisse passieren in FixedUpdate() und aus dem, was ich verstehe, werden Fluktuationen in der Bildrate meine Ergebnisse nicht beeinflussen, da die korrekte Anzahl von Physikaufrufen in jedem Zyklus gemacht wird (ich setze die Zeitskala lächerlich hoch). Gilt das, wenn die Bildrate wirklich niedrig ist, sagen wir 1-5 fps? Kann ich garantieren, dass die richtige Anzahl von Physikschritten aufgerufen wird, solange ich eine Bildrate von 1 oder höher beibehalten kann?Ausführen einer Unity-Simulation mit sehr niedrigen Frames
Dank
ich werde also nie 'verlieren' Physik Schritte? Zum Beispiel, wenn die Zeitskala so hoch eingestellt ist, dass die Leistung meines Computers ein Faktor wird, das heißt, die Zeit, die für den Physik-Schritt zugeteilt ist, reicht nicht aus, um alle Berechnungen durchzuführen? – Amposter
Solange Sie die Position eines 'RigidBody' nicht außerhalb der Physik-Update-Schleife verändern, werden Sie niemals" Physik-Frames "verlieren. Wenn Sie die Position eines Spielobjekts mit einem 'RigidBody' verändern, könnten Sie falsche physikalische Berechnungen erhalten. Erhöhen Sie entweder den Wert von "Maximum Allowed Timestep" im [Zeit-Manager] (https://docs.unity3d.com/Manual/class-TimeManager.html), um der Physik mehr Zeit zum Aufholen oder Neuschreiben Ihres Codes zu geben Bewegen Sie ein 'RigidBody'-Objekt während des Aktualisierungsrahmens ... –
** Wichtiger Hinweis: ** Es muss kein' Update() 'Aufruf sein, der den Umzug verursacht, wenn Sie untergeordnete Objekte mit einem' RigidBody' und Wenn Sie eine Animation auf einem Elternteil haben, können Sie 'RigidBody' während des Animationsupdates bewegen. –