Przejdź do treści

BlogDla ekspertów

Flutter + Unity w 2026: Unity 6 w aplikacji we Flutterze

Flutter Unity w 2026 działa, ale zasady ustala Unity: jedno Unity naraz, renderowanie na pełnym ekranie telefonu i pamięć, która zostaje zajęta po wyładowaniu. Pokazujemy, jak działa Unity as a Library z Unity 6, uczciwie porównujemy cztery wtyczki i dzielimy się architekturą, poprawkami buildu i cenami z Digitoys, aplikacji z Unity 6, którą wydaliśmy na naszej wtyczce unity_kit.

Dla ekspertów20 min czytaniaOpublikowano Autor: Eryk Kruk, CEO
Cztery ekrany aplikacji Digitoys na ciemnym tle: kolekcja medali, figurka 3D z opisem, kapsuła z naklejką w scenie Unity i blind box Star Wars gotowy do otwarcia.
Digitoys, aplikacja do kolekcjonowania zabawek, którą zbudowaliśmy we Flutterze ze scenami Unity 6 w środku. Działa w App Store i Google Play (interfejs po angielsku).

"Nasze sceny Unity działają w edytorze. Teraz muszą zamieszkać w prawdziwej aplikacji, z logowaniem, płatnościami i stroną w App Store." Albo: "Nasza aplikacja stoi na flutter_unity_widget, wtyczka przestała dostawać aktualizacje, a każdy nowy Xcode psuje build." Jeśli to brzmi jak Twój zespół, ten przewodnik Flutter Unity jest dla Ciebie. Prostymi słowami wyjaśniamy, jak umieścić Unity w aplikacji we Flutterze, gdzie takie projekty się wykładają i ile kosztują.

Krótka odpowiedź: Unity to silnik gier: program, który wiele razy na sekundę rysuje interaktywne sceny 3D. Flutter to zestaw narzędzi Google do budowania jednej aplikacji na iOS i Androida z jednego kodu. Flutter Unity w 2026 oznacza uruchomienie Unity 6 jako biblioteki (Unity as a Library) w Twojej aplikacji we Flutterze. To działa na produkcji: tak zbudowaliśmy aplikację Digitoys, która jest dostępna na iOS i Androidzie, na unity_kit, otwartej wtyczce, którą sami napisaliśmy i utrzymujemy. Architekturę wyznaczają jednak zasady Unity: jedno Unity naraz w aplikacji, renderowanie na pełnym ekranie telefonu i pamięć, która zostaje zajęta po wyładowaniu. W tym tekście znajdziesz: kiedy to się opłaca, cztery wtyczki do wyboru, architekturę i poprawki buildu, których używamy, oraz koszty.

Dlaczego to ważne dla budżetu: w takich projektach ryzyko siedzi w architekturze i w buildzie, a nie w samym 3D. Jeśli te dwie rzeczy są dobrze ustawione od początku, nowe sceny i aktualizacje aplikacji to rutyna. Jeśli nie, każda aktualizacja Unity, Xcode albo Androida zamienia się w naprawę.

Kiedy Unity w aplikacji we Flutterze się opłaca, a kiedy to przesada?

W skrócie: Unity w aplikacji we Flutterze ma sens, gdy jedna część produktu potrzebuje silnika czasu rzeczywistego, na przykład interaktywnego 3D, AR albo mini-gry, a reszta to zwykła aplikacja: logowanie, listy, płatności, ustawienia. Flutter buduje aplikację dookoła, a Unity rysuje tylko sceny. Silnik czasu rzeczywistego rysuje nowy obraz przy każdym ruchu użytkownika, tak jak gra wideo. AR (rozszerzona rzeczywistość) układa obiekty 3D na obrazie z kamery.

Większość pracy w takim produkcie to nie fizyka gry, tylko ekrany, ścieżki użytkownika, zakupy i backend. Po premierze też najczęściej zmienia się część we Flutterze: onboarding, cennik, nowe ekrany. Sceny Unity zmieniają się rzadziej. Potrzebujesz więc specjalisty od Unity do scen i inżynierów Fluttera do całej reszty, a nie zespołu Unity do całej aplikacji. Dla budżetu oznacza to, że za pracę przy silniku płacisz tylko tam, gdzie produkt naprawdę go potrzebuje.

  • Pasuje: treści 3D albo AR, które potrzebują silnika. Kolekcje przedmiotów w żywym 3D, konfiguratory produktów, ustawianie obiektów w AR ze światłem i fizyką.
  • Pasuje: sceny gry w aplikacji. HopX, nasz projekt z 2023 roku, uruchamia gry Unity w aplikacji we Flutterze, a Flutter obsługuje konto i kontroler Bluetooth.
  • Pasuje: istniejący projekt Unity, który potrzebuje prawdziwej aplikacji. Treści Unity Digitoys działały najpierw w aplikacji webowej w React. Przenieśliśmy je na telefony w natywnej aplikacji we Flutterze.
  • Nie pasuje: prosta przeglądarka modelu 3D. glTF i GLB to standardowe formaty plików z modelami 3D. Do jednego modelu, który użytkownik obraca i przybliża, paczka Fluttera taka jak model_viewer_plus albo flutter_scene (silnik 3D zbudowany na Flutter GPU, własnej niskopoziomowej warstwie graficznej Fluttera) jest dużo lżejsza niż całe Unity.
  • Nie pasuje: cały produkt to gra. Wtedy zbuduj go w samym Unity. Powłoka we Flutterze doda drugi system budowania prawie bez zysku.
