Dev & AM

Integración de bibliotecas de clases y llamadas a servicios web desde Unity3D

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:

biblioteca de clases1

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:

biblioteca de clases2

Añadimos las siguientes líneas de código y compilamos el proyecto:

biblioteca-de-clases3

A continuación abrimos Unity y creamos un nuevo proyecto llamado DLLTest:

biblioteca-de-clases4blog

Creamos una carpeta llamada “Plugin” dentro de la carpeta Assets y colocamos la biblioteca de clases compilada en Visual Studio:

biblioteca-de-clases5blog

Creamos un C# script llamado “Test” y le añadimos las siguientes líneas de código:

biblioteca-de-clases6blog

Añadimos un nuevo GameObject y le adjuntamos el script “Test” que hemos creado previamente:

biblioteca-de-clases7blog

Por último, le damos al Play y veremos en la ventana Console como se va ejecutando las llamadas a nuestra biblioteca de clases.

biblioteca-de-clases8blog

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:

servicio-web1blog

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:

servicio-web2blog

Nos aparecerá la siguiente ventana:

servicio-web3blog

Añadimos las siguientes líneas de código al método “ExtractProducts”:

servicio-web4blog

Añadimos un nuevo GameObject y le adjuntamos el script “ProductsController” que hemos creado previamente:

servicio-web5blog

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:

servicio-web6blog

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.

David OlivaDavid Oliva

.NET Architect | Soluciones Microsoft | SOGETI ESPAÑA

Acerca de ITblogsogeti

Sogeti es una compañía tecnológica perteneciente al Grupo Capgemini y especialista en: Testing y Calidad de Software y Soluciones Microsoft. En Sogeti entendemos la importancia de obtener el máximo valor empresarial de sus sistemas de IT, por ello somos líderes mundiales en Testing & QA.

0 comments on “Integración de bibliotecas de clases y llamadas a servicios web desde Unity3D

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

A %d blogueros les gusta esto: