【问题标题】:SceneKit – How to set the zoom on the default SCNCamera?SceneKit – 如何在默认 SCNCamera 上设置缩放?
【发布时间】:2016-08-27 17:49:30
【问题描述】:

基本上,我的问题:

我在 Apple Docs 中搜索了应用于默认相机的某种形式的“缩放”,但我找不到。我也尝试过创建自己的相机(而不是使用默认相机),但由于其他原因,这不起作用。我需要使用默认相机,但我需要弄清楚如何删除初始“缩放”的这个属性。甚至可以在不创建我自己的相机的情况下更改默认相机的某些值吗?


“缩放”是什么意思:

当我说缩放时,我指的是当我打开场景时,我看不到很多东西。当我向内捏手指时,我会“缩小”场景,以便看得更多(远处的东西会变小)。请参阅此图片以进一步了解我的意思:

正如你在这张图片中看到的,左边是我每次打开场景时默认相机给我的东西。相反,我想要的是在右边。它被“缩小”了。


我尝试过的:

我已经尝试了几件事。其中一些已经在上面解释过。

• 首先,我已经尝试制作自己的相机,而不是更改默认相机上的值。但是,创建我自己的相机会改变我的应用程序中我无法拥有的其他一些东西。所以我真正需要的是在默认相机上更改这个“缩放”值。

• 我还尝试在 Apple 文档中搜索此变量/属性。我找不到任何我需要的东西。除非我错了。如果解决方案看起来很明显,请告诉我!没有什么对我有用(部分原因是我不是 100% 知道如何使用所有 SCNCamera 设置)。

• 我还尝试将所有东西从相机向后偏移 (-z)。 “如果我不能缩小,那我就把一切都推远一点!”但是不,这不起作用。同样,它与我的应用程序中的其他一些功能有关。我不能让它与游戏的其他必需品发生冲突。


我需要你什么?:

我不一定需要一些代码。当然,代码会很棒!但这不是必需的。我只是不知道如何访问这个属性。

另外,如果我的推理完全错误,请告诉我。这样,我可以更轻松地自己找出解决方案。例如,它实际上是一个“缩放”属性,还是只是当我捏手指时相机的位置发生变化。无论如何捏我的手指有什么作用?我可以在场景显示之前用几行代码镜像捏合吗?等等等等。

【问题讨论】:

  • 我想你会发现x and y field of view angles 被默认设置的捏手势改变了(对于透视投影......)。我不相信默认相机有什么特别之处,您应该能够创建具有相同设置的相机并看到相同的投影。
  • 为什么不打印各种参数以查看当您捏合时发生了什么变化,然后在代码中复制它?例如,要跟进@lock 的建议,print(camera.xFov)。或print(camera.position.z).
  • @bpedit 这是个好主意。我应该考虑一下的。
  • 你找到答案了吗?

标签: ios view zooming scenekit pinch


【解决方案1】:

尝试添加一个相机节点,然后将其添加到您的 SceneView:

//add Camera Node
let cameraNode = SCNNode()
cameraNode.camera = SCNCamera()

// Add Camera Node Position
cameraNode.position = SCNVector3(x: 0, y: 0, z: 50)

//add Camera Node to SceneView
scene.rootNode.addChildNode(cameraNode)
sceneView.scene = scene

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-15
    • 2022-01-14
    • 2021-10-01
    • 2020-12-18
    • 2013-10-17
    • 2012-03-25
    • 2017-06-21
    • 2019-01-10
    相关资源
    最近更新 更多