td;LR: efter at have ret let genskabt problemet med at blande og matche timesteps, har jeg overbevist mig selv om, at jeg skulle sætte al spiltilstand i faste opdateringsmetoder.
før du kommer ind i indholdet af denne artikel, ønskede at præcisere, hvorfor jeg er interesseret i enhed i første omgang:
- jeg har ikke meget interesse i hverken at spille eller skabe videospil
- jeg har en interesse i at opbygge nyttige værktøjer (været en internetudvikler i mange år)
- jeg er ikke en tidlig adopter
- Unity er en veletableret løsning til at skabe multi-platform 3D-oplevelser
med alt dette i tankerne er opbygning af praktiske Netdrevne Augmented Reality (AR)-løsninger med Unity noget, jeg har brug for at lære.
hvad angår læring af enhed, fandt jeg ikke særlig de officielle Unity-tutorials nyttige. Jeg fandt Udemy course Learn Unity 3D for absolutte begyndere at være fremragende.
Jeg kørte gennem materialerne og fandt mig selv hængt på lektionsforskellen mellem opdatering og rettet opdatering. Forsker lidt mere, kernen i problemet var, at jeg ikke forstod følgende begrundelse.
opdatering (); … bruges til regelmæssige opdateringer såsom: flytning af ikke-fysiske objekter
Fastopdatering ();… bruges til regelmæssige opdateringer såsom: Justering af fysik (Rigidbody) objekter
Unity — Update and Fastedupdate — Unity officielle Tutorials
lidt mere forskning dukkede op:
afslutningsvis skal du sætte al din spillogik i enten opdatering eller Fastopdatering. Bland ikke Og match timesteps, medmindre du er villig til at bide kuglen og acceptere noget stamme. Derudover, det er stærkt værd at overveje at sætte all game state I Fastopdatering, ved hjælp af opdatering udelukkende til brugerinput, visuelle effekter, og interpolation mellem spiltilstande. Selvom dette kræver en ændring, hvordan du strukturerer dine spil, det er en gennemprøvet designstruktur med mange fordele.
— KinematicSoup — Timesteps og opnå jævn bevægelse i enhed
et videoklip i artiklen illustrerer problemet med at blande og matche timesteps.