WPF con Unity3D

Hoy voy a dar un paso atrás tecnológicamente hablando. Como recordareis en uno de mis anteriores “post” os hable de como incluir Unity3D dentro de una aplicación UWP, pues hoy voy a explicaros cómo “embeber” o incrustar Unity3D dentro una aplicación WPF.

unitylogo

Vamos por partes:

1.- En primer lugar, una vez tengamos nuestro juego desarrollado tendremos que realizar unos pequeños ajustes en la configuración de Unity3D. Para ello vamos a Edit –>  Project Settings –> Player.

unitywpf

Debemos marcar las siguientes opciones:

  • Run in Background
  • Display Resolution Dialog –> Hidden By Default
  • Force Single Instance

Una vez ajustada la configuración generaríamos de nuevo nuestro ejecutable como siempre.

2.- En segundo lugar, nos crearemos una aplicación WPF desde Visual Studio a la que llamaremos WPF.Unity3DViewer:

unitywpf2

Una vez creado el proyecto añadiremos la librerÍa System.Windows.Forms:

unitywpf3

Y la librería WindowsFormsIntegration.

unitywpf4

Ambas librerías son originalmente de Windows Form pero gracias a la extensibilidad de WPF las podremos usar sin problema.

A nivel de vista (xaml) añadiremos un WindowsFormsHost y un Panel dentro de él:

unitywpf5

A nivel de code-behind (xaml.cs) añadiremos las siguientes líneas de código:

unitywpf6

Y listo ya tenéis vuestra aplicación WPF con Unity3D!

Como conclusión, comentar que esta integración podría aplicarse a todas aquellas aplicaciones orientadas a la gestión, las cuales trabajan con objetos de negocio que tienen su réplica en el mundo real. Por ejemplo, en una tienda de muebles podríamos montar un simulador 3D de los mismos como se puede ver en la imagen.

simulador3d

Para los más técnicos y amantes de las arquitecturas .NET tienen que pensar que Unity3D simplemente es un cliente más a nivel de capa de presentación si nos encontráramos en una arquitectura DDD.

Si alguien necesita un ejemplo práctico no dudéis en poneros en contacto conmigo.

 

Referencias:

https://docs.unity3d.com/Manual/class-PlayerSettingsStandalone.html

https://docs.unity3d.com/Manual/CommandLineArguments.html

https://msdn.microsoft.com/es-es/library/ms751761(v=vs.110).aspx

Descubre cómo SOGETI puede ayudarte con el desarrollo de proyectos de TI.

 

David OlivaDavid Oliva

.NET Architect | Soluciones Microsoft | SOGETI ESPAÑA

Responder

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. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s