Анимация SceneKit SCNNode не работает - PullRequest
0 голосов
/ 01 марта 2020

Я точно следовал этому: https://developer.apple.com/documentation/scenekit/animation/animating_scenekit_content

У меня есть SCNNode на другом SCNNode с геометрией лица пользователя.

SCNNode, который включен лицо SCNNode, я бы хотел, чтобы движение было анимированным. Я вызываю эту функцию, которая находится в подклассе SCNNode, который я хочу анимировать. Свойство, которое он принимает, - это местоположение на лице. Эта функция вообще не работает:

 func move(to vertex: SCNVector3) {
  let animation = CABasicAnimation(keyPath: "move")
  animation.fromValue = SCNVector3(self.position.x, self.position.y, self.position.z)
  animation.toValue = vertex
  animation.duration = 3.0
  self.addAnimation(animation, forKey: "move")
 }

Эта функция прекрасно работает:

 func move(to vertex: SCNVector3) {
  self.position.x = vertex.x
  self.position.y = vertex.y
  self.position.z = vertex.z
 }

Вызов функции для обеих функций:

move(to: SCNVector3(anchor.geometry.vertices[Node.oldVertexPos].x, anchor.geometry.vertices[Node.oldVertexPos].y, anchor.geometry.vertices[Node.oldVertexPos].z))

1 Ответ

1 голос
/ 02 марта 2020

KeyPath "move" не существует в SCNNode, вы должны анимировать позицию.

let animation = CABasicAnimation(keyPath: "position")

...