ARCampaign IOS SDK
ARCampaign 是一个应用开发平台,提供了帮助您将增强现实活动构建到应用中的工具。有关 ARCampaign 的更多信息,请访问 https://ar.purpl.dev
安装 SDK
访问 ARCampaign 控制台并创建一个项目。
先决条件
在开始之前,您需要在您的环境中设置一些东西
- Xcode 10.1 或更高版本
- 目标 iOS 12 或更高版本的 Xcode 项目
- Swift 项目必须使用 Swift 4.0 或更高版本
- 您的应用程序的 bundle 标识符
- CocoaPods 1.4.0 或更高版本
添加 SDK
访问 ARCampaign 控制台创建项目,输入“项目名称”。输入您的 XCode 项目的 bundle 标识符并上传图片和模型。下载 plist 文件并将其拖入您的 XCode 项目
将 ARCampaign 添加到您的项目中
ARCampaign 通过 CocoaPods 提供。要安装它,只需将以下行添加到 Podfile 中
pod 'ARCampaign'
在您的应用程序中初始化 ARCampaign
在您的 UIApplicationDelegate 中导入 ARCampaign 模块
import ARCampaign
通常在您应用程序的 application:didFinishLaunchingWithOptions: 方法中配置 ARCampaignApp 共享实例
ARCampaignApp.configure()
如果您尚未添加,请记住将 NSCameraUsageDescription 添加到您的项目中。将以下代码添加到 info.plist 文件中
<key>NSCameraUsageDescription</key>
<string>ARCampaign-Example requires access to your phone’s camera.</string>
用法
在您的项目中添加了 ARCampaign SDK 之后,您可以轻松地创建 SimpleARCampaignViewController 或使用完全可定制的 UIViewController。
快速简便的实现
初始化 SimpleARCampaignViewController 的实例并将其呈现在视图控制器中。就是这样!
let simpleVC = SimpleARCampaignViewController()
present(simpleVC, animated: true, completion: nil)
您还可以用您自己的 UIView 替换默认教程视图。只需在您呈现视图控制器之前在 SimpleARViewController 上替换 tutorialView 即可。
// create an instance of your own subclass of UIView
let customTutorialView = CustomTutorialView()
// create an instance of the SimpleViewController
let simpleVC = SimpleARCampaignViewController()
// replace the tutorialView
simpleVC.tutorialView = customTutorialView
// present
present(simpleVC, animated: true, completion: nil)
高级实现
在您自己的 ViewController 中创建 CampaignManager 实例,并获取模型、跟踪图像和图像宽度。
let manager = CampaignManager()
manager.fetchCampaign { (campaignInfo, imageData, modelURL, error) in
if error != nil {
// Handle error
} else {
// get the tracking image width
guard let width = campaignInfo?.trackingImageInfo.width else { return }
// get tracking image
guard let imageData = imageData else { return }
guard let image = UIImage(data: imageData) else { return }
// create a ARReferenceImage
let arImage = ARReferenceImage(image.cgImage!, orientation: CGImagePropertyOrientation.up, physicalWidth: CGFloat(width))
// get the 3D model
guard let url = modelURL else { return }
guard let scene = try? SCNScene.init(url: url, options: nil) else { return }
let modelNode = scene.rootNode
}
}
CampaignManager 类还具有获取模型和跟踪图像信息的独立方法。
技术支持
- Zip - 用于解压以.zip文件格式收到的模型
版本控制
有关可用的版本,请参阅此存储库的标签。
作者
Purpl, [email protected]
许可
ARCampaign可在MIT许可下使用。有关更多信息,请参阅LICENSE文件。