unity使用苹果ARKit-01:Unity-ARKit-Plugin unity使用苹果ARKit

unity使用苹果ARKit-01:Unity-ARKit-Plugin  unity使用苹果ARKit


Unity-ARKit-Plugin


这是一个原生插件,可以在IOS平在下为你的项目使用所有的 ARKit SDK功能。这个插件展示了 ARKit SDK的世界追踪性能,将相机视频输入,平面检测和更新,点云提取,光预估算和测试中的API呈现给Unity开发人员的AR项目中。这个插件是一个预览的质量构建的版本,应该有助于您使用这项技术并快速启动运行,但具体实施和API可能会改变来适应底层技术。


该插件是开源的,并根据MIT许可证发布(请参阅此文件夹中的LICENSE文件)



要求:.

  • Unity v5.6.1p1+
  • iOS 11+
  • Xcode beta 9 with latest iOS SDK that contains ARKit Framework
  • iOS device that supports ARKit (iPhone 6S or later, iPad (2017) or later)

如何使用此代码:

所示代码是一个Unity工程,可以在高于v5.6.1p1的版本中打开载入, Untiy工程包含了插件资源,一些演示场景,以及一些可以用在你自己工程上的组件。


这是产检中一些重要文件的摘要:

"/Assets/Plugins/iOS/UnityARKit/NativeInterface/ARSessionNative.mm" - 这是与ARKit SDK实际接口的Objective-C代码。


"/Assets/Plugins/iOS/UnityARKit/NativeInterface/UnityARSessionNativeInterface.cs" - 这个脚本API到ARKit,并提供了本地代码的粘贴。


这些内容包含了一下API:

        public void RunWithConfigAndOptions(ARKitWorldTackingSessionConfiguration config, UnityARSessionRunOption runOptions)

        public void RunWithConfig(ARKitWorldTackingSessionConfiguration config)

        public void Pause()

        public List<ARHitTestResult> HitTest(ARPoint point, ARHitTestResultType types)

        public ARTextureHandles GetARVideoTextureHandles()

        public float GetARAmbientIntensity()

        public int GetARTrackingQuality()  

它还包含了可以提供给这些委托的事件:

        public delegate void ARFrameUpdate(UnityARCamera camera)

        public delegate void ARAnchorAdded(ARPlaneAnchor anchorData)

        public delegate void ARAnchorUpdated(ARPlaneAnchor anchorData)

        public delegate void ARAnchorRemoved(ARPlaneAnchor anchorData)

        public delegate void ARSessionFailed(string error)

"/Assets/Plugins/iOS/UnityARKit/NativeInterface/AR*.cs" - 这些是暴露给ARKit相同的数据结构脚本。


"/Assets/Plugins/iOS/UnityARKit/Utility/UnityARAnchorManager.cs" -这是一个实用工具,可以跟踪ARKit的锚更新,并可以为其创建相应的Unity游戏对象(有关如何使用参看GeneratePlanes.cs组件)。


"/Assets/Plugins/iOS/UnityARKit/Editor/UnityARBuildPostprocessor.cs" - 这是一个在iOS上构建时运行的编辑脚本。


ARKit 有用的组件:


"/Assets/Plugins/iOS/UnityARKit/UnityARCameraManager.cs" -该组件应放置在通过ARKit引用要控制的摄像机的场景中的一个游戏对象,它将定位和旋转相机,并根据ARKit的更新提供正确的投影矩阵。该组件还具有初始化ARKit的代码

"/Assets/Plugins/iOS/UnityARKit/UnityARVideo.cs" - 该组件应放置在相机上,并抓取渲染视频所需的纹理,并将其设置为对后挡板进行拼接所需的材质,并设置命令缓冲区以进行实际的发送。


您应该能够将UnityARKitScene.unity构建到iOS中,以了解ARKit的功能。它演示了这个场景中ARKit的所有基本功能。

请参阅本项目中的TUTORIAL.txt,了解有关逐步设置项目的更详细步骤。

请随意扩展插件并发送请求。您还可以提供反馈意见,如果您希望改进或者想要建议更改。快乐的编码,玩得开心!



ARKit for Unity 文件:  点击下载



你可能感兴趣的:(ARKit,unity,ARKit,AR)