ios - 我的位置相同,但节点不在同一个地方?
问题描述
在我的 SceneKit 场景中,我有一个节点,它是一个玩家将与之交互的球和一个相机,相机是一个名为“selfieStick”的对象的子对象,它将跟随球并为相机将球聚焦在其中。当我实现这个时,我使用以下代码执行此操作:
func renderer(_ renderer: SCNSceneRenderer, updateAtTime time: TimeInterval) {
let ball = ballNode?.presentation
let ballPosition = ball?.position
selfieStickNode?.position = ballPosition!
}
但是当我运行游戏并点击球(使其向前跳跃)时,自拍杆和球会朝两个不同的方向移动......一旦我打开场景检查器并进入场景,我会检查所有东西的位置,然后球和 seflieStick 的位置是相同的,因为它们应该是......但节点不在场景中的同一个位置......下面的屏幕截图。
解决方案
我想通了......由于某种原因,selfieStick 每次都在相反的 Z 方向上移动......所以我用下面的代码修复了它:
func renderer(_ renderer: SCNSceneRenderer, updateAtTime time: TimeInterval) {
let ball = ballNode?.presentation
let ballPosition = ball?.position
let finalPosition = SCNVector3(ballPosition!.x,
ballPosition!.y,
(ballPosition!.z * -1))
selfieStickNode?.position = finalPosition
}
推荐阅读
- powershell - IF 在函数中不起作用(PowerShell)
- c++ - 在 Visual Studio 2017 中构建 Qt 可执行文件
- ssh - 对远程服务器执行 ssh 时如何在密码中转义 @?
- android - Fluttter 警报管理器缺少插件异常
- c++ - C++ 扩展 Ascii 和负值
- javascript - JavaScript - 计算属性 - 深深的困惑
- javascript - Unable to Returning function to main HTML body javascript
- javascript - 如何将数据从一个组件ajax响应传递到另一个组件状态reactjs?
- python - python argparse - 如何允许解析器处理标志和非标志参数
- javascript - List files in a directory with PHP and JavaScript