首页 > 解决方案 > 为什么 SceneKit CPU 使用率这么高?

问题描述

我用 SceneKit 开发了一个应用程序。我在 iPhone 10 上对其进行了测试,但为了进行优化,我切换到了 iPhone 6。

我看到了几个问题。

即使我停止所有动画,CPU 利用率也是 %80,只是为了显示静态摄像机视图。当动画完全正常运行时,它几乎保持这种状态。

FPS 大部分时间是 60,但有时会变为 59 56,但看起来,感觉就像是 1 FPS。

我正在使用点击与应用程序进行交互,但 iPhone 6 非常无响应并且主要跳过点击。

在 iPhone 10 上,动画大部分时间都是流动的,当我在场景中添加新节点时,我注意到动画中很少出现中断和跳跃行为。为此,我没有添加节点,而是尝试隐藏和取消隐藏节点,将它们添加到“didLoad”中,结果相同。我注意到点击检测没有问题。

我将对象更改为基本形状以测试问题是否来自对象几何形状,但运气不好。

结果几乎一样,正常吗?我的意思是,是适用于 iPhone 10 和更高版本的 SceneKit。

标签: iosswiftscenekit

解决方案


长篇大论从评论中继续,但我使用计时器进行移动,让渲染器尽可能地自由转动。假设你在下面做 - 你的逻辑和东西在哪里更新?

extension GameViewController: SCNSceneRendererDelegate
{
    func renderer(_ renderer: SCNSceneRenderer, updateAtTime time: TimeInterval)
    {
        update(vTime: time)
    }
}

推荐阅读