Unity MethodReload: ubrzanje iteracija izbjegavanjem ponovnog učitavanja domene
Public- 22 Oct, 2026

Unity je objavila MethodReload, eksperimentalni paket dizajniran za eliminaciju vremena čekanja povezanog s ponovnim učitavanjem domene tijekom razvoja. Tradicionalno, izmjena koda igre u uređivaču prisiljava potpuno rastavljanje i ponovnu inicijalizaciju Mono AppDomaina, proces koji može prekinuti kreativni zamah. Na uređajima situacija je još ozbiljnija, jer IL2CPP uopće ne podržava ponovno učitavanje domena, što zahtijeva potpuno ponovno izgradnju igrača za svaku izmjenu. MethodReload rješava to omogućujući razvojnicima da trenutno ažuriraju tijela specifičnih metoda, pretvarajući dugačka čekanja kompilacije u pitanje nekoliko sekundi. Ova mogućnost sada je dostupna za odmah, s ciljem pojednostavljenja petlje iteracija za testiranje u uređivaču i na uređajima.
Paket, trenutačne verzije 0.7.0-exp.1, distribuiran je u imenskom prostoru com.unity.pipeline i zahtijeva Unity 6.0 ili noviju verziju. Da bi koristili ovu značajku, razvojnici moraju označiti specifične metode atributom [MethodReload] prije ulaska u Play Mode ili izgradnje igrača. Ovaj atribut mora biti prisutan u vrijeme kompilacije jer se logika dispečiranja izravno ugrađuje u bajtkod metode. Samo javne instancijske ili statičke metode koje vraćaju void ili IEnumerator su prikladne za ovaj tretman; sve ostale potpise se preskaču tijekom procesa izgradnje uz upozorenje. Ovo zahtjevanje predkompilacije osigurava da runtime može ispravno identificirati koje su metode kandidati za uživo ažuriranje, bez ometanja standardnog procesa kompilacije.
Nakon postavljanja atributa, radni proces uključuje pokretanje MethodReload Watchera, koji se nalazi u postavkama projekta pod Pipeline i Editor. U Editoru, ulazak u Play Mode aktivira sustav, omogućujući kompiliranje i ubacivanje bilo kakvih promjena u označeni kod u stvarnom vremenu. Za testiranje na uređajima, razvojni programeri moraju izgraditi development player s omogućenim Pipeline drajverom u runtime okruženju i povezati se putem Profilera ili prozora konzole. Kada se spremi datoteka koja sadrži označenu metodu, Editor je kompilira koristeći preprocesorske definicije playera i šalje ažuriranje na sve povezane uređaje. Ovaj proces ne zahtijeva ponovno pokretanje aplikacije, omogućujući besprijekornu petnju povratne informacije. Osim toga, dostupne su Unity CLI naredbe za radni procese temeljene na terminalu, koje korisnicima omogućuju pokretanje ponovnog učitavanja za specifične datoteke ili mape izravno iz naredbenog retka.
Unatoč prednostima u brzini, MethodReload radi unutar strogih ograničenja. Mijenja samo tijela označenih metoda, ostavljajući mjesta poziva, polja i raspored tipova netaknutima. Posljedično, razvojni programeri ne mogu dodavati nova polja ili klase putem ponovnog učitavanja. Tumač izvršava podskup C#, isključujući određene složene značajke, iako podržava primitivne tipove, petlje, delegacije i koutine. Roslyn analizator uključen u paket označava nepodržanu sintaksu u IDE-u. Na IL2CPP uređajima, tumač može pozivati samo one API-je koji su već referencirani u izgradnji; nedostajuća članstva rezultirat će iznimkama. Štoviše, tumačeni kod radi sporije od kompiliranih koda, kompromis koji utječe samo na razvojne izgradnje. Izdane izgradnje ne uključuju tumač, čime se osigurava da nema utjecaja na performanse u produkciji.
Ispod haube, MethodReload kombinira IL interpretaciju s tkanjem u vrijeme kompilacije. Svaka označena metoda sadrži prolog koji provjerava registar za dostupno predefiniranje. Ako predefiniranje postoji, tumač izvršava novi IL bajtkod; u suprotnom, izvršava se izvorni kompilirani kod. Ova arhitektura omogućuje da se tumač kompilira putem IL2CPP zajedno s ostatkom igre, omogućujući mu da radi na uređajima bez vanjskih servera ili otvorenih portova. Iako postojeći alati iz Asset Store nude punu podršku za C# u Editoru, oni ne rade na IL2CPP izgradnjama. MethodReload popunjava tu prazninu, pružajući održivo rješenje za iteracije na uređajima. Za razvojnike čiji su glavni problemi prvenstveno povezani s Editorom, postojeći alati mogu i dalje biti preferiraniji, ali za one koji ciljaju IL2CPP uređaje, MethodReload nudi jedinstven i moćan put prema bržim ciklusima razvoja.