gpt4 book ai didi

swift - ARKit:将节点放在节点后面

转载 作者:行者123 更新时间:2023-11-30 11:23:48 24 4
gpt4 key购买 nike

enter image description here

即使我改变了 iPhone 的位置,我也想将红色节点放在蓝色节点后面。

(请引用图)当我启动 AR 应用程序并点击屏幕中心添加蓝色节点时,我得到蓝色节点的 x、y、z 轴,并将红色节点的 z 轴设置得稍微远一些。在这种情况下,我的应用程序的行为符合我的预期。

问题是当我旋转iPhone,点击屏幕添加蓝色节点时,红色节点似乎与初始状态处于相同的深度。

我期望的是,当我添加蓝色节点时,始终将红色节点放在其后面(在添加蓝色节点时,蓝色节点应始终覆盖红色节点)

有人知道怎么做吗?

我有这段代码可以使节点在添加节点时始终面向相机。但空间位置有点不是我想象的

//TAP THE SCREEN
let worldTransform = hitTestResultsWithFeaturePoint.worldTransform
let hitTransform = SCNMatrix4(worldTransform)
let hitVector = SCNVector3Make(hitTransform.m41, hitTransform.m42, hitTransform.m43)
let rotate = simd_float4x4(SCNMatrix4MakeRotation(sceneView.session.currentFrame!.camera.eulerAngles.y, 0, 1, 0))
let rotateTransform = simd_mul(worldTransform, rotate)

//ADD THE BLUE NODE
let bluenode = SCNNode()
bluenode.transform = SCNMatrix4(rotateTransform)
bluenode.position = SCNVector3(hitVector.x, hitVector.y, hitVector.z)

//ADD THE RED NODE BEHIND THE BLUE NODE
let rednode = SCNNode()
rednode.transform = SCNMatrix4(rotateTransform)
rednode.position = SCNVector3(hitVector.x, hitVector.y, hitVector.z - 0.05)

最佳答案

将红色节点添加为蓝色节点的子节点,坐标为 (0.0,0.0,-0.05),然后使用“SCNBillboardConstraint”使蓝色节点面向相机应该可以解决问题

关于swift - ARKit:将节点放在节点后面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50983142/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com