能否将Unity游戏嵌入到Flutter应用程序中?

17
我正在创建一个应用程序,需要将小型迷你游戏作为菜单选项,我已经在Unity中创建了这些游戏。理想情况下,我希望将这些游戏嵌入到Flutter项目中。我已经看到了使用Java和Android Studio进行此操作的教程,我需要决定我将在实习项目中使用哪个平台。我有几个关于SDK的问题,但我已经单独发布了它们以保持答案的独特性(并帮助过滤掉任何寻找这些具体答案的人的噪音),这是我的主要问题之一。
具体而言,我正在遵循这个指南:https://medium.com/@davidbeloosesky/embedded-unity-within-android-app-7061f4f473a 这是针对Android Studio的,我想知道是否有类似的方法可以在Flutter中实现。我也在使用Android Studio作为Flutter的IDE,但需要决定是坚持使用Java还是切换到Dart和Flutter(实际上更适合我所需的特定UI元素)。
如果不行,有没有其他方法将Unity项目和Flutter应用程序打包在一起?

另外,我以前没有做过这样的事情,我的应用程序将包含许多迷你游戏。把所有的迷你游戏放到一个Unity项目中并导出它会更好,还是应该将它们作为单独的Unity项目创建,分别导出并单独放置到Flutter项目中?我可以想象,如果导入许多打包的Unity项目而不是一个较大的项目,可能会有显着的性能损失。 - A.Crane
1
你可能正在寻找类似于https://github.com/snowballdigital/flutter-unity-view-widget的东西,通过它,你可以将Unity View嵌入到Flutter应用程序中。即使它只支持Android,根据该库的当前实现,支持iOS和PC也不是很困难。 - Lin GUO
2个回答

10

你可以想象整个Flutter应用程序在最终原生应用程序的一个视图上呈现。它可以与本地视图共存。因此,肯定有可能使用平台通道显示带有Unity内容的本机Android/iOS视图,并从Flutter触发它。

  1. 创建一个Flutter项目并打开其中的Android本机部分(在Android Studio中右键单击android文件夹,选择Flutter->打开Android模块)。
  2. 在那里创建一个本机Android视图,并使用平台通道来显示它。
  3. 将Unity内容添加到本机视图中。

https://flutter.io/platform-channels/


谢谢!我距离测试还有很多步骤(只需要决定使用平台),但是当我测试时,我会回来的。我有一个后续问题。我以前没有做过这样的事情,我的应用程序将包含许多小游戏。将所有小游戏放入一个Unity项目并导出它是否更好,还是应该将它们作为单独的Unity项目创建,分别导出并单独放置到Flutter项目中?我可以想象,如果您导入许多打包的Unity项目而不是一个较大的项目,则可能会有显着的性能损失。 - A.Crane
抱歉,我没有使用Unity的经验... :/ - RobDil
1
你能否将一个Unity体验简单地嵌入Flutter中,而不是分别为Android和iOS拥有两个本地的Unity代码部分? - AdamHurwitz
1
同意 @AdamHurwitz - metamonkey
嗨Toni,你成功做到了吗?使用Flutter? - Hadi

7
截至2022年5月,我想向正在研究这个有趣问题的移动应用程序开发人员分享更新的信息。我写这篇答案的原因是因为在得到以上问题的正确答案之前需要完成许多开发任务。一位研究此主题的开发人员应该同时使用Unity,Android Studio和Xcode,以找到对他/她的问题的明确答案,并且还应该知道如何使用Flutter开发移动应用程序。老实说,如果一切都不顺利,我的长期开发工作可能会被浪费。除了我的回答,我还想在使用Vuforia并研究同一问题的增强现实开发人员方面提供积极的消息。
使用神奇的https://github.com/juicycleff/flutter-unity-view-widget库,您可以在使用Flutter开发的移动应用中运行使用Unity开发的游戏或使用Unity + Vuforia开发的AR应用程序。您可以在使用Flutter开发的应用程序中使用Unity开发的应用程序。它们还可以在Flutter应用程序中相互通信。您可以从Flutter应用程序向您的Unity应用程序传递参数,并且您也可以从您的Unity应用程序向Flutter应用程序传递参数。这意味着,您可以将参数从Flutter应用程序的Dart代码传递到Unity工作的C#代码,反之亦然。对于使用Vuforia开发AR应用程序的人,我想指出,对于我正在处理的情况,我使用图像目标。我在手机上具有相同的体验,使用Unity APK和Android Studio APK,它们的稳定性相同。当然,APK大小不同,Flutter应用程序APK大小当然比Unity APK大,但在我的情况下,这绝对没问题。
截至2022年5月,对于上述问题的答案是:是的,你可以。此外,对于使用Vuforia在Unity中开发AR应用程序的人来说,答案也是:是的,你可以。我祝愿每个开始在这种情况下工作的人成功。由于这是一个详细的主题,你在路上会遇到一些困难,但如果你能看到你梦想中要实现的产品将成为一个稳定的Flutter App,并具备所有美好的功能,我相信你会找到足够的动力将它们全部结合起来。祝你好运。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接