У меня есть такой код:
@objc func handleTap(_ sender: UITapGestureRecognizer) {
let tapLocation = sender.location(in: arView)
let hitResult0 = scnView?.hitTest(tapLocation)
if let hitResult = arView?.entity(at: tapLocation) {
// ...
}
}
hitResult дает плохую точность. Он возвращает тот же объект (WheelbarrowHandles
), даже если я коснулся другого, меньшего размера. hitResult0 выдает все объекты рядом с местом касания (слишком много).
Загрузка модели:
self.theModel = try! Entity.load(named: "wheelborrow")
self.theModel?.generateCollisionShapes(recursive: true)
Генерируются ли плохие формы столкновения?
Обновлено
Я попробовал сделать следующее вместо генерации:
modelEntity.collision = CollisionComponent(shapes: [ShapeResource.generateConvex(from: modelEntity.model!.mesh)])
и это работает.