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 属性 设置动画没有帮助。

如何为 SCNViewbackgroundColor 设置动画?

改为更改背景内容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 进行外观调整。