Ios 如何将SCNText放置在SCNPlane中?
我正在尝试创建一个AR应用程序,其中包含大量的Ios 如何将SCNText放置在SCNPlane中?,ios,swift,scenekit,augmented-reality,arkit,Ios,Swift,Scenekit,Augmented Reality,Arkit,我正在尝试创建一个AR应用程序,其中包含大量的SCNText和SCNPlane。 我试图将每个SCNText放在SCNPlane内,但如图所示,文本总是在平面外 我的问题是如何将每个SCNText放在SCNPlane中 这是我的代码部分: func displayMark() { var str = ["Orange ","Apple ","Banana ","limon", "onion"] var x : Float = 1 var i = 0 while
SCNText
和SCNPlane
。
我试图将每个SCNText
放在SCNPlane
内,但如图所示,文本总是在平面外
我的问题是如何将每个SCNText
放在SCNPlane
中
这是我的代码部分:
func displayMark() {
var str = ["Orange ","Apple ","Banana ","limon", "onion"]
var x : Float = 1
var i = 0
while i<5 {
let text = SCNText(string: str[i], extrusionDepth: 0)
let material = SCNMaterial()
material.diffuse.contents = UIColor.black
text.materials = [material]
let node = SCNNode()
node.position = SCNVector3(0, x/15 , 0)
node.scale = SCNVector3(0.0009, 0.0009, 0.0009)
let planeNode2 = SCNNode(geometry: text)
node.addChildNode(planeNode2)
let minVec = node.boundingBox.min
let maxVec = node.boundingBox.max
let bound = SCNVector3Make(maxVec.x - minVec.x,
maxVec.y - minVec.y,
maxVec.z - minVec.z);
let plane = SCNPlane(width: CGFloat(bound.x),
height: CGFloat(bound.y))
plane.cornerRadius = 5
plane.firstMaterial?.diffuse.contents = UIColor.gray.withAlphaComponent(0.8)
let planeNode = SCNNode(geometry: plane)
node.addChildNode(planeNode)
planeNode.name = "text"
i = i + 1
x = 1 + x
self.sceneView.scene.rootNode.addChildNode(node)
self.sceneView.autoenablesDefaultLighting = true
}
}
func displayMark(){
var str=[“橙”、“苹果”、“香蕉”、“柠檬”、“洋葱”]
变量x:Float=1
变量i=0
而我的SCNText
的特点是它的枢轴点(也称为原点
)位于其左角容器的底部。
就像这样:
因此,需要使用以下公式计算轴心点的中心位置:
/* ( Max dist - Min dist ) / 2 for X and Y */
这里有一个关于这个话题的例子
此外,沿Z
轴的正方向稍微偏移对文本也有好处
希望这能有所帮助。SCNText
的特点是它的轴心点(也称为原点
)位于容器左角的底部。
就像这样:
因此,需要使用以下公式计算轴心点的中心位置:
/* ( Max dist - Min dist ) / 2 for X and Y */
这里有一个关于这个话题的例子
此外,沿Z
轴的正方向稍微偏移对文本也有好处
希望这有帮助