td;LR: miután viszonylag könnyen újra létrehoztam a keverési és illesztési időlépések problémáját, meggyőztem magam, hogy az összes játékállapotot fixedupdate módszerekbe kell helyeznem.
mielőtt belemennénk a cikk lényegébe, tisztázni akartam, miért érdekel elsősorban az egység:
- nem nagyon érdekel a videojátékok lejátszása vagy létrehozása
- érdekel a hasznos eszközök felépítése (sok éve webfejlesztő vagyok)
- nem vagyok korai alkalmazója
- a Unity egy jól bevált megoldás a többplatformos 3D-s élmények létrehozására
mindezt szem előtt tartva, gyakorlati web-alapú Augmented Reality (AR) megoldások építése a Unity-val olyasmi, amit meg kell tanulnom.
ami a Unity tanulását illeti, nem találtam különösebben hasznosnak a hivatalos Unity oktatóanyagokat. Én találtam a Udemy természetesen tanulni Unity 3D abszolút kezdők, hogy kiváló.
átnéztem az anyagokat, és azon kaptam magam, hogy lógtam az Update és a FixedUpdate közötti leckekülönbségen. Egy kicsit tovább kutatva a probléma lényege az volt, hogy nem értettem a következő indoklást.
frissítés (); … rendszeres frissítésekhez használják, mint például: nem fizikai objektumok mozgatása
FixedUpdate (); … rendszeres frissítésekhez, például: A fizika (Rigidbody) objektumok beállítása
Unity — Update and FixedUpdate — Unity hivatalos oktatóanyagok
egy kicsit több kutatás jelent meg:
összefoglalva, tedd az összes játék logikáját Update vagy FixedUpdate. Ne keverje össze az időlépéseket, hacsak nem hajlandó Megharapni a golyót, és elfogadni némi dadogást. Továbbá, erősen érdemes megfontolni, hogy az összes játékállapotot FixedUpdate-be helyezzük, a frissítést kizárólag a felhasználói bevitelhez, vizuális effektusok, valamint a játékállapotok közötti interpoláció. Bár ez változást igényel, hogyan strukturálja a játékokat, ez egy bevált tervezési struktúra számos előnye van.
— KinematicSoup — Időlépések és egyenletes mozgás elérése az egységben
a cikkben található videoklip szemlélteti az időlépések keverésének és illesztésének problémáját.