TGStat
TGStat
Type to search
Advanced channel search
  • flag English
    Site language
    flag Russian flag English flag Uzbek
  • Sign In
  • Catalog
    Channels and groups catalog Regional compilations Thematic compilations Платные каналы Search for channels
    Add a channel/group
  • Ratings
    Rating of channels Rating of groups Posts rating
    Ratings of brands and people
  • Analytics
  • Search by posts
  • Telegram monitoring
  • Promotion
    Advertising through Yandex Business Advertising in channels through TGStat Agency Advertising on TGStat.ru website
Flutter & Dart | Мобильный трудоголик

29 Sep, 09:04

Open in Telegram Share Report

👣 Как встроить 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 | Мобильный трудоголик

313 1 12 6
Catalog
Channels and groups catalog Channels compilations Search for channels Add a channel/group
Ratings
Rating of Telegram channels Rating of Telegram groups Posts rating Ratings of brands and people
API
API statistics Search API of posts API Callback
Our channels
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Read
Академия TGStat Telegram Research 2019 Telegram Research 2021 Telegram Research 2023
Contacts
Справочный центр Support Email Jobs
Miscellaneous
Terms and conditions Privacy policy Public offer
Our bots
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot