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 格式模型文件的原始文件 | 外部模型管理代码 |
插件架构
这是插件实现的架构的粗略草图