Я пытаюсь наложить обнаруженную плоскость на некоторые изображения
, поэтому я пытаюсь использовать renderer(_:nodeFor:)
Внутри этого метода некоторые блоггеры написали код, подобный этому
guard let anchor = anchor as? ARPlaneAnchor else { return nil }
let anchorNode = SCNNode()
let planeNode = SCNNode()
let material = SCNMaterial()
material.diffuse.contents = UIColor.gray.withAlphaComponent(0.6)
let plane = SCNPlane(width: CGFloat(anchor.extent.x), height: CGFloat(anchor.extent.z))
plane.materials = [material]
planeNode.geometry = plane
planeNode.position = SCNVector3(anchor.center.x, 0, anchor.center.z)
planeNode.eulerAngles = SCNVector3(-Float.pi / 2, 0, 0)
anchorNode.addChildNode(planeNode)
return anchorNode
почему они добавляют дочерний узел в пустой узел?
почему просто не вращается сам
Конечно, я читал документацию об этом
они сказали:
Вы можете реализовать этот метод дляпредоставить новый объект SCNNode (или экземпляр подкласса SCNNode), содержащий любые вложения, которые вы планируете использовать в качестве визуального представления привязки.Обратите внимание, что ARKit контролирует видимость узла и его свойство transform, поэтому может оказаться полезным добавить дочерние узлы или отрегулировать свойство pivot узла, чтобы сохранить любые сделанные вами изменения положения или ориентации.
чтологика за сценой?
тогда как вращать сам узел с помощью pivot?