[英]Make SCNNode move in facing direction after rotation
我对 SceneKit 很陌生,到目前为止只使用过 2D 应用程序。 虽然已经问过这个问题,但我还不够先进,无法理解答案。 我有一个 SCNNode,无论它在应用任何旋转后面向哪里,我都想向前移动。 这是我当前的向前、向右和向左操作的代码:
func moveForward() {
let moveForwardAction = SCNAction.move(by: SCNVector3(x:0, y:0, z:1) , duration: 0.5)
let startForwardAction = SCNAction.repeatForever((SCNAction.sequence([moveForwardAction])))
carNode.runAction(startForwardAction)
}
func moveLeft() {
let turnLeftAction = SCNAction.rotateTo(x: toRadians(angle: 0), y: toRadians(angle: 90), z: 0, duration: 2.0, usesShortestUnitArc: true)
let startLeftAction = SCNAction.repeatForever(SCNAction.sequence([turnLeftAction]))
carNode.runAction(startLeftAction)
}
func moveRight() {
let turnRightAction = SCNAction.rotateBy(x: toRadians(angle: 0), y: toRadians(angle: 90), z: 0, duration: 0.5)
let startRightAction = SCNAction.repeatForever(SCNAction.sequence([turnRightAction]))
carNode.runAction(startRightAction)
}
有没有什么办法可以让我把它简化并告诉我需要输入什么代码才能得到我想要的结果?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.