У меня проблема с node.physicsBody.velocity
после поворота SCNNode . Когда я изменяю velocity
, он перемещает SCNNode вдоль старых осей. Я перепробовал много способов.
Вот мой код:
let node : SCNNode = SCNNode()
override func viewDidLoad {
super.viewDidLoad()
setNode()
}
override func viewDidAppear() {
rotate(someValue)
//rotation was presented correctly but when I change a velocity it moves to the bad direction.
//is there any way to change position correctly? (velocity moves it relative to the world but I want move object relative to isself)
node.physicsBody?.velocity = SCNVector3(0.1,0,0.1)
}
func setNode() {
node.position = SCNVector3(0,0,0)
sceneView.scene.addChildNode(node)
}
func rotate(_ value: Float) {
node.eulerAngles = SCNVector3(0,value,0)
}
Есть идеи?
ОБНОВЛЕНИЕ: я решил это, добавив node.localTranslate(by: SCNVector3(0.1, 0, 0.1))
вместо использования node.physicsBody.velocity