Swift 阿基特&x2013;如何在ARSession中加载GIF动画?

Swift 阿基特&x2013;如何在ARSession中加载GIF动画?,swift,sprite-kit,scenekit,ios11,arkit,Swift,Sprite Kit,Scenekit,Ios11,Arkit,我正在使用ARKit和SceneKit框架开发一个应用程序。我可以渲染我的3D对象,创建覆盖图等。我想在点击我的一个子节点时,在ARSession中加载一个类似覆盖图的GIF动画。这可能吗 我尝试添加SKScene作为我的SCNScene的覆盖,如下所示,看起来不错 informationOverlay = InformationOverlayScene(size: self.sceneView.frame.size) self.sceneView.overlaySKScene = inform

我正在使用ARKit和SceneKit框架开发一个应用程序。我可以渲染我的3D对象,创建覆盖图等。我想在点击我的一个子节点时,在
ARSession
中加载一个类似覆盖图的GIF动画。这可能吗

我尝试添加
SKScene
作为我的
SCNScene
的覆盖,如下所示,看起来不错

informationOverlay = InformationOverlayScene(size: self.sceneView.frame.size)
self.sceneView.overlaySKScene = informationOverlay

但是如何在
SKScene
SCNNode
中加载此GIF文件

以下问题回答了如何在
SKNode
中显示动画:

您可以使用projectPoint将
SCNNode
(三维模型)的位置投影到屏幕上的二维位置,然后将其用于包含动画的
SKNode
的位置。这样,动画将始终面向屏幕


或者,您可以将包含动画的核心动画层指定给
SCN材质的
.diffuse.contents
属性,并将其指定给
SCNPlane
,您可以将其添加到场景中并放置在三维模型上方。如果您希望该平面面向摄影机,只需将
SCNView的
.pointOfView.orientation
属性指定给保存
SCNPlane
SCNNode
,以下问题回答了如何在
SKNode
内显示动画:

您可以使用projectPoint将
SCNNode
(三维模型)的位置投影到屏幕上的二维位置,然后将其用于包含动画的
SKNode
的位置。这样,动画将始终面向屏幕


或者,您可以将包含动画的核心动画层指定给
SCN材质的
.diffuse.contents
属性,并将其指定给
SCNPlane
,您可以将其添加到场景中并放置在三维模型上方。如果你想让这个平面面对摄像机,只需将你的
SCNView的
.pointOfView.orientation
属性分配给
SCNNode
,该属性保存着
SCNPlane

,这不是增强现实的观点,让一切都是三维的,而不是二维的?@LinusGeffarth是的,我只加载三维模型。但有一个要求,我需要显示动画gif,就像在我的3D模型上播放的叠加。“在我的3D模型上”如“映射到曲面”或“屏幕上的某个地方”?如果我点击childnode a,我应该在childnode上方显示一些空间AIt被映射到表面不是增强现实的目的是让所有东西都是3D的,而不是2D?@LinusGeffarth是的,我只加载3D模型。但有一个要求,我需要显示动画gif,就像在我的3D模型上播放的叠加。“在我的3D模型上”如“映射到曲面”或“屏幕上的某个地方”?如果我点击childnode a,我应该在childnode上方显示一些空间AIt映射到表面如何将包含gif动画的SKNode添加到ARSCNView.scene?我尝试将其添加到CALayer,然后使用diffuse.contents添加到SCNNode,它正在工作!!但我的gif图像只显示了一半:(如何在SCNNode中显示完整的gif图像?我尝试更改CALayer和SCNPlane的宽度和高度的边界值,但没有效果。只有SCNPlane大小增加,我的gif动画仍显示为一半。如何将包含gif动画的SKNode添加到ARSCNView.scene?我尝试将其添加到CALayer,然后添加到带有diffuse.contents的SCNNode但我的gif图像只显示了一半:(如何在SCNNode中显示完整的gif图像?我尝试更改CALayer和SCNPlane的宽度和高度的边界值,但没有效果。只有SCNPlane大小增加,我的gif动画仍然显示为一半。