Version: 2019.2
Apple TV
tvOS build settings

Construyendo juegos para Apple TV

Esta página de manual está dirigida principalmente a ayudar a los desarrolladores a pasar de iOS a tvOS. La plataforma de Apple TV (también conocida como tvOS) se basa en la plataforma iOS y crea nuevos paradigmas y desafíos para los desarrolladores de juegos. El despliegue de un juego móvil existente en tvOS es solo un clic, pero el contenido del juego a menudo necesita ser adaptado para funcionar correctamente con los nuevos controles de entrada de Unity y el hecho de que el juego se muestre en una pantalla grande.

Pre-requisitos

Para desarrollar en tvOS usted necesita lo siguiente:

  • Usted necesita un dispositivo Apple TV de 4ta generación (también necesita un USB C <-> USB 3.0 cable, el cual no está incluido en el paquete de consumo).
  • Xcode 7.1 o posterior.
  • Debe configurar el aprovisionamiento para este dispositivo de la misma forma que para los dispositivos iOS. Se recomienda crear una aplicación tvOS vacía con Xcode para probar que el aprovisionamiento funciona correctamente.

Puntos para tener en cuenta antes de comenzar

  • Muchos plugins de iOS no son compatibles con Apple TV, ya que sólo admite un subconjunto del framework de iOS. Se recomienda que cree una rama o una copia separada de su juego y realice la transferencia a Apple TV. Comuniquese con los proveedores de plugins para pedirles que actualicen los plugins incompatibles.
  • If your game uses more than 4 GB on disk, you should break it into smaller parts and use On Demand Resources. For On Demand Resources support in Unity please refer to the On Demand Resources section below. Note that Bitcode is included with tvOS builds, which adds ~130 MB to your executables. This added size is not accounted for in distribution size, as it is be stripped by App Store servers. You can estimate Bitcode size by analyzing LLVM sections in your executable from the command line with otool -l.

Implementando input

El Apple TV Remote (Siri Remote) sirve como un dispositivo de entrada multiusos, funcionando tanto como un controlador de navegación de menú tradicional, controlador de juego, girocompás y sensor de aceleración, y como un dispositivo de gesto táctil. La entrada de Apple TV Remote es procesada mínimamente por Unity y en su mayoría encaminada a las API de Unity correspondientes.

Por lo general, cada juego necesita un ligero ajuste de su esquema de entrada para aprovechar las características únicas de entrada de Apple TV Remote. Algunos juegos se beneficiarían al tratarlo como un controlador de juego tradicional, con un eje analógico y un botón de acción adicional, mientras que otros se beneficiarían al usar el acelerómetro (por ejemplo, para propósitos de dirección). Se recomienda que experimente con varios esquemas al portar un juego a tvOS.

Estos son algunos detalles técnicos sobre el acceso a las características específicas de TV Remote:

  • If you have not yet added Made For iOS (MFi) Game Controller support to your game, see the dedicated MFi Game Controller page. Use the mappings listed there while setting up your custom action mappings in the Unity Editor (Edit > Project Settings, then select the Input category).
  • El área de toque de Apple TV Remote se asigna tanto a Input.touches (Touch.type está configurado como Indirect y es ignorado por la Unity GUI), y la habitual API de entrada de Joystick (por ejemplo` Input.GetAxis “Horizontal”);)
  • La Aceleración remota y giroscopio del Apple TV Remote se asignan en consecuencia a Input.acceleration yInput.gyro. Input.acceleration internamente se deriva del API del giroscopio y puede tener algunas inestabilidades. Desafortunadamente no hay una API de acelerómetro dedicada en el SDK de tvOS. Input.giro.attitude se deriva del vector de gravedad, y por lo tanto carece de rotación alrededor del eje paralelo al vector de gravedad. Lo mismo se aplica a Input.gyro.rotationRate.
  • El botón de Pausa/Reproducción del mando a distancia se asigna al botón “X” (que se asigna a joystick button 15).
  • El click del área del tacto del control de Apple TV se asigna al botón “A” (que se asigna entonces a joystick button 14).
  • El botón del Menú tiene un comportamiento especial en este dispositivo; Una prensa larga invoca el selector de tareas de tvOS. Este comportamiento no se puede sobreescribir. Los golpes cortos se pueden procesar de dos maneras:
    • a) Regresar a la pantalla de inicio del sistema tvOS (si UnityEngine.Apple.TV.Remote.allowExitToHome es true)
    • b) Dejando que su app responde a tactos (asignado al botón “Pause” / joystick button 0), cuando UnityEngine.Apple.TV.Remote.allowExitToHome es false. Este es el comportamiento predeterminado.
    • Su app debería cambiar entre a) y b) basado en el estado actual de su juego. Si el usuario está interactuando con el menú superior, habilite el comportamiento a); si está interactuando en tiempo real con el juego debería habilitar el comportamiento b) e invocar el menú de pausa dentro del juego cuando este botón fue presionado.
  • El mando a distancia de Apple TV también genera botones de dirección hacia arriba / abajo / izquierda / derecha cuando se desliza hacia el borde del mando a distancia. Consulte la página de manual de Controladores de juegos iOS para las asignaciones.
  • Los modos operativos de Apple TV Remote se pueden controlar a través de una API dedicada:
    • UnityEngine.Apple.TV.Remote.allowExitToHome
    • UnityEngine.Apple.TV.Remote.allowRemoteRotation
    • UnityEngine.Apple.TV.Remote.reportAbsoluteDpadValues
    • UnityEngine.Apple.TV.Remote.touchesEnabled
  • Otros dos controladores de juegos inalámbricos para iOS (MFi) pueden conectarse a un dispositivo de Apple TV, convirtiéndolo en una consola de juegos. Su juego puede utilizarlos de la misma manera que los controladores iOS MFi (como se mencionó anteriormente), aunque su juego debe seguir siendo reproducible con el Apple TV Remote solo. Actualmente, el número de controladores adicionales está limitado a dos; Se trata de una limitación del sistema tvOS documentada.

Warning: due to the Apple TV Remote “Menu” button being reported as joystick button 0 when UnityEngine.Apple.TV.Remote.allowExitToHome is set to false, and the default Input window binding Submit virtual button being mapped to the same joystick button 0, this button triggers actions on UI elements when pressing the Menu button. To work around this issue, remove or modify the Submit virtual button bindings in the Input window.

Configurando la navegación de Unity GUI mediante Apple TV Remote

  • Open the Input window in the Unity Editor. Find the first occurrence of the Submit virtual input, expand it and change its Alt Positive Button to joystick button 14.
  • Select the EventSystem GameObject in your Scene. In the Inspector, find the EventSystem component and set a reference to the UI GameObject that should receive initial focus the First Selected property . You may need to enable the Force input module property in the Standalone Input Module component.

Esto le permite navegar su interfaz de usuario a través del teclado mientras se ejecuta en el editor y a través de Apple TV Remote y hacer clic en el dispositivo cuando haga clic en su dispositivo.

Nota: La navegación del Apple TV Remote no funciona mientras se ejecuta el TV Simulator.

Añadiendo recursos de leadeboard al proyecto de Xcode

El Game Center requiere recursos visuales personalizados para su interfaz gráfica de usuario nativa. Aquí hay instrucciones rápidas sobre cómo configurarlas en Xcode:

  • Seleccione Images.xcassets en el proyecto de Xcode
  • Haga click derecho debajo de los archivos listados, y desde el menú escoja Game Center > New AppleTV Leaderboard.
  • Agregue sus imágenes.
  • Select Leaderboard and on the right pane click Edit View. Find the Identifier property and enter your leaderboard ID there.
  • Si después de estas modificaciones su compilación de assets comienza a fallar, intente desactivar “On Demand Resources” en Xcode “Build Settings”.

Implementando soporte de On Demand Resources (recursos en demanda)

tvOS has requirements on how much disk space your application can reserve. The main application installation bundle size can not exceed 4 GB. The limits for additional downloadable content are up to 2GB for in-use assets and up to 20GB of total downloadable content. Apple recommends On Demand Resources (ODR) for tvOS downloadable content, as it enables the best disk space management strategies for tvOS. Unity supports ODR via Asset Bundles. An ODR implementation guide can be found in our dedicated blogpost on the subject.

Limitaciones conocidas

  • El teclado en pantalla está limitado a entradas de una sola línea.
  • El tvOS Simulator no emula el Apple TV Remote como un Controlador del Juego, por lo tanto hace de su input inaccesible a los juegos.
Apple TV
tvOS build settings