Допустим, у меня есть 2 SCNNodes
node1 и node2.
Я хочу, чтобы node1 имел позицию node1.position = SCNVector3(0, 0, 0)
Я хочу, чтобы node2 имел позицию node2.position = SCNVector3(0, 0, 1)
Теперь я хочу, чтобы узел2 вращался вокруг узла1.Поэтому, я пытаюсь сделать, node2.pivot = self.phone.pivot = SCNMatrix4MakeTranslation(0, 0, -1)
.
Это обеспечивает его, где он вращается вокруг узла 1, так что, если я вращаю узел 2 на Pi / 2, то это на вершине узла, то есть, если яповерните node1.rotate(Double.pi/2, 0, 0)
это на самом деле на вершине узла 1.
Как я могу получить его, когда ndoe2 поворачивается вокруг узла 1?
Edit1:
self.container = SCNNode()
self.container.position = SCNVector3(0, 0, 0)
self.node2 = SCNNode(geometry: geom2)
self.node2.position = SCNVector3(0, 0, 1)
self.container.addChildNode(self.node2)
let constraint = SCNLookAtConstraint(target: self.node2)
constraint.isGimbalLockEnabled = false
self.node1 = SCNNode(geometry: geom)
self.node1.position = SCNVector(0, 0, 0)
self.node1.constraints = [constraint]
Узел 1 никогда не перемещается, так как узел 2 никогда не перемещается.Т.е., node2 ВСЕГДА будет в позиции (0, 0, 1)
, поскольку контейнер - это единственное вращающееся устройство.