我在SCNode命中检测方面遇到了一些麻烦.我需要检测哪个对象是在具有SCNNode的情景感动了,我已经实现了这一段代码,但它似乎当我接触的对象,但做工不错,当我接触sceneView其余崩溃.
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        let touch = touches.first as! UITouch
        if(touch.view == self.sceneView){
            print("touch working")
            let viewTouchLocation:CGPoint = touch.location(in: sceneView)
            guard let result = sceneView.hitTest(viewTouchLocation, options: nil).first else {
                return
            }
            if (bottleNode?.contains(result.node))! { //bottleNode is declared as  SCNNode? and it's crashing here
                print("match")
            }
        }
    }
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种每秒或每 2 秒更新实时活动的方法,而不使用推送通知,同时将应用程序保持在后台。
你有什么建议吗?我尝试过类似的操作,但几秒钟后它就停止工作了:
       var bgTask = UIBackgroundTaskIdentifier(rawValue: 1324)
        bgTask = UIApplication.shared.beginBackgroundTask(expirationHandler: {
            UIApplication.shared.endBackgroundTask(bgTask)
        })
        let timer = Timer.scheduledTimer(timeInterval: 3, target: self, selector: #selector(updateInfo), userInfo: nil, repeats: true)
        RunLoop.current.add(timer, forMode: .default)
Run Code Online (Sandbox Code Playgroud) 一如既往,我需要您的帮助。我需要从起始值(称为SCNVector3)绘制一条直线,并将其连接到现实世界中的位置,直到终点。
有人可以用几行代码向我解释我该怎么做?谢谢!
我想对我现有的 AR 应用程序做一些修改,我想拆分视图并添加到 2ARSCNView中,这样用户就可以使用 VR Card Box 并获得不同的体验,但 Xcode 总是返回给我:
Session (0x102617d10): did fail with error: Error Domain=com.apple.arkit.error Code=102 "Required sensor failed."
Run Code Online (Sandbox Code Playgroud)
所以,我假设我不能同时运行 2 个ARSCNView会话,还是我错了?