使用SCNLookAtConstraint的SCNText查找错误的方法

Tom*_*ren 6 text ios scenekit

我想在iOS中使用SceneKit在我的3D模型旁边显示文本.它必须看起来像2D.所以文本应始终面向相机,但我旋转3D模型.我有SCNNode一个SCNText几何形状,我附上了SCNLookAtConstraint这样的:

let constraint = SCNLookAtConstraint(target: cameraNode)
constraint.gimbalLockEnabled = true
textNode.constraints = [constraint]
Run Code Online (Sandbox Code Playgroud)

他们似乎面对镜头,但只是错误的方式!我看到所有文字都被镜像了!此外,有时文本旋转,我希望它始终水平对齐.所以这就是我不想要的所有行为.

有人可以帮帮我吗?我只想在我的3D对象中有几个节点之后有一些文本.我不在乎怎么样.如果可以通过一个简单的UILabel来完成它,那么它并不一定是我所关心的SCNText:很好!告诉我怎么样!

mnu*_*ges 7

从文档:

当SceneKit评估一个look-at约束时,它会更新受约束节点的transform属性,以便节点的负z轴指向约束的目标节点.

您可以通过设置节点pivot或使用中间节点来解决此问题.该节点将受到约束,并将文本作为子节点(沿y轴旋转π )

更新

从iOS 11.0开始,SCNLookAtConstraint该类公开了localFront允许您指定不同前轴的属性.它默认为(0, 0, -1),您可以将其更改(0, 0, 1)为实现您想要的.