【问题标题】:SceneKit follow camera?SceneKit 跟随相机?
【发布时间】:2016-02-24 08:30:11
【问题描述】:

我正在尝试在场景包中制作跟随相机。我才刚刚开始,所以请多多包涵。我有一个节点 (robotNode) 并试图让相机跟随机器人。我通过将相机添加为机器人的子节点部分实现了这一点:

cameraNode = [SCNNode node];
cameraNode.camera = [SCNCamera camera];
[robotNode addChildNode:cameraNode];

// place the camera
cameraNode.position = SCNVector3Make(0, 0, 10);

但问题是当我开始旋转相机时,它不再跟随节点。看这里:

如何让它继续跟随节点?

【问题讨论】:

    标签: objective-c cocoa camera scenekit scnnode


    【解决方案1】:

    您编写的内容将创建一个距机器人固定距离的摄像头节点,但您没有做任何事情来控制摄像头指向的位置。

    创建一个目标是机器人节点的 SCNLookAtConstraint。将其附加到相机节点。

    // warning, written in browser, untested
    
    SCNLookAtConstraint *robotStare = [SCNLookAtConstraint lookAtConstraintWithTarget:robotNode];
    // and maybe also
    robotStare.gimbalLockEnabled = YES;
    
    cameraNode.constraints = @[robotStare];
    
    // OP added this, to make camera follow node. I'm skeptical.
    cameraNode.camera.usesOrthographicProjection = YES;
    

    【讨论】:

    • 谢谢,但随着机器人移动得越来越远,摄像头会保持原位。有什么办法让它随机器人一起移动吗?此外,缩放似乎不起作用。不过好像在看呢
    • 我们可以查看您的相机/视图设置代码吗?您正在操作的相机是 SCNView 正在使用的相机,还是单独的相机?
    • 其实我想通了。我设置了属性cameraNode.camera.usesOrthographicProjection = YES;,它开始工作了。
    • 我怀疑这种正交/透视变化会对相机跟随的内容产生影响。很高兴你让它工作了。
    • 其实我错了。它看起来很有效,因为它使东西大小相同。对不起。
    猜你喜欢
    • 2017-08-28
    • 2017-09-12
    • 2017-01-29
    • 2018-01-08
    • 2021-12-08
    • 1970-01-01
    • 2018-12-29
    • 2017-01-01
    • 1970-01-01
    相关资源
    最近更新 更多