测试已验证 | ✗ |
Lang语言 | SwiftSwift |
许可证 | MIT |
发布上次发布 | 2017 年 9 月 |
SwiftSwift 版本 | "4.0" |
SPM支持 SPM | ✗ |
由 Scott Finkelstein 维护。
将立体 ARKit SceneView 简单添加到您的项目的常用方法。
MixedRealityKit 类扩展了 ARSCNView,并将相机分割成两个立体 SceneView。适用于 Google Cardboard 或支持非桶形畸变 VR 的任何 VR 观看器。
pod 'MixedRealityKit'
pod update
pod install
将您的 ViewController 类修改为以下样式
import UIKit
import SceneKit
import ARKit
import MixedRealityKit
class ViewController: UIViewController, MixedRealityDelegate {
var sceneView:MixedRealityKit?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
sceneView=MixedRealityKit(frame: view.frame)
sceneView?.mixedRealityDelegate = self
let scene=SCNScene()
sceneView?.scene=scene
view.addSubview(sceneView!)
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
sceneView?.runSession()
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
sceneView?.pauseSession()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// MixedRealityKitDelegate Methods
func renderer(_ renderer: SCNSceneRenderer, updateAtTime time: TimeInterval) {
}
func renderer(_ renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor: ARAnchor) {
}
func renderer(_ renderer: SCNSceneRenderer, willUpdate node: SCNNode, for anchor: ARAnchor) {
}
func renderer(_ renderer: SCNSceneRenderer, didRemove node: SCNNode, for anchor: ARAnchor) {
}
}
您可以使用这个仓库中提供的 Room.scn 文件,或者创建一个空的 SCNScene(),并将您自己的节点添加到其中。如果您要向场景中添加地面,您需要调整 y 轴位置,使其与相对眼睛水平相匹配。我发现 -1.7 工作得很好。
我向 MixedRealityKit 类中添加了一个新代理,名为 mixedRealityDelegate,这允许您选择性地覆盖 ViewController 中的 ARSCNViewDelegate 方法,就像您通常所做的那样,将它们传递给 MixedRealityKit 类。虽然您无需覆盖这些代理,但您需要在 ViewController 中实现它们。错误消息中的“修复”按钮会为您做这件事,如果您偷懒的话 :) 我希望在未来版本中修复这个要求。
disableSleepMode - (默认: 是): 当设置为 是时,您的设备在空闲时不会关闭。这可以被覆盖,但由于您的设备可能在Google Cardboard中,您可能不想让它进入睡眠状态。
runSession() 方法接受一个可选参数 detectPlanes(默认: 否)。到目前为止,仅提供默认的横向平面检测。
Scott Finkelstein Twitter
在MIT 许可证的条款下作为开源软件提供。