En el artículo de hoy voy a hablar de la integración de Unity3D con otros sistemas. El artículo se divide en los partes:
- Integrar biblioteca de clases.
- Como llamar a un servicio web.
Antes de meternos en faena voy a contextualizar todo un poco. Unity3D soporta dos lenguajes de forma nativa para el scripting puesto que está basado en Mono:
- C#
- UnityScript
Integrar biblioteca de clases
En primer lugar creamos una nueva biblioteca de clases en Visual Studio. Para ello abrimos Visual Studio y elegimos Nuevo proyecto à Visual C# à Biblioteca de clases y llamamos al proyecto DLLTest:
NOTA: Es importante que la versión de framework que seleccionemos sea .NET Framework 3.5
A continuación añadiremos la clase MyUtilities.cs al proyecto:
Añadimos las siguientes líneas de código y compilamos el proyecto:
A continuación abrimos Unity y creamos un nuevo proyecto llamado DLLTest:
Creamos una carpeta llamada “Plugin” dentro de la carpeta Assets y colocamos la biblioteca de clases compilada en Visual Studio:
Creamos un C# script llamado “Test” y le añadimos las siguientes líneas de código:
Añadimos un nuevo GameObject y le adjuntamos el script “Test” que hemos creado previamente:
Por último, le damos al Play y veremos en la ventana Console como se va ejecutando las llamadas a nuestra biblioteca de clases.
Cómo llamar a un servicio web
El propósito de este punto es conectarnos desde Unitty3D a un servicio web. Para ello vamos a utilizar un sencillo servicio WebApi que expone un listado de productos en formato JSON, siguiendo los pasos del siguiente enlace.
Volvemos a Unity creamos un C# script llamado “ProductsController” y le añadimos las siguientes líneas de código:
Con estas líneas realizaremos la conexión al servicio y solicitaremos uno de los productos, ahora necesitaremos un deserealizador de JSON para parsear los resultados obtenidos. Para ello vamos al Asset Store e instalamos el asset JSON Object pulsando en el botón Download:
Nos aparecerá la siguiente ventana:
Añadimos las siguientes líneas de código al método “ExtractProducts”:
Añadimos un nuevo GameObject y le adjuntamos el script “ProductsController” que hemos creado previamente:
Por último, le damos al Play y veremos en la ventana Console como se ejecuta la llamada al servicio y la deserializanción del producto solicitado al servicio:
Extrapolando y profundizando en este mecanismo podríamos, por ejemplo, crear un simulador de productos en 3D.
Si nos lo planteamos dentro de una arquitectura DDD, Unity es un cliente más dentro de la capa de presentación puesto que puede hacer llamadas GET, POST y PUT a cualquier servicio web.
Referencias:
http://docs.unity3d.com/es/current/Manual/UsingDLL.html
http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web-api
Desubre cómo SOGETI puede ayudarte en la puesta en marcha de soluciones basadas en tecnologías Microsoft.
.NET Architect | Soluciones Microsoft | SOGETI ESPAÑA
0 comments on “Integración de bibliotecas de clases y llamadas a servicios web desde Unity3D”