将 SCNNodes 设置为具有恒定的 y 轴值?
Set SCNNodes to have constant y-axis value?
我有一系列 SCNPlane 类型的对象设置为围绕中心 SCNPlane 旋转,宽度和高度设置为 0。在我的应用程序中加载视图时,我得到以下信息,这表明我的平面正在加载正确。用我的光标从左到右旋转它们也可以。看起来像这样:
但是,如果我的光标在 y 方向上移动,视图最终会移动,以便从另一个角度显示显示。基本上,视图最终可能看起来像这样:
我不希望这样的事情发生;我希望第一张图片是我想要的。当我移动光标时,它应该向左或向右移动,而不是向上或向下移动。
这是我尝试做的事情:
- 将枢轴设置为
SCNMatrix4MakeRotation(Float(CGFloat(M_PI_2)), 0, 0, 0)
- 将旋转设置为
SCNVector4(1, 0, 1, Float(CGFloat(M_PI_2))
- 将方向设置为
SCNQuaternion(0, 0, 0, Float(CGFloat(M_PI_2))
- 使用
SCNLookAtConstraint
函数使所有平面围绕中心坐标居中并面向外
- 将
SCNTransformConstraint
函数与包含节点和矩阵 (newMatrix = incomingMatrix
) 变量的块一起使用。如果它检测到物体的位置有y值,那么newMatrix.m42 = 0
。 newMatrix
以任何一种方式返回。
以上 None 已解决我的问题。我什至可以将相机限制在 x 轴和 z 轴上吗?
我花了几天时间,但我终于找到了解决方法。
我按照 rickster 的建议实现了相机节点,并将 allowsCameraControl 设置为 false。然后我实现了一个 UIPanGestureRecognizer 并将其绑定到一个函数,正如建议的那样 ,这也是基于 rickster 的回答。
它现在做我想做的事。非常感谢大家!
我有一系列 SCNPlane 类型的对象设置为围绕中心 SCNPlane 旋转,宽度和高度设置为 0。在我的应用程序中加载视图时,我得到以下信息,这表明我的平面正在加载正确。用我的光标从左到右旋转它们也可以。看起来像这样:
但是,如果我的光标在 y 方向上移动,视图最终会移动,以便从另一个角度显示显示。基本上,视图最终可能看起来像这样:
我不希望这样的事情发生;我希望第一张图片是我想要的。当我移动光标时,它应该向左或向右移动,而不是向上或向下移动。
这是我尝试做的事情:
- 将枢轴设置为
SCNMatrix4MakeRotation(Float(CGFloat(M_PI_2)), 0, 0, 0)
- 将旋转设置为
SCNVector4(1, 0, 1, Float(CGFloat(M_PI_2))
- 将方向设置为
SCNQuaternion(0, 0, 0, Float(CGFloat(M_PI_2))
- 使用
SCNLookAtConstraint
函数使所有平面围绕中心坐标居中并面向外 - 将
SCNTransformConstraint
函数与包含节点和矩阵 (newMatrix = incomingMatrix
) 变量的块一起使用。如果它检测到物体的位置有y值,那么newMatrix.m42 = 0
。newMatrix
以任何一种方式返回。
None 已解决我的问题。我什至可以将相机限制在 x 轴和 z 轴上吗?
我花了几天时间,但我终于找到了解决方法。
我按照 rickster 的建议实现了相机节点,并将 allowsCameraControl 设置为 false。然后我实现了一个 UIPanGestureRecognizer 并将其绑定到一个函数,正如建议的那样
它现在做我想做的事。非常感谢大家!