TD;LR: Mit , ziemlich leicht, das Problem des Mischens und Übereinstimmens von Zeitschritten neu erstellt, Ich habe mich davon überzeugt, dass ich den gesamten Spielstatus in FixedUpdate-Methoden setzen sollte.
Bevor ich auf den Inhalt dieses Artikels eingehe, wollte ich klarstellen, warum ich überhaupt an Unity interessiert bin:
- Ich habe KEIN großes Interesse daran, Videospiele zu spielen oder zu erstellen
- Ich habe ein Interesse daran, nützliche Tools zu entwickeln (ich bin seit VIELEN Jahren Webentwickler)
- Ich bin KEIN Early Adopter
- Unity ist eine ETABLIERTE Lösung für die Erstellung von plattformübergreifenden 3D-Erlebnissen
Vor diesem Hintergrund muss ich lernen, mit Unity praktische Augmented Reality (AR) -Lösungen (webbasierte Augmented Reality) zu entwickeln.
Um Unity zu lernen, fand ich die offiziellen Unity-Tutorials NICHT besonders nützlich. Ich fand den Udemy-Kurs Learn Unity 3D für absolute Anfänger hervorragend.
Ich bin durch die Materialien gekreuzt und habe festgestellt, dass ich den Unterschied zwischen Update und FixedUpdate aufgehängt habe. Ein bisschen mehr recherchieren, Der Kern des Problems war, dass ich die folgende Begründung nicht verstand.
Update();… Wird für regelmäßige Updates verwendet, z. B.: Verschieben von nicht-physikalischen Objekten
FixedUpdate();… Wird für regelmäßige Updates verwendet, z: Physik (Rigidbody) -Objekte anpassen
Unity — Update und FixedUpdate — Offizielle Tutorials von Unity
Ein bisschen mehr Forschung ist aufgetaucht:
Legen Sie abschließend Ihre gesamte Spiellogik entweder in Update oder FixedUpdate. Mischen Sie keine Zeitschritte, es sei denn, Sie sind bereit, in die Kugel zu beißen und etwas Stottern zu akzeptieren. Darüber hinaus ist es dringend eine Überlegung wert, den gesamten Spielstatus in FixedUpdate , wobei Update ausschließlich für Benutzereingaben, visuelle Effekte und Interpolation zwischen Spielzuständen verwendet wird. Während dies erfordert eine Änderung, wie Sie Ihre Spiele strukturieren, es ist eine bewährte Design-Struktur mit vielen Vorteilen.
— KinematicSoup — Zeitschritte und reibungslose Bewegung in Unity
Ein Videoclip im Artikel veranschaulicht das Problem des Mischens und Anpassens von Zeitschritten.