Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在运行时从SCNTransaction获取正确的值?_Ios_Swift_Scenekit_Scntranscaction - Fatal编程技术网

Ios 如何在运行时从SCNTransaction获取正确的值?

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秒时获取值,结果总

我试图从某个SceneKit对象获取值,该对象由SCNTransaction修改,如下所示:

(焦距最初为50)

SCNTransaction将正常执行,并完全执行它应该执行的操作,摄影机对象将缩小

在此事务期间,我希望获取SCNTransaction在任何精确时间点应用的当前“focalLength”

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)")