我正试图淡出节点,同时在func renderer(_ renderer: SCNSceneRenderer, updateAtTime time: TimeInterval) {
内同时淡入不同的节点。
我想知道在后台线程上做一个SCNActions是否有效?
谢谢。
答案 0 :(得分:1)
SCNAction
是一个很好的实用工具类,它由SceneKit提供,每次渲染场景时都会以小的增量修改属性,从而产生漂亮的动画。
每次渲染场景时,只调用updateAtTime
函数一次。在此功能中,您可以修改场景,并立即显示这些修改。只需对场景进行少量增量更改,即可获得与SCNAction
相同的动画效果。
例如;在updateAtTime
函数中尝试输入以下内容。这应该淡出您的myNodeA
节点,并淡入myNodeB
(假设场景设置将不透明度设置为0)总共100帧。
self.myNodeA.opacity -= 0.01
self.myNodeB.opacity += 0.01
建议不要从后台线程运行SCNAction
,尤其是在updateAtTime
函数中。两者都是实现你想要的非常有效的方法,只使用一个或另一个(不是两者)。