Я использую sceneKit в своем проекте и хотел бы добавить красную сферу (в качестве маркера) в том месте, где пользователь нажимает на 3D-модель человеческого тела (см. рисунок ниже). С кодом, который у меня есть в настоящее время, сфера добавляется в правильное положение, однако она добавляется не поверх человеческого тела, а очень близко к камере (значение z отключено). Как можно изменить значение z красной сферы так, чтобы она была добавлена поверх человеческого тела, а не перед камерой? Большое спасибо :)
import UIKit
import QuartzCore
import SceneKit
class GameViewController: UIViewController {
var selectedNode: SCNNode!
var markerSphereNode: SCNNode!
var bodyNode: SCNNode!
@IBOutlet weak var sceneView: SCNView!
override func viewDidLoad() {
super.viewDidLoad()
let scene = SCNScene(named: "art.scnassets/femaleBodySceneKit Scene.scn")
markerSphereNode = scene?.rootNode.childNode(withName: "markerSphere", recursively: true)
bodyNode = scene?.rootNode.childNode(withName: "Body_M_GeoRndr", recursively: true)
sceneView.scene = scene
sceneView.allowsCameraControl = true
_ = sceneView.pointOfView
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
let touch = touches.first!
let touchPoint = touch.location(in: sceneView)
if sceneView.hitTest(touch.location(in: sceneView), options: nil).first != nil {
markerSphereNode.position = sceneView.unprojectPoint(
SCNVector3(x: Float(touchPoint.x),
y: Float(touchPoint.y),
z: 0.56182814))
}
}
}
как появляется красная сфера, когда вы нажимаете на место в теле
на каком расстоянии от тела при повороте камеры (она на заднем плане если присмотреться