Desarrollar en Unity y Android

A continuación dejo una guía para navegantes que quieran adentrarse en la programación de aplicaciones Android con Unity. Hay una serie de pasos que hay que configurar, y en función de nuestro dispositivo encontraremos algunos obstáculos en el camino. Con tesón y paciencia conseguiremos tener un entorno de desarrollo bien preparado que nos permitirá ahorrar tiempo.

Preparación del SDK Android

1.- Descargar Android Software Development Kit (SDK)
2.- Descomprimir y ejecutar SDK Manager. Si no arranca, ejecutar como administrador.
3.- Instalar los paquetes que vienen previamente seleccionados.
5.- Reiniciar Unity.
6.- Establecer el Bundle Identifier en Unity (File->Build->Build Settings->Other Settings)
7.- Realizar un compilado (Build). En el proceso pedirá la ubicación donde queremos guardar el .apk, y la ubicación del SDK de Android (indicar la carpeta llamada "sdk").
El archivo .apk que genera Unity es un paquete instalador para Android. Lo podemos transferir a nuestro teléfono para instalar la aplicación. Sin embargo, antes de la instalación conviene seguir las siguientes directrices para prepara nuestro Android para el desarrollo.

Preparación del dispositivo Android

Antes de comenzar con este punto, debemos tener en cuenta que Android es un sistema operativo con mucha dispersión. Cada fabricante de teléfonos es libre de modificar la versión que instala en sus teléfonos. Algunos permiten actualizaciones y otros no, por lo que a continuación se ofrecen sólo unas guías generales, ya que es imposible dar un método que funcione en todos los dispositivos.
1.- Pasar el teléfono a modo desarrollador.
Algunos dispositivos tienen el modo desarrollador escondido. Ir a Ajustes->Información del teléfono y pinchar 7 veces en la última línea.
En otros dispositivos las opciones de desarrollador se encuentran en alguna parte de los Ajustes. En ocasiones dentro del menú de Seguridad.
El menú de desarrollo suele tener el icono de las llaves {}
2.- Activar opciones de desarrollo
Una vez que tenemos localizado el menú de desarrollo, hay algunas opciones que deberíamos activar:
  • Mantener pantalla activa: hace más cómodo el desarrollo
  • Depuración USB
  • Ubicaciones simuladas
Además, en el menú de seguridad, deberemos activar "Orígenes desconocidos", para poder instalar nuestras apps.
3.-Hacer el dispositivo reconocible por el ordenador.
Suponiendo que estamos en Windows, el siguiente paso es asegurarnos de que al conectar vía USB, el Sistema Operativo reconoce nuestro dispositivo. Éste es el punto más conflictivo, ya que se juntan las dificultades que pone Microsoft con las que ponen los fabricantes. Las herramientas que tenemos para comprobar que el dispositivo ha sido detectado son 3:
  • Comprobar que sale una carpeta o disco en Mi PC y que podemos acceder a ella.
  • En el panel de control, ir a Administrador de Dispositivos y buscar dentro de dispositivos móviles (Si sale un símbolo de alerta es que hay algún problema)
  • Vía consola, acceder a la carpeta sdk->platform-tools y ejecutar "adb devices" para ver si nuestros dispositivo aparece.
 Nuestro objetivo es poder acceder al teléfono. Si no lo detectamos, es que debemos instalar los drivers necesarios. Los escenarios que deberíamos probar son los siguientes:
  1. Instalar los drivers de Google. Ir al Administrador de Dispositivos y pinchar en Actualizar Controlador (Update Driver) sobre nuestro terminal. Dar la ruta del SDK->extras->google->usb drivers. En el común de los casos, estos drivers genéricos de desarrollo permitirán acceder al dispositivo.
  2. Si el paso anterior no funciona, debemos buscar los drivers del fabricante de nuestro teléfono. Habitualmente serán descargables desde su web. En algunos casos es el propio dispositivoel que los contiene y saltan al conectarlo al ordenador. Por ejemplo, en el caso de los Samsung, puede ser necesario instalar Samsung Kies.
  3. En ocasiones, no dependemos tanto de los drivers como del tipo de conexión del dispositivo con el ordenador. Deberemos si llegamos a este caso, ir comprobando los modos de conexión, que son los siguientes:
    - USB mass storage device class, USB MSC, o UMS: Es el método más antiguo y los Androids modernos no lo usan. Es un modo en el que vemos el android como si fuese un PenDrive.
    - Media Device (MTP, Media Transfer Protocol): Es el método moderno de transferencia de archivos multimedia. Además es compatible con Mac.
     - PTP (Picture Transfer Protocol), Cámara Digital: Con este modo, el Android aparece como una cámara digital. En algunos casos es el modo apropiado, y en otros no. 
En los dispositivos modernos, podemos alternar entre estos modos desde el menú de almacenamiento, pero en dispositivos antiguos o no estándar, tendremos que buscar estos modos en distintas partes de la configuración.
Toca no desesperar, analizar con paciencia todo lo que vamos haciendo y apuntar los pasos que hemos seguido cuando encontremos el método. Ésta es la forma correcta de tener siempre configurado el dispositivo.

Unity Remote 4

Existe una aplicación en GooglePlay para poder depurar nuestros juegos de Unity en Android, sin tener que copiar la .apk cada vez. La aplicación necesita de la conexión USB para funcionar, y necesita que el ordenador reconozca el dispositivo. Es por ello que comprender los pasos anteriores se hace muy importante. La recomendación general es pasar el dispositivo a modo Cámara PTP, pero no en todos los casos funciona. Los pasos de configuración antes de poder probar el Remote son los siguientes:
  1. Preparar Unity para el funcionamiento remoto. Edit->Project Settings->Editor. Seleccionar Any Android Devices en el primer apartado.
  2. Asegurarnos de que hemos podido sacar una .apk compilada. 
  3. Asegurarnos de que el ordenador reconoce el teléfono.
El uso del remote es sólo para testeo de los inputs. No debe usarse para comprobar la interfaz, ya que lo que vemos en el dispositivo es la vista de juego de Unity, transmitida por streaming, y no un renderizado real. Lo bueno es que todos los inputs que recibe el dispositivo son enviados a Unity, por lo que podremos testear más rápido.

Comentarios