【发布时间】:2019-06-10 15:45:37
【问题描述】:
通过 @rickster 在这篇文章中给出的解决方案:SceneKit - Crossfade material property textures,我尝试在 fadeFactor 上实现动画。我尝试了很多事情,但没有按预期工作。
这是我的一些代码:
-
对于着色器:
"uniform float fadeFactor;" -
迅速:
let anim = CABasicAnimation(keyPath: "fadeFactor") anim.fromValue = NSNumber(value: 0.0) anim.toValue = NSNumber(value: 1.0) anim.duration = duration anim.repeatCount = .infinity node.geometry?.firstMaterial?.addAnimation(anim, forKey: "fadeFactor")
当我执行我的代码时,fadeFactor 属性上没有动画。
我做错了什么?
在 CABasicAnimation 中,我为 keyPath 尝试了不同的值:geometry.firstMaterial.diffuse.contents、fadeFactor 等。
我找不到必须为参数 'keyPath' 和 'forKey' 提供哪个值!
当我使用 setValue 函数更改 fadeFactor 的值时,没关系:
node.geometry?.firstMaterial?.setValue(NSNumber(value: 0.5), forKey: "fadeFactor")
如果有人有解决方案或可以给我一个例子,那就太好了。
提前致谢。
【问题讨论】:
标签: ios swift animation glsl scenekit