Экран ARKit 2.0 не отвечает при использовании OverlaySKScene

У меня есть несколько проектов, разработанных с использованием ARKit 1.5, и он отлично работал до iOS 11.4.1. Когда я обновил свою iOS до бета-версии 12 и запустил ее с помощью бета-версии Xcode 10 (последняя версия на сегодняшний день), мой сеанс дополненной реальности перестал отвечать на запросы и завис.

Это замораживание плохо даже для проектов, где я использовал OverlaySKScene для своего ARSceneView. Является ли это ошибкой, которую я должен зарегистрировать, или это происходит только со мной, и я должен выполнить некоторую оптимизацию кода? Если это так, пожалуйста, помогите мне с идеями о том, как оптимизировать производительность.

Я прочитал эту тему ARKit 2 зависает: ошибка или моя беда? и изменил цель развертывания на iOS 12, но все равно не повезло :(

Примечание. Мне очень сложно полностью переделать приложение с помощью ARKit 2.0.


person yaali    schedule 23.08.2018    source источник


Ответы (1)


Я исправил проблему. Это потому, что я делал много обширного кода внутри метода рендеринга ниже. Я обновлял свои SpriteKit компоненты моей SKScene с помощью приведенного ниже метода.

func renderer(_ renderer: SCNSceneRenderer, updateAtTime time: TimeInterval) { 
    // some stuff
}

Теперь заменил код ниже,

func renderer(_ renderer: SCNSceneRenderer, didRenderScene scene: SCNScene, atTime time: TimeInterval) { 
    // some stuff
}

Теперь приложение перестало зависать. Но все же я вижу некоторое отставание.

person yaali    schedule 23.08.2018
comment
@ yaali Я пробовал ваш код, но все же, если я помещал виртуальные объекты на поверхность в то время, когда камера ARKit зависала. и я получаю следующий журнал. [Техника] На производительность отслеживания мира влияют ограничения ресурсов [1]. пожалуйста, направьте меня. Благодарность - person Raj; 19.11.2018