SceneKit:SCNView 背景颜色的动画立即发生,而不是逐渐发生
SceneKit: animation of SCNView background color happens instantly, not gradually
动画 backgroundColor
属性 的 SCNView
立即发生,而不是在指定的持续时间内逐渐发生。
代码如下:
UIView.animate(withDuration: 0.5, animations: {
self.sceneView.backgroundColor = UIColor.redColor
})
This question 类似,但其解决方案无效。具体来说,预先设置 backgroundColor
并针对 layer
属性 设置动画没有帮助。
如何为 SCNView
的 backgroundColor
设置动画?
改为更改背景内容material。这将为您提供完全的 SCN Material 控制背景的权力,以及使用 SCN 操作为您所做的任何更改设置动画的能力。
https://developer.apple.com/documentation/scenekit/scnscene/1523665-background
更好的方法,也是我的建议,是使用 CAAnimation。来自文档:
You can attach animations to Scene Kit objects that adopt the
SCNAnimatable protocol, including nodes, geometries, and materials.
一般来说,material 的 diffuse and ambient 颜色将根据您设置照明的方式更改以对背景 material 进行外观调整。
动画 backgroundColor
属性 的 SCNView
立即发生,而不是在指定的持续时间内逐渐发生。
代码如下:
UIView.animate(withDuration: 0.5, animations: {
self.sceneView.backgroundColor = UIColor.redColor
})
This question 类似,但其解决方案无效。具体来说,预先设置 backgroundColor
并针对 layer
属性 设置动画没有帮助。
如何为 SCNView
的 backgroundColor
设置动画?
改为更改背景内容material。这将为您提供完全的 SCN Material 控制背景的权力,以及使用 SCN 操作为您所做的任何更改设置动画的能力。
https://developer.apple.com/documentation/scenekit/scnscene/1523665-background
更好的方法,也是我的建议,是使用 CAAnimation。来自文档:
You can attach animations to Scene Kit objects that adopt the SCNAnimatable protocol, including nodes, geometries, and materials.
一般来说,material 的 diffuse and ambient 颜色将根据您设置照明的方式更改以对背景 material 进行外观调整。