Cztery ekrany HopX: czerwony tunel z siatki z napisem BANG w pionie i trzy poziome ekrany gry z kapslem, z licznikiem czasu, punktami i metalowym kapslem 3D.
HopX (2023): sceny gier Unity w aplikacji we Flutterze.

Jak działa Unity as a Library? 5 ograniczeń, które ustawiają całą aplikację

W skrócie: Unity as a Library zamienia Twój projekt Unity w klocek, który zwykła aplikacja może załadować i pokazać. Unity narzuca twarde limity na to, jak ten klocek się zachowuje, i żadna wtyczka ich nie usunie. Te limity wyznaczają każdą późniejszą decyzję z tego przewodnika.

Co dzieje się pod spodem. Unity eksportuje projekt jako natywną bibliotekę: paczkę skompilowanego kodu, którą inna aplikacja może załadować. Na Androidzie to moduł unityLibrary, na iOS UnityFramework. Wtyczka Fluttera, czyli mała paczka łącząca Fluttera z kodem samego telefonu, uruchamia w Twojej aplikacji odtwarzacz Unity. Odtwarzacz (player) to ta część Unity, która wykonuje Twoje sceny na telefonie. Wtyczka pokazuje jego widok między ekranami Fluttera i przekazuje wiadomości między Dartem, językiem aplikacji we Flutterze, a C#, językiem skryptów Unity. Dokumentacja Unity wymienia takie limity:

