viernes, 16 de mayo de 2014

Unity3D Scripting: Unity3D dentro de Android (II)

Primera parte del tutorial: Unity3D dentro de Android


En primer lugar debemos tener Eclipse y el SDK de Android instalado, aconsejo encarecidamente por facilidad y ahorro en instalar plugins a Eclipse, descargar ADT, que es un Eclipse preparado ya para programar en Android.

Una vez descargado debemos instalar al menos la versión 2.3 de Android o una posterior ya que en las últimas versiones de Unity3D no está soportado las versiones inferiores a este y tampoco los que tengan un procesador inferior a ARM7 en las últimas versiones de Unity3D.

Una vez tengamos nuestro Eclipse con la SDK que queramos usar (Insisto, 2.3 o superior) crearemos un nuevo proyecto de Android.
Aquí nuestro nuevo proyecto
Pulsaremos next, después pulsaremos finish y ya tendremos creado el proyecto de ejemplo en el que añadiremos Unity.

El nombre de paquete se llama com.hagamosvideojuegos como el que usaremos en Unity3D, si bien puede tener otro nombre, para hacerlo mas simple. ambos estarán en un mismo paquete.

En este caso le he puesto que el mínimo requerido sea la versión 2.3 de Android como especifiqué anteriormente y la máxima sea la última que hay hoy día, la versión 4.4.

Hecho esto, nos generará automáticamente una carpeta con el proyecto de Android, copiaremos dicho proyecto y sustituiremos los archivos de nuestro proyecto de eclipse por estos.

Una vez sustituidos debemos volver a nuestro Eclipse y pulsar en Proyect -> Clean... y seleccionar el proyecto que queremos compilar.


Por último, este paso realmente es opcional en caso de haber habilitado la opción de "Start a build inmediatelly, pero para cubrirme en salud siempre lo hago y es pulsar en Proyect -> Build Proyect.

Como último paso vamos a crear nuestra clase Ejemplo dentro del paquete com.hagamosvideojuegos aunque realmente podríamos tener la clase en el paquete que queramos, pero por simple limpieza y organización del ejemplo de manera sencilla he preferido tener la clase que te genera Unity3D llamada UnityPlayerNativeActivity junto a nuestra nueva clase.

Veamos el código java que va a contener nuestro proyecto android para comunicarse con nuestro proyecto de android.

package com.hagamosvideojuegos;

import android.util.Log;

public class Ejemplo {
 public float numero;
    
 public Ejemplo()
 {
  numero = 0.3; // Al crear nuestra clase desde Unity3D le asignaremos por defecto este valor
 }
 
 public void Numero()
 {
  Log.d("Unity", String.valueOf(numero)); // Nos mostrará en LogCat el valor que tiene actualmente el número
 }
    
 public void Doble(float valor)
 {
  Log.d("Unity", String.valueOf(numero*2)); // Nos mostrará en LogCat el doble del número
 }
}
Con esta clase dentro de nuestro paquete, todo debería funcionar correctamente, por último decir que, desde android también podemos comunicarnos con Unity3D, no solamente extrayendo datos de java si no al revés, desde java extraer datos de Unity3D, pero eso lo veremos mas adelante.

Creo que no se me escapa nada, en caso de que algo no os funcione correctamente podéis dejar en los comentarios si ha fallado e intentaré corregirlo o ayudar en la medida de lo posible ;)

No hay comentarios:

Publicar un comentario