こんにちはEveryDaySoft代表の永田です。
FlutterでUnityの作成モチベーションはゲーム作成、通常アプリでもゲーム体験を実装したいと思っています。
FlutterでUnityのMobile起動のコツを共有します。
必要なツール Xcode、AndroidStudio、Unity Hub
実機のみ動作
https://twitter.com/dbank0208/status/1592455484438892544?s=20&t=RQVRy9bJgHVo1jSYGP_R1A
基本的にはリンク先の解説通り実施するとできるのですが、
少しコツがあります。
https://github.com/juicycleff/flutter-unity-view-widget
ExportするときのUnityプログラムの階層
画像はオリジナルの作成物ですが上記のpackageを使用すると
UnityからFlutter階層にExportできます。UnityLibraryと書かれたものです。

この時に Unityの作成プロジェクト階層が重要になります。
この順序を守ってください。
unity_example/unity/3DUnity_Example<=ここからExportしてます。

自作でUnityを作成する場合はExportさせるUnityのPackage をUnity内にインストールします。
Flutterと書かれている項目はCustomPackageをインストールすると表示されます。
このような名称がありますので、ダウンロードしてください
https://github.com/juicycleff/flutter-unity-view-widget/tree/master/unitypackages
fuw-2022.1.7f1.unitypackage

階層はこのような形にしました。

Unity FrameWorkの導入は

+ボタンで先ほどの画像にあるExportされたUnityLibraryフォルダーを
丸ごと追加してください。
Xcodeで実機で動かす際はDebug excutableのチェックマーク外してください。

UnityからFlutterに受信する場合はUnityとAndroidStudioが必要です。
Flutter側の
onUnityMessageメソッドはサンプルにもあるので割愛します。
Flutterに送信させるにはC#の実装が必要です。
using FlutterUnityIntegration;を実装します。

UnityMessageManager.Instance.SendMessageToFlutter(String型)でFlutter側に送信します。Flutter側のonUnityMessage側が発行します。

https://twitter.com/dbank0208/status/1588980107586437120?s=20&t=RQVRy9bJgHVo1jSYGP_R1A
Flutter側からUnityに送信もできます。
Flutter側のPlayerはC#のクラス SSSSSはメッド名

C#側も実装が必要です。これは僕の考えた受信コードです。
これはUnityがレシーバーで受信してくださいのような内容があったので、ググってC#に習い実装しました。Dictionary型は単にpostJsonMessageの型がそうだったので、適当に合わせました。

SceneMager~~~はC#の画面遷移のコードです。Unityのエディターでも設定が必要ですが、割愛します。
基本的な対応は作者のGithub上であります。
以上、貴重なお時間お読みくださいまして、誠にありがとうございます。
コメントを残す