Я объясню концепцию здесь, но если вам, возможно, понадобится рассматривать эти вещи как завершенный проект, вы можете обратиться к коду , который я последовал из книги «Разработка приложений с помощью Swift » от Apple Education, 2019, в частности, Руководствуемый проект в конце главы 3А.
Ниже вы можете увидеть пример скриншота. В приложении вы можете добавлять элементы, касаясь пустого места в SceneView или когда ваше касание сталкивается с другим объектом (плоскостью). Кроме того, существует логика c для удаления объекта
Таким образом, в принципе, один из способов удаления узлов из сцены - это отслеживать их в ViewController
с помощью специального массива var placedNodes = [SCNNode]()
. Таким образом, вы можете очистить вид со всех узлов (например, создав действие кнопки «Очистить»)
Еще одно приятное дополнение, которое вы можете получить asp от разработчиков Apple, использует не распознаватель жестов касания, а переопределив touchesBegan / touchesMoved , это может дать вам больше гибкости с точки зрения того, что вы можете делать с помощью сенсорных жестов, в частности, вы можете получить его местоположение в SceneView, вызвав touch.location(in: sceneView)
.
Итак, touchesBegan/touchesMoved
позволяет вам найти места, которые были прослушаны пользователем. Это может быть использовано для добавления / удаления объектов в SceneView
Надеюсь, что это поможет!