Hogy lehet megoldani, hogy a játék bizonyos fps-sel müködjön?
Hali, pár hónapja foglalkozom desktop alkalmazások készítésével, és van egy hobbi project :D 2d-s ugrálos játék,coin-t lehet gyűjteni..stb
Ahogy nézem a gépemen ez kb 900fps-sel fut... teljesen felesleges ennyiszer frissitenem, hogy tudom beállításan, hogy maximum 160fps lehet a képfrissitésem?
de amúgy tudsz olyat is csinálni, hogy frametől függetlenül frissítesz
tehát nem Update függvényben
ismered a FixedUpdatetet? azt betudod lőni fix frissítésre másodpercenként és akkor performanciában tudsz nyerni :)
vagy tudsz olyat tenni a az updatebe, hogy csak X időnként frissítsen
vagy ha utána nézel az ECS megoldásnak a 2018.3-as verzió óta vannak a Systemek amiknél már nem a componentbe rakod a logikát, az csak adattárolásra szolgál
szintén Unityben fejlesztek, csak gondoltam leírom, hogy tanulj belőle kicsit
Jó nagy marhaság, egyrészt megközelítőleg sem fog ilyen gyorsan futni mire végzel, másrészt meg hadd döntse már el mindenki hogy akarja-e limitálni a teljesítményt, az első dolog amit pc n kiszednek minden játékból a kényszerített frame limit. De hogy válaszoljak is
Application.targetFrameRate = 160;
esetleg Update be egy
if(Application.tragetFramRate != 160){Application.tragetFramRate = 160;}
ha valami a háttérben variálná.
#4 a FixedUpdate nem erre van, ne is használjátok erre. A fizikának fontos, hogy megadott időközönként frissítsd, emiatt létezik a FixedUpdate, ha semmi köze a physx hez annak amit csinálsz akkor semmi keresnivalója a kódodnak FixedUpdate en belül. Plusz nem is érted, hogy hogy működik a FixedUpdate, ha nem tud másodpercenként 50x frissülni(ez az alapértelmezett érték) akkor megakasztja az egész játékot amíg nem végez, attól hogy x. alkalommal hív meg egy metódust FixedUpdate en belül neked lövésed sincs hogy valójában mennyi idő telt el. Ha x másodpercenként akarsz elvégezni egy feladatot akkor azt időméréssel tudod megtenni, vagy kézzel számolva vagy egy courutine ban.
#6:
Time.fixedDeltaTime :)
oké, akkor legyek én a hülye, de kicsit olvass utána annak, hogy mi a különbség az Update és FixedUpdate között a különbség és mire is használják/használhatják ezeket
de ha még okosabb akarsz lenni, akkor az Entity-Component-System újabb lépcsőinek is nézz utána Unityn belül, sokat tanulhatsz :)
Semmit hasznosat nem mondtál most sem, bravó. :)
Tudod mit ad vissza a Time.fixedDeltaTime? Az eltelt időt két FixedUpdate között - hogy ne kelljen FixedUpdate hez nyúlnod ha csak szinkronizálni akarod amit csinálsz a fizikával. Ez miben segít a kérdezőnek?
Neked inkább ajánlom az ECS t, ha már ez összezavart az pláne magas lesz az egyelőre..
#8:
ok, majd ha kompetens leszel talán még összefutunk, minden jót :)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!