gpt4 book ai didi

swift - 正确旋转相机以查看场景的侧面

转载 作者:行者123 更新时间:2023-11-30 10:37:38 26 4
gpt4 key购买 nike

我正在使用 SceneKit 来使用 3d 汽车在谷歌地图中使用,就像 Uber 一样。我设法使用它并旋转它,但相机位于顶部,一旦位置管理器标题发生变化以查看汽车的边缘,我想旋转它。

我尝试改变欧拉角,但效果不佳。我尝试使用默认相机,但我没有找到如何将其放置在顶部、左侧或右侧...我只能从 .scn 文件中更改它,而不能在代码中更改它。

https://github.com/HilalAH/Uber3dModel

最佳答案

仅供引用 - 您有 allowedCameraControl = true,可能不希望这样。

这是让您快速入门的方法。

对您的相机设置约束,使其始终看着您的汽车,然后您可以使用简单的矢量调整cameraEye。您可以对汽车的行驶方向进行一些数学计算,并将 CameraEye 放置在与移动方向相关的任何位置(向后、侧面等),但汽车将始终是焦点。

像这样的代码,cameraFocus是你的车:

class Camera
{
var cameraEye = SCNNode()
var cameraFocus = SCNNode()

init()
{
cameraEye.name = "Camera Eye"
cameraFocus.name = "Camera Focus"

cameraFocus.isHidden = true
cameraFocus.position = SCNVector3(x: 0, y: 0, z: 0)

cameraEye.camera = SCNCamera()
cameraEye.constraints = []
cameraEye.position = SCNVector3(x: 0, y: 0, z: 20)

let vConstraint = SCNLookAtConstraint(target: cameraFocus)
vConstraint.isGimbalLockEnabled = true
cameraEye.constraints = [vConstraint]
}
}

确保您已添加相机对象:

scene.rootNode.addChildNode(camera.cameraEye)
scene.rootNode.addChildNode(camera.cameraFocus)

关于swift - 正确旋转相机以查看场景的侧面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57586437/

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