Ios 如何使用ARKit在两个ArscnView中显示同一场景?
我的视图控制器有问题。我正在尝试创建一个应用程序,使用ARKit在两个AR场景上显示。我试图使用outlet集合,但出现错误,类型“[ARSCNView]”的值没有成员。我是从斯威夫特开始的,所以我不知道一些事情 这是我的密码:Ios 如何使用ARKit在两个ArscnView中显示同一场景?,ios,swift,scenekit,augmented-reality,arkit,Ios,Swift,Scenekit,Augmented Reality,Arkit,我的视图控制器有问题。我正在尝试创建一个应用程序,使用ARKit在两个AR场景上显示。我试图使用outlet集合,但出现错误,类型“[ARSCNView]”的值没有成员。我是从斯威夫特开始的,所以我不知道一些事情 这是我的密码: import UIKit import SceneKit import ARKit class ViewController: UIViewController { @IBOutlet var bothEyes: [ARSCNView]! overr
import UIKit
import SceneKit
import ARKit
class ViewController: UIViewController {
@IBOutlet var bothEyes: [ARSCNView]!
override func viewDidLoad() {
super.viewDidLoad()
let configuration = ARWorldTrackingConfiguration()
configuration.planeDetection = .horizontal
let cubeNode = SCNNode(geometry: SCNBox(width: 0.2, height: 0.2, length: 0.2, chamferRadius: 0.0))
cubeNode.position = SCNVector3(0, 0, -0.2)// in meters
bothEyes.session.run(configuration)
bothEyes.scene.rootNode.addChildNode(cubeNode)
}
}
您只需在两个
ARSCNViews
之间共享一个ARSession
(正如我前面所说,您需要一个代表):
但是记住!帧速率60 fps
现在在两个arscnview
之间共享(30 fps+30 fps)
我使用水平堆栈视图
线性排列arscnview
很抱歉,您能进一步澄清吗?我不太理解委托实例部分。我还试图让视图控制器从ARSCNViewDelegate继承,但现在文件中的所有方法都显示错误,如“方法不重写其超类中的任何方法”和“类型为'NSObject'的值没有成员”,我希望以虚拟现实设备的方式观察它。两个屏幕,相同的视图(目前)。我想看看我是否能用ARKit做到这一点。很抱歉,我没有解释我想用它做什么两个ARViews,很抱歉Hello@ARGeo,我有一个问题需要帮助。我得到一个屏幕更新,但另一个不更新。(两个摄像头都可以工作)。你能帮忙吗?我在用iphone7
import UIKit
import SceneKit
import ARKit
class ViewController: UIViewController, ARSCNViewDelegate {
@IBOutlet weak var sceneView: ARSCNView!
@IBOutlet weak var sceneView2: ARSCNView!
override func viewDidLoad() {
super.viewDidLoad()
sceneView.delegate = self
sceneView.showsStatistics = true
let scene = SCNScene(named: "art.scnassets/ship.scn")!
sceneView.scene = scene
sceneView.isPlaying = true
// SceneView2 Setup
sceneView2.scene = scene
sceneView2.showsStatistics = sceneView.showsStatistics
// Now sceneView2 starts receiving updates
sceneView2.isPlaying = true
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
let configuration = ARWorldTrackingConfiguration()
sceneView.session.run(configuration)
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
sceneView.session.pause()
}
}