TGViewer
Flutter & Dart | Мобильный трудоголик Flutter & Dart | Мобильный трудоголик @hardworkerflutter · 405 subscribers
Post #93 224
👣 Как встроить Unity игру во Flutter приложение

Flutter отлично справляется с интерфейсом, навигацией и логикой приложения. Но он не умеет в 3D, физику, AR и рендеринг в реальном времени. Зато это умеет Unity. Многие команды хотят иметь оба инструмента в одном приложении: Flutter-оболочку и Unity-сцену внутри нее.

Автор статьи делится современным способом такой интеграции. Раньше это требовало ручного экспорта Unity-библиотеки, правки settings.gradle, написания method channels, отдельной UnityPlayerActivity и повторения всего этого для iOS. Работало, но было хрупко и переделывалось при каждом изменении Unity-проекта.


Что предлагается:

Автор предложил Game Framework - преемник flutter_unity_widget от той же команды. Это CLI и SDK, которые автоматизируют экспорт и синхронизацию Unity-билда под обе платформы. Unity-сцена превращается в обычный Flutter-виджет с типобезопасным обменом сообщениями в обе стороны.


Как это работает:

Процесс состоит из нескольких шагов:

Установка CLI через Homebrew:


brew tap xraph/tap
brew install game-cli


Добавление пакетов в pubspec.yaml:


gameframework: ^0.0.3
gameframework_unity: ^0.0.4


Инициализация в main():


UnityEnginePlugin.initialize();


Экспорт Unity-проекта одной командой:

game export unity --platform android,ios


Синхронизация с Flutter-проектом:

game sync unity --platform android,ios


Эта команда сама подключает Gradle-модуль для Android и iOS-framework, без ручного редактирования settings.gradle и шаблонного кода method channels.


Unity как виджет:

После синхронизации Unity-сцена становится обычным виджетом:


GameWidget(
engineType: GameEngineType.unity,
onEngineCreated: (controller) => _controller = controller,
onMessage: _onMessage,
config: const GameEngineConfig(
fullscreen: false,
runImmediately: true,
unloadOnDispose: true,
),
)



Обмен сообщениями:

Flutter может отправлять команды в Unity:


await _controller?.sendMessage('GameManager', 'SetSpeed', '2.5');
await _controller?.sendJsonMessage('GameManager', 'UpdateScore', {
'score': 100,
'stars': 3,
});


Unity может отправлять данные обратно через небольшой мост на C#. В Flutter эти сообщения приходят в обработчик onMessage.


🔗 Читать подробнее


💡 Вывод:

Интеграция Unity и Flutter перестала быть рутинной работой с Gradle и method channels. Game Framework автоматизирует экспорт, синхронизацию и обмен сообщениями. Unity-сцена становится обычным виджетом, который можно встроить в любое Flutter-приложение.

Проект бесплатный и с открытым исходным кодом. Если вы хотите добавить 3D, физику или AR в свое Flutter-приложение, стоит посмотреть на этот инструмент.


Подписаться на канал:
➡️ Flutter & Dart | Мобильный трудоголик
  • 👍 3
  • 🔥 2
  • ❤ 1
More from @hardworkerflutter
  1. Sep 25, 2026👨‍💻 Гонка за самую мощную ИИ-модель подходит к концу? Последние несколько лет за развити…
  2. Sep 22, 2026👣 Как async* упрощает работу с потоками в Dart В Dart есть инструмент, который многие нед…
  3. Sep 15, 2026👣 Влияет ли выбор state management на производительность Flutter? Можно ли ускорить Flutt…
  4. Sep 11, 2026👣 Плагин Flutter для VS Code обновился до версии 3.142.0 Вышло обновление плагина Flutter…
  5. Sep 8, 2026👣 Архитекторы, тестировщики и кодеры. Создаем мультиагентную команду Разработка с ИИ-аген…
  6. Sep 1, 2026👣 Почему primary constructors в Dart сложнее, чем кажется В Dart 3.13 появилась фича, кот…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →