Integración de unidad IOS

Para un proyecto necesito integrar Unity3d en una aplicación existente. Sé que Unity actúa como un UIApplicationDelegate. Encontré un artículo interesante sobre este tema pero no está muy claro para mí cómo puedo resolver mis problemas de esta manera. ¿Es posible reiniciar el process de delegación desde un ViewController? Entonces, cuando cambio a un viewController desde mi delegado y quiero volver a navegar, ¿inicializo de nuevo el UIApplicationDelegate nuevamente?

Artículo que encontré: http://alexanderwong.me/post/29949258838/building-a-ios-unity-uiview-uiviewcontroller

Gracias por adelantado

¿Has intentado usar Unity para crear una aplicación Unity "estándar" de iOS y luego integrar tu código existente en eso?

Cuando compile para iOS desde Unity, Unity automáticamente bloqueará un enlace en su Delegado de aplicación, en el siguiente método:

- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions 

Puedes hacer otras cosas allí, pero en la parte inferior deberías ver la línea importante:

 [self startUnity:application]; 

Entonces, lo que puedes hacer es sacar esa línea del método didFinishLaunching y ponerla … donde quieras. También querrás mantener una reference a la interfaz UIWindow * Unity en tu delegado de la aplicación, para que puedas entrar y salir cuando lo desees.

Por lo tanto, no estoy completamente claro sobre exactamente las cosas que desea hacer, pero definitivamente recomiendo como primer paso comenzar con una compilation Unity integrada y trabajar desde allí, o al less usarla como un map si quiere rodar tu propia implementación

Ha sido un time, pero mejor tarde, nunca;)

No puedes "reiniciar" las cosas de la delegación. El UnityAppController es un AppDelegate, no un ViewController. Pero puedes decidir cuándo se inicia la unidad la primera vez. Después de eso, la unidad se ejecuta y debe utilizar la llamada applicationDidEnterBackground en UnityAppController (para pre Unity 5) o simplemente llamar a setPause: true (usando Unity 5) que detiene el loop de renderización unitaria. Simplemente no olvide reactivarlo una vez que navegue de return a UnityViewController.

Para la "forma de comenzar la unidad cuando lo desee": subclass UnityAppController y anule la aplicación startUnity: (UIApplication *) con una implementación vacía. Luego, llama a [super startUnity ..] una vez que quieres activarlo.

La otra forma no es subclass sino crear su propio object UnityAppController y llamar a todos los methods (applicationDidFinsishLaunching, etc.). Luego, espera con la initialization hasta que necesites la unidad por primera vez. Pero recomendaría la primera opción.

También puede ver aquí una descripción más detallada de cómo lo hice: http://www.markuszancolo.at/2014/05/integrating-unity-into-a-native-ios-app