ar_flutter_plugin

Flutter AR (协同) 插件 - 支持 iOS 上的 ARKit 和 Android 设备上的 ARCore。

非常感谢 Oleksandr Leuschenko 的 arkit_flutter_plugin 和 Gian Marco Di Francesco 的 arcore_flutter_plugin,它们都为本项目奠定了良好的基础和起点。

入门

安装

通过运行以下命令将 Flutter 包添加到您的项目中

flutter pub add ar_flutter_plugin

或者手动将此添加到您的 pubspec.yaml 文件中(然后运行 flutter pub get

dependencies:
  ar_flutter_plugin: ^0.4.3

导入

将此添加到您的代码中

import 'package:ar_flutter_plugin/ar_flutter_plugin.dart';

示例应用程序

要试用该插件,最好查看 Example 应用中实现的以下示例之一

示例名称 描述 代码链接
调试选项 简单的 AR 场景,带有可视化世界原点、特征点和跟踪平面的切换按钮 调试选项代码
本地和在线对象 AR 场景,带有按钮,可将来自 flutter 资源文件夹的 GLTF 对象或来自互联网的 GLB 对象放置在给定的位置、旋转和比例。附加按钮允许在放置对象后修改相对于世界原点的比例、位置和方向 本地和在线对象代码
平面上的对象和锚点 AR 场景,通过点击平面创建带有附加 3D 模型的锚点 平面上的对象和锚点代码
云锚点 AR 场景,可以在其中放置、上传和下载对象,从而创建可跨多个设备共享的交互式 AR 体验。目前,该示例允许上传最后一个放置的对象及其锚点,并下载 100 米半径内的所有锚点以及所有附加对象(无论对象最初由哪个设备放置)。由于对象共享是通过 Google Cloud Anchor Service 和 Firebase 完成的,因此这需要一些额外的设置,请阅读 云锚点入门 云锚点代码
外部对象管理 与 Cloud Anchors 示例类似,但包含用于在不同模型之间进行选择的 UI。不进行硬编码,而是使用外部数据库(Firestore)来管理可用模型。由于对象共享是通过 Google Cloud Anchor Service 和 Firebase 完成的,因此这需要一些额外的设置,请阅读 云锚点入门。另外请确保在您的 Firestore 数据库中,名为“models”的集合包含一些条目,其中包含“name”、“image”和“uri”字段,“uri”指向 GLB 格式模型文件的原始文件 外部模型管理代码

插件架构

这是插件实现的架构的粗略草图

AR_Plugin_Architecture_highlevel

GitHub

https://github.com/CariusLars/ar_flutter_plugin