【发布时间】:2017-11-03 14:39:08
【问题描述】:
我正在使用 ARKit 创建一个简单的应用程序,在其中我将一些文本添加到场景中的点击位置:
@objc func tapped(sender: UITapGestureRecognizer){
let sceneView = sender.view as! ARSCNView
let tapLocation = sender.location(in: sceneView)
let hitTest = sceneView.hitTest(tapLocation, types: .featurePoint)
if !hitTest.isEmpty{
self.addTag(tag: "A", hitTestResult: hitTest.first!)
}
else{
print("no match")
}
}
func addTag(tag: String, hitTestResult: ARHitTestResult){
let tag = SCNText(string:tag, extrusionDepth: 0.1)
tag.font = UIFont(name: "Optima", size: 1)
tag.firstMaterial?.diffuse.contents = UIColor.red
let tagNode = SCNNode(geometry: tag)
let transform = hitTestResult.worldTransform
let thirdColumn = transform.columns.3
tagNode.position = SCNVector3(thirdColumn.x,thirdColumn.y - tagNode.boundingBox.max.y / 2,thirdColumn.z)
print("\(thirdColumn.x) \(thirdColumn.y) \(thirdColumn.z)")
self.sceneView.scene.rootNode.addChildNode(tagNode)
}
它有效,但我对文本的方向有疑问。当我用相机的原始位置添加它时,文本方向没问题,我可以看到正面的文本(示例 1)。但是当我将相机向左/向右转动并通过点击添加文本时,我可以从侧面看到添加的文本(示例 2)。
样本 1:
示例 2:
我知道应该有一些简单的技巧来解决它,但作为这个主题的初学者,我到目前为止找不到它。
【问题讨论】:
-
您在放置文本对象时寻求什么类型的行为?您是希望文本在您四处移动时始终面向相机,还是希望它在首次放置时保持固定方向?