Как добавить кнопку и метку на сцену - PullRequest
1 голос
/ 22 мая 2019

Я новичок в Scenekit и ARKit, я хотел добавить кнопку и метку внутри UIView к сцене scenekit. Я получаю координаты мира с помощью теста попадания для размещения вида, но у SCNNode нет addSubView метода для добавления вида.

Я хочу добиться следующего результата:

enter image description here

Мои попытки достичь этого:

func addHotspot(result : SCNHitTestResult, parentNode : SCNNode? = nil) {
    let view = UIView()
    view.backgroundColor = .red

    let material = SCNMaterial()
    material.diffuse.contents = view

    let plane = SCNPlane(width: 100, height: 100)
    plane.materials = [material]

    let node = SCNNode()
    node.geometry = plane

    node.position = result.worldCoordinates
    parentNode?.addChildNode(node)
}

ошибка:

enter image description here

Пожалуйста, предложите, как я могу это сделать.

1 Ответ

0 голосов
/ 22 мая 2019

Чтобы добавить объект UIView к узлу сцены, вы можете назначить его для материала геометрии узла diffuse content.Он будет добавлен к узлу и будет сохранять свое положение при перемещении устройства:

DispatchQueue.main.async {
  let view: UIView = getView() // this is your UIView instance that you want to add to the node

  let material = SCNMaterial()
  material.diffuse.contents = view

  node.geometry.materials = [material]
}
...