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.
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.
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:
Una vez creado el proyecto añadiremos la librerÍa System.Windows.Forms:
Y la librería WindowsFormsIntegration.
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:
A nivel de code-behind (xaml.cs) añadiremos las siguientes líneas de código:
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.
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 Oliva
.NET Architect | Soluciones Microsoft | SOGETI ESPAÑA
0 comments on “WPF con Unity3D”