Это происходит, когда я помещаю конфигурацию Unity в верхнюю часть application:didFinishLaunchingWithOptions:
, выше моей существующей конфигурации для других служб, которые я использую в проекте.Для кого-то, кто столкнется с этой проблемой в будущем, вот мой appDelegate.swift:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
self.application = application
// Another existing settings for the project, e.g. fabric
Fabric.with([Crashlytics.self])
// Put the Unity configuration at the bottom of the function
unity_init(CommandLine.argc, CommandLine.unsafeArgv)
currentUnityController = UnityAppController()
currentUnityController?.application(application, didFinishLaunchingWithOptions: launchOptions)
startUnity()
stopUnity()
return true
}
Для viewWillAppear(_:)
в контроллере представления:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
setupBackBarButtonItems(back: true, isDark: true)
if let appDelegate = UIApplication.shared.delegate as? AppDelegate {
appDelegate.startUnity()
showUnitySubView()
}
}
Как упомянуто @Prashant вкомментарий, уведомление UnityReady
вызывается только один раз.Поэтому я им не пользуюсь.
Тогда я просто звоню stopUnity()
in viewWillDisappear(_:)
:
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
if let appDelegate = UIApplication.shared.delegate as? AppDelegate {
appDelegate.stopUnity()
}
}
В настоящее время проблема в том, что я не могу убить процесс единства, если я ухожуэкран.Это известно ошибка , и я все еще выясняю, как это сделать, если это возможно.