Limity Unity as a Library z dokumentacji Unity 6.3 i co oznaczają dla aplikacji we Flutterze (stan na listopad 2026)
Limit (dokumentacja Unity)Co to znaczy w aplikacji we Flutterze
Jedno środowisko Unity na aplikację, bez drugiej instancjiJeden widok Unity naraz. Dwa ekrany, które pokazują Unity, dzielą ten sam widok, więc planujesz przełączanie scen, a nie dwa widżety.
Na Androidzie i iOS tylko renderowanie na pełnym ekranie (Unity Industry może się różnić)Małe okno Unity w środku ekranu wykracza poza to, co Unity wspiera. Wtyczki to umożliwiają, ale zmiana rozmiaru jest najsłabszym punktem.
Po Application.Unload (poleceniu, którym Unity się wyładowuje) Unity trzyma 80-180 MB, żeby szybko wystartować ponownieWyładowanie nie oddaje całej pamięci. Uwzględnij to na tanich telefonach z Androidem.
Na iOS po Application.Quit (poleceniu zamknięcia Unity) Unity nie załaduje się ponownie w tej samej sesjiNigdy nie zamykaj Unity na iOS. Zamiast tego je wstrzymaj albo załaduj pustą scenę.
Wtyczki natywne i zarządzane (dodatki pisane w kodzie platformy albo w C#) mogą wymagać zmianSprawdź każdą wtyczkę Unity (reklamy, analityka, AR) w wyeksportowanej bibliotece, a nie tylko w edytorze.

Źródło to strona Unity Unity as a Library dla Unity 6.3 (EN). Jako wspierane platformy podaje Androida, iOS, Windows i UWP. Wszystko dalej, od wyboru wtyczki po sposób układania ekranów, wynika z tych pięciu wierszy.

Co to znaczy dla biznesu: na tych limitach giną budżety. Projekt z dwoma widokami Unity na jednym ekranie albo z małym oknem Unity, które rośnie i maleje, kosztuje dodatkową pracę i zostaje kruchy po premierze. Sprawdź projekty ekranów z tą tabelą, zanim ktokolwiek wyceni pracę.

Jaką wtyczkę Flutter Unity wybrać w 2026? 4 paczki obok siebie

W skrócie: do nowych projektów w 2026 wybieraj między unity_kit a flutter_embed_unity. Obie wspierają Unity 6 i nadal dostają aktualizacje. gameframework dobrze się zapowiada, ale jest przed wersją 1.0, czyli autorzy wciąż traktują go jako wczesną wersję. flutter_unity_widget nie jest już rozwijany: nie dostaje poprawek. Tabela porównuje ich strony na pub.dev, oficjalnym katalogu paczek Fluttera, stan na listopad 2026.

Wtyczki Flutter Unity w porównaniu, dane z pub.dev (stan na listopad 2026)
PaczkaOstatnia wersjaWersje UnityStanWybierz, gdy
unity_kit (nasza)2.2.0, 2026-10-15, MIT2022.3 LTS do Unity 6Aktualizowana. Pełne wsparcie Androida i iOS, web eksperymentalnie.Chcesz typowanego mostu, pilnowanego cyklu życia, kolejki gotowości, grupowania wiadomości, strumieniowania zasobów i AR Foundation.
flutter_embed_unity2.0.0, 2026-04-13, MIT2022.3 LTS, 6000.0, 6000.3Aktualizowana. Unity 6 na Androidzie wymaga drugiej paczki.Chcesz lekkiego widżetu z uczciwą listą limitów, a komunikację budujesz na nim sam.
gameframework0.0.3, 2026-02-07, MIT2022.3Przed 1.0. Wsparcie Unreal wciąż w budowie.Chcesz jednego API dla Unity teraz i Unreal później i akceptujesz wczesną wersję.
flutter_unity_widget2022.2.1, 2024-01-082019.4.3 lub nowsze (README)Oznaczona na pub.dev jako porzucona (discontinued).Nie zaczynaj na niej nowych projektów. Zaplanuj migrację.

Kilka słów z tabeli po ludzku. MIT to otwarta licencja, która pozwala użyć kodu w komercyjnej aplikacji. Most (bridge) to kanał, którym jeżdżą wiadomości między Flutterem a Unity. Typowany most sprawdza kształt każdej wiadomości już przy budowaniu aplikacji, więc błąd wychodzi na komputerze programisty, a nie na telefonie użytkownika. Cykl życia to stała kolejność stanów Unity: ładowanie, gotowe, wstrzymane, wyładowane. Kolejka gotowości trzyma wiadomości, dopóki Unity nie zgłosi, że jest gotowe. Grupowanie (batching) łączy wiele małych wiadomości w jedną.

Uczciwie wobec innych: flutter_embed_unity opisuje swoje limity lepiej niż większość paczek, a jego autor jasno pisze, że wspiera jedną instancję Unity naraz. gameframework to paczka, którą jako następcę poleca autor flutter_unity_widget. Napisaliśmy unity_kit, naszą otwartą wtyczkę Flutter Unity (EN), bo aplikacje klientów potrzebowały więcej niż samego widoku: typowanych wiadomości, których błędy wychodzą już przy budowaniu, cyklu życia, który nie może przeskoczyć stanu, i wiadomości, które czekają, aż Unity będzie gotowe. Jeśli Twoja aplikacja wciąż stoi na flutter_unity_widget, nasz przewodnik po migracji z flutter_unity_widget (EN) wyjaśnia, co się zmienia, a co zostaje.

Dla biznesu wybór wtyczki decyduje o tym, ile kodu Twój zespół napisze i będzie utrzymywał sam. Lekka wtyczka jest tańsza na start, ale wtedy Twój zespół buduje komunikację i obsługę błędów. Pełniejsza wtyczka kosztuje mniej w kolejnych latach, bo ten kod jest już napisany i przetestowany.

React Native i Unity: te same 5 ograniczeń

React Native, framework Mety do budowania aplikacji mobilnych w JavaScripcie, osadza Unity w ten sam sposób. Społecznościowa paczka @azesmway/react-native-unity (wersja 1.1.1 w npm, katalogu paczek JavaScriptu, sierpień 2026) opakowuje Unity as a Library, więc działa tam każdy limit z tabeli powyżej. unity_kit jest tylko dla Fluttera. Jeśli wybierasz framework do nowej aplikacji z Unity w środku, strona Unity wygląda w obu tak samo. Wybieraj według reszty aplikacji i zespołu, który będzie ją utrzymywał. Nasze porównanie Fluttera i React Native przeprowadza przez ten wybór.

Architektura, która działa na produkcji: jeden widok Unity pod wszystkimi ekranami

W skrócie: na produkcji działa jeden widok Unity, który startuje raz i zostaje pod każdym ekranem Fluttera. Unity jest zamontowane, czyli załadowane i podpięte do aplikacji, przez całą sesję. Ekrany Fluttera nad nim decydują, kiedy scena jest widoczna i który dotyk do niej trafia. Tak zbudowana jest aplikacja Digitoys.

Pomyśl o teatrze. Scenę buduje się raz i zostaje w budynku. Między aktami zmienia się na niej scenografia. Kurtyna odsłania scenę tam, gdzie widzowie mają ją widzieć, i zasłania tam, gdzie nie. Unity to scena, sceny Unity to scenografia, a ekrany Fluttera to kurtyna. Nikt nie buduje sceny od nowa przed każdym aktem. Budowanie Unity od nowa dla każdego ekranu jest równie powolne, a na iOS po zamknięciu Unity wręcz niemożliwe.

Pięć warstw aplikacji we Flutterze z Unity w środku. Na wierzchu ekrany Fluttera, przezroczyste tam, gdzie widać scenę. Maska dotyku decyduje, który dotyk trafia do Unity. Jeden widok Unity 6 montowany raz pod wszystkimi ekranami, przesuwany, nigdy nie zmienia rozmiaru. Typowany most przenosi 8 typów wiadomości do Unity i 10 z powrotem, w kolejce do chwili gotowości Unity. Licznik pauz pozwala wideo albo ciężkiemu ekranowi wstrzymać Unity, dopóki ostatni z nich jej nie zwolni.Ekrany FlutteraNa wierzchuKażdy ekran, menu i panel to Flutter. Przezroczyste tam, gdzie widać scenę.1Maska dotykuDotykDecyduje, który dotyk trafia do Unity. Reszta zostaje przy widżetach Fluttera.2Jeden widok Unity 6Montowany razPod każdym ekranem, nigdy od nowa. Przesuwany, bez zmiany rozmiaru.3Typowany most18 typów8 typów do Unity, 10 z powrotem. W kolejce, aż Unity zgłosi gotowość.4PauzaLicznik pauzWideo albo ciężki ekran trzyma pauzę. Unity rusza po zwolnieniu ostatniej pauzy.5Jedno Unity na całą aplikację i każdy ekran.
Architektura, której używamy na produkcji: jeden widok Unity pod każdym ekranem Fluttera.

Digitoys: z aplikacji webowej w React do Unity 6 w App Store

Problem. Digitoys, wcześniej Cryptoys, to darmowa aplikacja do kolekcjonowania licencjonowanych cyfrowych zabawek i naklejek, z blind boxami i zabawkami w żywym 3D. Jej treści Unity działały najpierw w aplikacji webowej w React. Kolejnym krokiem była natywna aplikacja na iOS i Androida. Produkcyjne sceny Unity tworzy osobny zespół Unity, więc aplikacja musiała też przyjmować każdy nowy eksport tego zespołu bez przeróbek. Eksport to paczka, którą Unity tworzy dla każdej platformy.

Co zrobiliśmy. Zbudowaliśmy aplikację we Flutterze wokół Unity 6 (6000.3), które działa jako biblioteka przez unity_kit. Naszą robotą było wszystko dookoła scen: aplikacja, integracja, most i proces eksportu. Stabilność dało pięć decyzji:

  1. Jeden widok, zamontowany raz. Unity leży na samym dole stosu ekranów, pod wszystkimi trasami (trasa to jeden ekran w nawigacji aplikacji). Nie jest budowane od nowa przy przejściach, co omija też zasadę iOS, że Unity nie załaduje się ponownie po zamknięciu.
  2. Przesuwany, nie skalowany. Ekran, który pokazuje scenę, przesuwa widok Unity na miejsce. Problemy zaczynają się przy zmianie rozmiaru renderera, który oczekuje pełnego ekranu, więc nigdy tego nie robimy.
  3. Maska dotyku. Maska dotyku (hit mask) to mapa ekranu, która mówi, które obszary należą do Unity. Dzięki niej część dotknięć trafia do Unity, a reszta zostaje przy przyciskach Fluttera narysowanych na wierzchu. W 2023 pisaliśmy, że dotyk może odbierać tylko jedna strona naraz. Maska usuwa to ograniczenie.
  4. Pauza przez licznik. Licznik pauz (ref-counted suppressor) zlicza prośby o wstrzymanie Unity. Każda część aplikacji, która potrzebuje ciszy, dodaje pauzę, na przykład wideo z otwierania blind boxa, żeby odtwarzanie w 1080p nie przycinało na Androidzie. Unity rusza dopiero, gdy zwolniona zostanie ostatnia pauza, więc dwa ekrany nie obudzą go za wcześnie.
  5. Dwie sceny, jeden build. Dwie sceny Unity są w jednym eksporcie. Flutter przełącza je wiadomością LOAD_SCENE zamiast uruchamiać drugie środowisko Unity.

Most jest typowany: 18 typów wiadomości, 8 do Unity i 10 z powrotem. Typ wiadomości to jeden rodzaj polecenia, na przykład "załaduj tę scenę" albo "użytkownik dotknął zabawki". Wiadomości do Unity czekają w kolejce, aż scena zgłosi gotowość, więc żadna nie ginie przy starcie. Klient webowy platformy używa tych samych logicznych typów wiadomości, więc oba klienty mówią jednym protokołem.

Efekt. Pierwszy commit powstał w czerwcu 2026, a Digitoys weszło do App Store w lipcu 2026. Aplikacja jest też w Google Play i nadal rozwijamy ją razem z klientem. Każdy nowy eksport od zespołu Unity trafia do aplikacji tymi samymi opisanymi krokami. Case study Digitoys: Unity 6 w aplikacji we Flutterze pokazuje ekrany i pełny zakres prac.

Mała figurka Dartha Vadera z czerwonym mieczem świetlnym na świecącej platformie, koniec otwierania blind boxa w aplikacji Digitoys.
Digitoys: koniec otwierania blind boxa. Otwieranie to wideo w 1080p, a Unity jest w tym czasie wstrzymane, żeby obraz nie przycinał na Androidzie.

Dla biznesu ten układ oznacza mniej niespodzianek po premierze. Nowe sceny wchodzą zawsze tak samo, przejścia między ekranami nie restartują Unity, a każda strona ma jasnego właściciela: zespół Unity odpowiada za sceny, zespół aplikacji za wszystko dookoła.

9 błędów buildu Unity 6 w aplikacji we Flutterze i poprawka na każdy

W skrócie: najwięcej czasu w projekcie Flutter Unity idzie na build, a nie na kod. Każdy eksport Unity tworzy natywne projekty, które build Fluttera musi zlinkować, czyli połączyć w jedną aplikację. Unity, Xcode, Gradle i Flutter zmieniają się co roku i każda zmiana może zepsuć to połączenie. Xcode to narzędzie Apple do budowania aplikacji na iOS, a Gradle to narzędzie do budowania aplikacji na Androida.

W tabeli pojawiają się jeszcze dwa terminy. IL2CPP to krok Unity, który zamienia skrypty C# na kod C++, a potem na kod maszynowy telefonu. .NET 8 to zestaw narzędzi Microsoftu, którego Unity 6 używa w tym kroku. Oto problemy, na które trafiamy w projektach z Unity 6, z poprawkami, których używamy.

Problemy z buildem Fluttera i Unity 6 oraz poprawki z naszych projektów
ProblemPlatformaPoprawka
Eksport IL2CPP się zawieszaAndroidUruchom eksport z opcją wiersza poleceń --disable-bee-builder.
IL2CPP w Unity 6 nie znajduje .NET 8 przy buildzie FlutteraAndroidUstaw DOTNET_ROOT, czyli ścieżkę instalacji .NET, dla kroku budowania Unity uruchamianego z Gradle.
Każdy nowy eksport kasuje Twoje zmiany natywneObieTrzymaj każdą zmianę jako skryptową łatkę i nakładaj ją po każdym eksporcie.
Aplikacja wywraca się przy starcieiOSUnityFramework jest osadzony dwa razy. Osadź go tylko w jednym miejscu.
Niezdefiniowane symbole mostu przy linkowaniuiOSSkompiluj natywne pliki mostu do UnityFramework.
Linkuje się zły frameworkiOSLinkuj UnityFramework z katalogu Release-iphoneos, czyli z buildów na prawdziwe iPhone'y.
IL2CPP pada na ścieżce ze spacjamiObieTrzymaj ścieżki projektu i eksportu bez spacji.
Build nie uruchamia się w symulatorzeiOSBuildy na urządzenie wymagają fizycznego iPhone'a. Symulator, czyli emulator iPhone'a na Macu, potrzebuje osobnego eksportu z Simulator SDK.
Google Play zgłasza strony pamięci 16 KBAndroidUżyj wersji Unity ze wsparciem 16 KB i przebuduj wtyczki natywne.

Sprawdzenie 16 KB nie jest opcjonalne. Strona pamięci to blok, w jakim system telefonu przydziela pamięć. Android używał stron 4 KB, a nowsze urządzenia mogą używać stron 16 KB. Google pisze, że aplikacje celujące w Androida 15 lub nowszego muszą wspierać strony 16 KB, a od 1 lutego 2027 aktualizacji bez tego wsparcia nie da się wydać (dokumentacja Androida (EN), stan na listopad 2026). Dokumentacja Unity podaje, że wsparcie 16 KB zaczyna się od Unity 6000.0.38f1 (wymagania Unity dla Androida (EN)), a pracownicy Unity na forum Unity (EN) podają 2022.3.56f1 jako minimum w linii 2022.3. Każda biblioteka natywna w eksporcie, na przykład SDK do AR albo reklam, też musi to wspierać. Dla biznesu to termin: jeśli go przegapisz, nie wydasz w Google Play żadnej aktualizacji, także poprawek błędów.

Dwa nawyki z 2023 roku nadal oszczędzają tygodnie. Po pierwsze, trzymaj projekt Unity we własnym repozytorium, czyli wspólnym miejscu na kod i jego historię. Użyj Git LFS (dodatku do dużych plików w Gicie, standardowym narzędziu do historii kodu) albo Unity Version Control, dawniej Plastic SCM. Traktuj każdy eksport jak gotowy produkt, który aplikacja tylko odbiera, jak wydrukowaną książkę, a nie rękopis do poprawiania. Po drugie, oskryptuj cały łańcuch, żeby nowy eksport od zespołu Unity trafiał do aplikacji zawsze tymi samymi opisanymi krokami:

  • Krok 1Eksport. Android i iOS z projektu Unity, z wiersza poleceń.
  • Krok 2Łatki. Nałóż skryptowe zmiany natywne na oba eksporty.
  • Krok 3Build. Aplikacja we Flutterze na obie platformy, na maszynie wystarczająco mocnej dla IL2CPP.
  • Krok 4Testy na urządzeniach. Fizyczny iPhone i najsłabszy telefon z Androidem, który wspierasz.

Oskryptowany łańcuch zamienia każdy nowy eksport w rutynę zamiast dnia zgadywania. Aplikacja nie zależy też od pamięci jednej osoby. Masz po innym zespole aplikację z Unity w środku i nikt nie umie powiedzieć, jak powstał ostatni eksport? Zacznij od audytu aplikacji mobilnej przed jej przejęciem. Pokaże, czego potrzebuje build i gdzie się sypie, zanim ktokolwiek zmieni kod.

6 zasad, które trzymają aplikację Flutter Unity szybką i lekką

W skrócie: Unity w aplikacji we Flutterze renderuje tak samo szybko jak samodzielnie. Koszt to pamięć, most i rozmiar aplikacji. Trzymaj most w ciszy, wstrzymuj Unity, gdy go nie widać, strumieniuj ciężkie zasoby i mierz na prawdziwych telefonach zamiast zgadywać. Problemy z pamięcią wyglądają tak, że aplikacja sama się zamyka na tańszych telefonach, a użytkownik widzi to jako awarię. Duże pobieranie oznacza dłuższe czekanie przed pierwszym użyciem.

  • Grupuj wiadomości. unity_kit łączy serie wiadomości w jedno wywołanie natywne na okno klatki, około 16 ms przy 60 fps (klatkach na sekundę), zamiast jednego wywołania na wiadomość.
  • Ograniczaj gadatliwe aktualizacje. Przy suwaku albo pozycji kamery zostawiaj tylko ostatnią wartość. Przy hałaśliwych zdarzeniach odrzucaj nadmiar.
  • Uruchamiaj Unity wcześnie. Tak jak w HopX w 2023, uruchom Unity przy starcie aplikacji, żeby pierwsza scena pokazała się bez zimnego startu, czyli powolnego ładowania od zera.
  • Parkuj Unity, gdy go nie widać. Załaduj pustą scenę, żeby zwolnić pamięć sceny, gdy użytkownik jest na ekranach Fluttera, zamiast wyładowywać albo zamykać Unity.
  • Strumieniuj ciężkie zasoby. Zasoby to pliki, których używa scena: modele, tekstury, dźwięki. unity_kit pobiera je z CDN, czyli sieci serwerów, która szybko dostarcza pliki, według manifestu, czyli listy plików. Każdy plik sprawdza przez SHA-256, cyfrowy odcisk palca, który potwierdza, że plik jest kompletny i niezmieniony, i zapisuje w pamięci podręcznej. Wspiera Unity Addressables, system Unity do ładowania treści na żądanie. Pobieranie ze sklepu zostaje małe, a treści mogą się zmieniać bez aktualizacji aplikacji.
  • Mierz pamięć. Obserwuj FPS, czas klatki i pamięć na najsłabszym telefonie z Androidem, który wspierasz. Pamiętaj, że Unity trzyma 80-180 MB nawet po wyładowaniu.

AR na telefonie i Apple Vision Pro: co działa w 2026

W skrócie: do AR na telefonie praktyczną drogą jest dziś AR Foundation od Unity w aplikacji we Flutterze, gdy potrzebujesz światła, fizyki albo złożonych scen. Unity wspiera Apple Vision Pro przez visionOS, system tych gogli, ale Unity as a Library i Flutter go nie obsługują. Aplikacja na Vision Pro to więc aplikacja w Unity.

W 2023 porównywaliśmy wtyczki Fluttera do ARCore i ARKit z Unity. ARCore i ARKit to własne systemy AR Google i Apple. Proste ustawianie obiektów wciąż może korzystać z wtyczek natywnych. Do wszystkiego bogatszego AR Foundation, zestaw AR od Unity, daje jedno API nad ARCore i ARKit. API to zestaw poleceń, których używa programista. unity_kit 2.x dodaje ustawienie do uruchamiania AR na ekranie Fluttera, UnityConfig.ar(). W trybie passthrough Unity samo rysuje obraz z kamery. W trybie overlay tło Unity jest przezroczyste, więc prześwituje przez nie obraz z kamery albo treść Fluttera. Testuj AR na fizycznych urządzeniach: symulatory go nie uruchamiają.

Nasz tekst o Vision Pro z 2023 roku był przewidywaniem przed premierą. Dziś Unity buduje na visionOS przez paczki PolySpatial: wersja 3.x działa z Unity 6.3, praca wymaga Maca z Apple Silicon (czyli z własnym procesorem Apple), a aplikacje mogą być w pełni immersyjne, okienkowe albo mieszane (wymagania Unity dla visionOS (EN)). Unity as a Library wymienia jednak tylko Androida, iOS, Windows i UWP, a lista wspieranych platform Fluttera (EN) dla Fluttera 3.47 nie ma visionOS. Jeśli potrzebujesz obu, współdziel sceny Unity między aplikacją na telefon we Flutterze a osobną aplikacją Unity na Vision Pro (stan na listopad 2026).

Do planu i budżetu: traktuj Vision Pro jako drugą aplikację, która używa Twoich scen, a nie jako funkcję, którą później dodasz do aplikacji na telefon.

Unity 6.3 LTS i licencje Unity: co wybrać i ile to kosztuje

W skrócie: nowe projekty Flutter Unity zaczynaj na Unity 6.3 LTS, które Unity wspiera do grudnia 2027. LTS (long-term support) to wersja, którą Unity poprawia przez określony czas, więc to bezpieczny wybór do aplikacji. Wsparcie Unity 6.0 LTS skończyło się w październiku 2026, więc projekty na 6.0 powinny zaplanować przesiadkę. Licencje są prostsze niż w 2023: Runtime Fee, opłata za każdą instalację zapowiedziana przez Unity w 2023, zniknęła, a ceny stanowisk są publiczne.

Wersje Unity do integracji z Flutterem (stan na listopad 2026)
WersjaWsparcie UnityNasza rada
Unity 6.3 LTS (6000.3)Do grudnia 2027Domyślny wybór do nowych integracji. Na tej wersji działa Digitoys.
Unity 6.0 LTS (6000.0)Do października 2026, rok dłużej w Enterprise i IndustryZaplanuj przejście na 6.3 razem z najbliższym wydaniem aplikacji.
Unity 2022.3 LTSStarsza wersja LTSWciąż wspierana przez unity_kit i flutter_embed_unity. Zaktualizuj przed dużymi nowymi funkcjami.

Źródła: strona wsparcia Unity 6 (EN) i zmiany cen Unity (EN). Unity odwołało Runtime Fee 12 września 2024. Unity Personal jest darmowe do 200 000 USD przychodu i finansowania. Unity Pro kosztuje 2310 USD za stanowisko rocznie po 5% podwyżce z 12 stycznia 2026, a firmy z rocznym przychodem i finansowaniem od 25 mln USD dostają indywidualny pakiet Enterprise. Stanowisko (seat) to licencja dla jednej osoby. Licencje liczysz dla ludzi, którzy pracują w edytorze Unity, a nie dla użytkowników aplikacji: koszt licencji nie rośnie z liczbą instalacji.

Kto powinien zbudować Twoją aplikację Flutter Unity i ile to kosztuje?

W skrócie: wybierz zespół, który już wydał Unity as a Library w obu sklepach i zna Fluttera, natywne buildy iOS i Androida oraz eksport z Unity. Gdy szukasz programistów Unity, większość wyników to twórcy gier. Świetny twórca gier mógł nigdy nie linkować UnityFramework do aplikacji we Flutterze, a właśnie tam takie projekty się sypią.

Pięć pytań szybko pokazuje, czy zespół już to robił. Nie musisz oceniać szczegółów technicznych. Zespół, który to robił, na każde pytanie odpowiada konkretnym przykładem, a zespół, który nie robił, odpowiada ogólnikami. Oto pytania, jak wygląda dobra odpowiedź i jak odpowiadamy my.

Pięć pytań do każdego zespołu Flutter Unity, z naszymi odpowiedziami
PytanieDobra odpowiedźNasza odpowiedź
Czy możecie pokazać działającą aplikację z Unity we Flutterze albo w React Native?Link do strony w sklepieDigitoys: Unity 6.3 w aplikacji we Flutterze, w App Store od lipca 2026 i w Google Play. HopX: gry Unity w aplikacji we Flutterze (2023).
Jakiej wersji Unity i jakiej wtyczki użyliście i dlaczego?Numer wersji i powódUnity 6.3 LTS z unity_kit, wtyczką, którą napisaliśmy, otwartą na licencji MIT na pub.dev.
Jak obsługujecie pauzę, tło i zasadę iOS, że po Quit nie da się ponownie załadować Unity?Konkretny mechanizmJeden widok Unity zamontowany raz i nigdy nie zamykany, plus licznik pauz dla wideo i ciężkich ekranów.
Czy Wasz proces eksportu jest oskryptowany? Możemy zobaczyć kroki łatek?Skrypty, które da się przeczytaćEksport, łatki, build, testy: te same opisane kroki przy każdym eksporcie, który przysyła zespół Unity Digitoys.
Czy testujecie na fizycznych urządzeniach, także na słabym telefonie z Androidem?Nazwane urządzenia testoweKrok 4 naszego procesu: fizyczny iPhone i najsłabszy telefon z Androidem, który aplikacja wspiera.

Dlaczego firmy przynoszą nam swoje sceny Unity

Jesteśmy małym zespołem seniorów i w projekcie Flutter Unity to właśnie jest atut. Ludzie, z którymi rozmawiasz, to ludzie, którzy budują Twoją aplikację. Oto co to znaczy w praktyce, z dowodem przy każdym punkcie.

  • Integrację budują ludzie, którzy napisali wtyczkę. unity_kit jest nasze. Gdy pracujesz z nami, nad Twoją aplikacją siedzą inżynierowie, którzy zbudowali jej most, cykl życia i kolejkę gotowości. Kod możesz przeczytać, zanim cokolwiek podpiszesz.
  • Seniorzy przy każdym projekcie, bez warstw pośredników. Rozmawiasz bezpośrednio z inżynierami, którzy piszą i przeglądają kod, a nie z opiekunem klienta, który przekazuje wiadomości dalej. Gdy aktualizacja Xcode albo Gradle zepsuje build, odpowiedź daje osoba, która ten build zna.
  • Wydane, a nie tylko prototypy. Digitoys przeszło od pierwszego commita w czerwcu 2026 do App Store w lipcu 2026 i jest też w Google Play. Nadal rozwijamy je razem z klientem.
  • Twój zespół Unity albo nasz. W Digitoys sceny tworzy osobny zespół Unity, a my odpowiadamy za aplikację, most i proces eksportu. Możemy też obsadzić stronę Unity.
  • Szybki start i znana cena. Możemy zacząć w około 2 tygodnie, a każdy etap ma stałą cenę ustaloną przed startem prac.

Nowa integracja Unity kosztuje od 28 000 zł netto, a migracja z flutter_unity_widget od 17 500 zł netto, w obu przypadkach za stałą cenę za etap. Etap to określony kawałek pracy z własną ceną, ustaloną przed jego startem, więc koszt każdego kroku znasz z góry. Jak pracujemy, od pierwszej rozmowy do premiery pokazuje etapy krok po kroku. Na stronie Unity w Twojej aplikacji we Flutterze zobaczysz, jak u nas wygląda projekt z Unity, a w cenniku Codigee pełną listę.

Częste pytania

01Czy w 2026 da się osadzić Unity w aplikacji we Flutterze?

Tak. Unity as a Library uruchamia Unity od 2022.3 LTS do Unity 6.3 w aplikacji we Flutterze na Androidzie i iOS, przez wtyczkę taką jak unity_kit albo flutter_embed_unity. Obowiązują limity Unity: jedno Unity naraz w aplikacji, pełny ekran na telefonie i brak ponownego startu po zamknięciu na iOS.

02Czy flutter_unity_widget jest jeszcze bezpieczny?

Wciąż działa w wielu aplikacjach, ale pub.dev oznacza go jako porzucony, a jego ostatnia wersja, 2022.2.1, jest ze stycznia 2024. Nie dostaje poprawek pod Unity 6, nowe wersje Xcode ani zasadę 16 KB w Google Play. Zaplanuj migrację przed najbliższą wymaganą aktualizacją platformy.

03Czy Unity może działać tylko na części ekranu we Flutterze?

Wtyczki potrafią pokazać Unity w widżecie, ale dokumentacja Unity wspiera na Androidzie i iOS tylko renderowanie na pełnym ekranie. Na produkcji trzymamy widok Unity w pełnym rozmiarze pod ekranami Fluttera, przesuwamy go na miejsce i rysujemy interfejs Fluttera na wierzchu.

04Czy Unity mocno powiększa aplikację we Flutterze?

Tak. Środowisko Unity i Twoje sceny powiększają pobieranie. Trzymaj duże zasoby poza buildem i strumieniuj je z CDN ze sprawdzaną pamięcią podręczną, żeby pobieranie ze sklepu zostało małe, a treści mogły się zmieniać bez aktualizacji aplikacji.

05Czy potrzebuję płatnej licencji Unity?

Unity Personal jest darmowe do 200 000 USD przychodu i finansowania. Powyżej tej kwoty Unity Pro kosztuje 2310 USD za stanowisko rocznie (stan na listopad 2026). Runtime Fee odwołano we wrześniu 2024, więc nie ma opłaty za instalację.

06Czy nasz własny zespół Unity może dalej pracować nad scenami?

Tak, to częsty układ. Zespół Unity ma własne repozytorium i eksporty. Oskryptowany proces wprowadza każdy nowy eksport do aplikacji we Flutterze zawsze tak samo. Tak osobny zespół Unity wydaje sceny w Digitoys.

Czy ten artykuł był przydatny?

5,0 / 5 · 3 oceny

Oceń artykuł

Czytaj dalej.

Wszystkie wpisy

Let's make something together.

Bez przekombinowania. Bez straty czasu. Po prostu konkretna robota.

Albo umów rozmowę z Erykiem (otwiera kalendarz rezerwacji)[email protected]
Kim jesteś?
Budżet