Ios 如何在运行时从SCNTransaction获取正确的值?
我试图从某个SceneKit对象获取值,该对象由SCNTransaction修改,如下所示: (焦距最初为50) SCNTransaction将正常执行,并完全执行它应该执行的操作,摄影机对象将缩小 在此事务期间,我希望获取SCNTransaction在任何精确时间点应用的当前“focalLength”Ios 如何在运行时从SCNTransaction获取正确的值?,ios,swift,scenekit,scntranscaction,Ios,Swift,Scenekit,Scntranscaction,我试图从某个SceneKit对象获取值,该对象由SCNTransaction修改,如下所示: (焦距最初为50) SCNTransaction将正常执行,并完全执行它应该执行的操作,摄影机对象将缩小 在此事务期间,我希望获取SCNTransaction在任何精确时间点应用的当前“focalLength” print("Current focalLength: \(cameraNode.camera?.focalLength)") 无论我是在0秒、1秒还是3秒时获取值,结果总
print("Current focalLength: \(cameraNode.camera?.focalLength)")
无论我是在0秒、1秒还是3秒时获取值,结果总是24-结束值。因此,我假设SCNTransaction在内部以某种方式执行此平滑修改。是否有方法从正在进行的SCNTransaction中获取实际值。谁能详细解释一下,一个交易中发生了什么
PS:当然我可以创建一个SCNAction.cutomAction或一个cabasicanition,但我想知道是否有办法从SCNTransaction获取值。这可以通过节点的: 使用隐式动画(请参见SCNTransaction)更改节点的属性时,这些节点属性将立即设置为其目标值,即使已设置动画的节点内容似乎从旧属性值转换为新属性值。在动画场景中,它维护节点的副本,称为表示节点,其属性反映当前影响节点的任何飞行中动画确定的临时值。表示节点的属性与当前显示的节点版本非常接近。SceneKit在计算显式动画、物理和约束的结果时也使用表示节点
这可以通过节点的: 使用隐式动画(请参见SCNTransaction)更改节点的属性时,这些节点属性将立即设置为其目标值,即使已设置动画的节点内容似乎从旧属性值转换为新属性值。在动画场景中,它维护节点的副本,称为表示节点,其属性反映当前影响节点的任何飞行中动画确定的临时值。表示节点的属性与当前显示的节点版本非常接近。SceneKit在计算显式动画、物理和约束的结果时也使用表示节点
print("Current focalLength: \(cameraNode.camera?.focalLength)")
print("Current focalLength: \(cameraNode.presentation.camera?.focalLength)")