【发布时间】:2018-06-08 19:44:58
【问题描述】:
我正在尝试在 SceneKit 中创建一个 3D 风筝游戏,并且我不希望我的节点离开屏幕。
我知道如何在 SpriteKit 中创建边框。
如何在 SceneKit 中做同样的事情?
【问题讨论】:
我正在尝试在 SceneKit 中创建一个 3D 风筝游戏,并且我不希望我的节点离开屏幕。
我知道如何在 SpriteKit 中创建边框。
如何在 SceneKit 中做同样的事情?
【问题讨论】:
使用SCNLookAtConstraint。
此约束将节点定向为始终指向指定的其他节点。您可以使用look-at 约束来确保您的相机或灯具始终跟随角色的移动。要将约束附加到 SCNNode 对象,请使用它的约束属性。
这里是sn-p的代码:
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]
【讨论】:
使用 SceneKit 的内置碰撞检测。
特别是,为您的节点提供一个具有适当 categoryBitMask 和 collisionBitMask 的物理体。将您的节点放置在一个可以碰撞的凹球或盒子内。
【讨论】: