2015-04-02 3 views
3

У меня есть сцена с несколькими узлами. Я хочу выбрать узел, нажав на него (если я ничего не нажимаю, я ничего не хочу) и заставить его следовать за моим пальцем только по оси XY (я знаю положение по оси Z). Есть ли какой-либо метод, который преобразует местоположение с учетом скинов SceneKit?Перемещение определенного узла в SceneKit с помощью нажатия

После нескольких исследований я нашел это, и это именно то, что я хочу, но я не получаю код. Может кто-нибудь объяснить мне или помочь мне понять, как я могу решить свою проблему? https://www.youtube.com/watch?v=xn9Bt2PFp0g

+0

см. Http://stackoverflow.com/a/22944797/2997825 – mnuages

+0

Уже видно. Это не помогает мне –

ответ

2
func CGPointToSCNVector3(view: SCNView, depth: Float, point: CGPoint) -> SCNVector3 { 
    let projectedOrigin = view.projectPoint(SCNVector3Make(0, 0, depth)) 
    let locationWithz = SCNVector3Make(Float(point.x), Float(point.y), projectedOrigin.z) 
    return view.unprojectPoint(locationWithz) 
} 

Похоже было довольно просто, я сделал функцию, которая получает 3 параметра. View - это SCNView, в котором привязан сцена, глубина - это значение z для узла, а точка - CGPoint, представляющая собой проекцию 3D-сцены на экране.

+1

вы могли бы поделиться кодом. Я работаю над объективом c, и у меня есть результат hitTest узла, который я хочу переместить. Как действовать дальше? – madLokesh

Смежные вопросы