Reputation: 435
I am creating an app that will require small mini-games as a menu option, and I have created these games in Unity. Ideally, I would like to embed these games into a Flutter project. I have seen tutorials on doing this with Java and Android Studio, and I need to make a decision on which platform I will be using for my internship project. I have several questions about the SDK, but I have posted them separately to keep the answers distinct (and help filter out the noise for anyone searching for these specific answers), and this is one of my main questions.
Specifically, I am following this guide: https://medium.com/@davidbeloosesky/embedded-unity-within-android-app-7061f4f473a for Android Studio, and was wondering if something similar was possible with Flutter. I am also using Android Studio as my IDE for Flutter, but need to decide if I should stick with Java, or switch to Dart and Flutter (which actually works much better for specific UI elements I need).
If not, is there another way to package a Unity project and a Flutter application together?
Upvotes: 17
Views: 22455
Reputation: 643
As of May 2022, I would like to share an updated information for mobile app developers who are researching this interesting issue. The reason I'm writing this answer is because there was so many development tasks that need to be done before I get the right answer to the above question. A developer researching this subject should work in both Unity, Android Studio and Xcode in order to find a definitive answer to his/her question, and should also know how to develop mobile apps with Flutter. Honestly, if everything had not gone well, my long time development works might have been wasted. In addition to my answer, I would like to give also positive news on the side of Augmented Reality developers who are using Vuforia and investigating the same issue.
Using the magnificent https://github.com/juicycleff/flutter-unity-view-widget repo; in your mobile app developed with Flutter, you can run the game you developed with Unity or the AR app you developed with Unity + Vuforia. You can use the app you developed with Unity, in the Flutter App you developed. They can also communicate each other in the Flutter App. You can pass parameters from your Flutter App to your Unity application in the Flutter App, and you can also pass parameters from your Unity application to the Flutter App. This means, you can pass parameters from your Flutter App's Dart code to the C# code of your Unity work and vice versa. For those who develop AR Apps with Vuforia, I would like to point out that for the scenario I am working on, I use Image Targets. I have same experience on the phone, with the Unity APK and Android Studio APK, they are in the same stability. Of course APK sizes are different, Flutter App APK size is of course bigger than Unity APK, but in my case this is absolutely ok.
As of May 2022, the answer to the above question is: Yes, you can. Moreover, for those who develop AR Apps in Unity using Vuforia, the answer is also: Yes, you can. I wish success to everyone who will start working in this scenario. Since it is a detailed subject, some difficulties are waiting for you on the way, but if you can see that the product you dream to achieve will be a stable Flutter App, with all the nice features, I am sure that you will find the enough motivation to bring all of them together. Good luck.
Upvotes: 6
Reputation: 4544
You can imagine the whole Flutter app to be rendered on one view of the final native application. It can coexist with native views. So it should definitely be possible to display a native Android/iOS view with Unity content and trigger that from Flutter.
https://flutter.io/platform-channels/
Upvotes: 10