Flutter 是否在单个应用程序中同时支持 ARCore 和 ARKit 插件?

Does flutter support both ARCore and ARKit plugin in a single app?

我正在尝试跨平台的 Flutter AR 应用程序,是否可以在一个应用程序中同时使用这两个插件。使用单一代码库(ARKit 代码)是否适用于 android 平台,反之亦然,或者我们是否需要为单个平台独立工作?

dependencies:
   arcore_flutter_plugin: ^0.0.2+1
   arkit_plugin: ^0.3.0

是的,我已经设法将两个插件合并到一个 flutter 应用程序中,这样 ARCore 可以在 Android 设备上运行,而 ARKit 可以在 iOS 上运行。

要开始使用,只需按照教程创建一个 arkit 应用程序和一个 arcore 应用程序。然后用这两个插件创建一个新的 flutter 项目。对于第一个版本,我将 arkit_plugin 代码放在 class 中,我调用了 ArCoreState (应用程序的扩展状态)和 arcore_flutter_plugin 代码另一个 class, ArKitState.

main.dart 就是

void main() => runApp(MaterialApp(home: MultiPlatformApp()));

class MultiPlatformApp extends StatefulWidget {
  @override State<StatefulWidget> createState() => 
     Platform.isAndroid ? ArCoreState() : ArKitState();
}

当你拥有那个 运行 时,你就有了一个跨平台的 AR 应用程序,即使它只有一行共享代码!

我知道前段时间有人问过这个问题,但问题仍然没有改变。

致所有因尝试使用 Flutter 开发跨平台 AR 应用而最终来到这里的人:查看此 GitHub Issue Thread

除其他外,我目前正在开发一个 Flutter 插件,它支持具有通用接口的 ARCore 和 ARKit,因此人们可以使用共享代码和功能编写适当的跨平台应用程序。我将在上面链接的 GitHub 讨论中发布更新!

编辑

该插件现在可在以下位置获得:https://pub.dev/packages/ar_flutter_plugin