添加physicsBody使ar对象消失

东尼王

我正在尝试将简单的3D对象添加到sceneView。向视图中添加对象非常简单,并且很顺利。但是,当我尝试添加主体以进行碰撞时(boxNode.physicsBody = boxBody),该多维数据集完全消失了,我再也找不到该多维数据集了。

我错过了什么?我在下面附上了我的代码。通过项目设置选择“ AR app”来生成项目的其余部分

import UIKit
import SceneKit
import ARKit

class ViewController: UIViewController, ARSCNViewDelegate, ARCoachingOverlayViewDelegate {

    @IBOutlet var sceneView: ARSCNView!
    
    let coachingOverlay = ARCoachingOverlayView()

    override func viewDidLoad() {
        super.viewDidLoad()
        
        // Set the view's delegate
        sceneView.delegate = self
        
        // Show statistics such as fps and timing information
        sceneView.showsStatistics = true
        
        
        let box = SCNBox(width: 0.05, height: 0.05, length: 0.05, chamferRadius: 0)
        let boxNode = SCNNode(geometry: box)
        let boxBody = SCNPhysicsBody(type: .dynamic, shape: nil)

        box.firstMaterial?.diffuse.contents = UIColor.red
        boxNode.position = SCNVector3(0.1,0,0)
//        boxBody.mass = 1
////        boxBody.categoryBitMask = CollisionBitmask.box.rawValue
        boxNode.physicsBody = boxBody
//        boxNode.rotation = SCNVector4Make(1, 1, 1, 1)
//        boxNode.name = "box"
        sceneView.scene.rootNode.addChildNode(boxNode)
        let scene = SCNScene()
        sceneView.scene = scene
    }
    
    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        
        // Create a session configuration
        let configuration = ARWorldTrackingConfiguration()

        // Run the view's session
        sceneView.session.run(configuration)
    }
    
    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)
        
        // Pause the view's session
        sceneView.session.pause()
    }

    // MARK: - ARSCNViewDelegate
    
/*
    // Override to create and configure nodes for anchors added to the view's session.
    func renderer(_ renderer: SCNSceneRenderer, nodeFor anchor: ARAnchor) -> SCNNode? {
        let node = SCNNode()
     
        return node
    }
*/
    
    func session(_ session: ARSession, didFailWithError error: Error) {
        // Present an error message to the user
        
    }
    
    func sessionWasInterrupted(_ session: ARSession) {
        // Inform the user that the session has been interrupted, for example, by presenting an overlay
        
    }
    
    func sessionInterruptionEnded(_ session: ARSession) {
        // Reset tracking and/or remove existing anchors if consistent tracking is required
        
    }
    
}
安迪·费多罗夫(Andy Fedoroff)

使用isAffectedByGravity实例属性来摆脱对象的重力:

var isAffectedByGravity: Bool { get set }

您需要false值(默认值为true):

let sphere = SCNSphere(radius: 1)
let node = SCNNode(geometry: sphere)
let physicsBody = SCNPhysicsBody(type: .dynamic, shape: nil)

node.physicsBody = physicsBody
physicsBody.isAffectedByGravity = false
sceneView.scene.rootNode.addChildNode(node)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

添加PhysicalBody使ar对象消失

来自分类Dev

添加geom_rect时对象消失

来自分类Dev

为什么在添加网格对象后我的某些曲面消失了?

来自分类Dev

添加NSLayoutConstraint使视图消失

来自分类Dev

Javascript:消失的对象属性

来自分类Dev

将中心面板添加到我的内容窗格时,GUI对象消失

来自分类Dev

从值对象访问AR

来自分类Dev

触摸Ar.js中的ar对象

来自分类Dev

添加JScrollPane时JTextArea消失

来自分类Dev

添加约束时,UIScrollView消失

来自分类Dev

为什么zip对象消失了?

来自分类Dev

Collada对象上的阴影消失

来自分类Dev

对象从Java TreeSet中消失

来自分类Dev

游戏对象在 OnDrag 期间消失

来自分类Dev

将“CASE WHEN”添加到 codeigniter CI_DB_mysql_driver 对象的 ar_select 键

来自分类Dev

添加约束后表视图消失

来自分类Dev

添加CSS时,tumblr导航菜单消失

来自分类Dev

添加href时,md-button消失

来自分类Dev

我添加脚本后Div消失了

来自分类Dev

添加CSS时,tumblr导航菜单消失

来自分类Dev

添加页面背景颜色,页眉颜色消失

来自分类Dev

添加滑动刷新刷新后按钮消失了

来自分类Dev

添加LineSpec时Matlab图形消失

来自分类Dev

添加新列表项时按钮消失?

来自分类Dev

添加准备功能后导航栏消失

来自分类Dev

添加 AutoLayout Constraints 时 UITextView 消失

来自分类Dev

重叠的透明对象上的边框正在消失

来自分类Dev

放大OpenGL ES 2.0-对象消失

来自分类Dev

遍历后,Python zip对象“消失”了吗?