我尝试在SceneKit中创建一个3D Kite游戏,我不希望节点离开屏幕。我知道如何在SpriteKit中创建边框体。如何在SceneKit中执行相同操作?
hjqgdpho1#
使用SceneKit的内置碰撞检测。特别是,给你的节点一个物理实体,它有一个合适的categoryBitMask和collisionBitMask,把你的节点放在一个凹球或凹框里,它们可以与之碰撞。参见this tutorial
gblwokeq2#
此约束将节点定向为始终指向指定的其他节点。可以使用look-at约束来确保摄影机或照明设备始终跟随角色的移动。要将约束附加到SCNNode对象,请使用其constraints属性。下面是代码片段:
look-at
cameraNode = SCNNode() cameraNode.camera = camera cameraNode.position = SCNVector3Make(0, 5, 0) cubeScene.rootNode.addChildNode(cameraNode) let box = SCNBox(width: 5, height: 5, length: 5, chamferRadius: 0) let boxNode = SCNNode(geometry: box) cubeScene.rootNode.addChildNode(boxNode) // constraint for camera let target = SCNLookAtConstraint(target: boxNode) target.gimbalLockEnabled = YES cameraNode.constraints = [target]
2条答案
按热度按时间hjqgdpho1#
使用SceneKit的内置碰撞检测。
特别是,给你的节点一个物理实体,它有一个合适的categoryBitMask和collisionBitMask,把你的节点放在一个凹球或凹框里,它们可以与之碰撞。
参见this tutorial
gblwokeq2#
使用SCNLookAt约束
此约束将节点定向为始终指向指定的其他节点。可以使用
look-at
约束来确保摄影机或照明设备始终跟随角色的移动。要将约束附加到SCNNode对象,请使用其constraints属性。下面是代码片段: