Перемещение объекта влево и вправо в сеансе ARKit

Как перемещать объект влево и вправо в сцене ARKit без изменения его оси Y, если он находится в воздухе, он не меняет этого и просто перемещается влево и вправо по экрану?


person Developer    schedule 17.08.2017    source источник


Ответы (1)


Это будет очень общий пример, я мог бы уточнить его, если вы конкретизируете свой вопрос или приведете пример того, что вы пытаетесь сделать.

Допустим, вы хотите, чтобы объект просто перемещался по оси x, и у вас был объект типа SCNNode с именем selectedObject, вы могли бы сделать что-то вроде этого

selectedObject.position = SCNVector3Make(value, selectedObject.position.y, selectedObject.position.z)

В этом случае вы можете указать желаемое значение для положения оси x, сохраняя при этом положение объекта по осям y и z.

person Alan    schedule 17.08.2017
comment
Спасибо за ответ, но я знаю, что мы можем перемещать ось в направлении x, y, z, но влево и вправо, я имею в виду, когда мы перетаскиваем палец влево и вправо, он перемещается влево и вправо, поскольку мы видим, что это не всегда вдоль оси x, потому что мы может стоять в любом месте сцены ARkit, а объект находится в любом месте. Вопрос в том, как вычислить, по какой оси между x и z нам нужно переместить, и сколько только нужно переместить влево и вправо, а не в другом направлении. надеюсь, я объясню это правильно - person Developer; 23.08.2017
comment
Вы можете реализовать жест панорамирования и использовать состояние Began, чтобы узнать, удалось ли вам захватить scnNode или выполнив SCNHitResult hitTest. После этого в stateChanged вы, вероятно, сможете выполнить новый ARFeatureHitTest, получить worldTransform результата и затем установить позицию захваченного объекта в позицию результата. - person Alan; 24.08.2017
comment
@ Разработчик, вы нашли какое-нибудь решение? - person Oscar Falmer; 19.10.2017
comment
@ Разработчик, вы нашли какое-нибудь решение? - person omarojo; 04.05.2018