Hola !
Ahora que he encontrado un 2do set de Hololens para trabajar aquí en Toronto, llega el momento de volver a Unity3D y a HoloToolkit. Dentro del mismo, es momento de probar una de las features menos documentadas que hay: Sharing Holograms.
Una vez que hemos importado (de la forma correcta) el paquete de HoloToolkit Unity, podemos ver dentro de los Assets la carpeta Sharing.

Este es el elemento que debemos agregar a nuestro proyecto de Unity para que el mismo tenga capacidades de “Sharing” con otras apps en Hololens. En las propiedades de este elemento vemos que el mismo utiliza un par de clases interesantes:
- SharingStage.cs
- SharingSessionTracker.cs
- AutoJoinSession.cs
- CustomMessages.cs

Como siempre, al faltar documentación relevante, os recomiendo ver el código de las mismas ya que es la forma más simple de comprender cómo funciona esta funcionalidad. Por ahora solo remarcar las propiedades de [Sharing Stage]
- Client Role: define el tipo de cliente para una app de Sharing. Segun la documentación de la clase C#:
/// Set whether this app should be a Primary or Secondary client.
/// Primary: Connects directly to the Session Server, can create/join/leave sessions
/// Secondary: Connects to a Primary client. Cannot do any session management
- Server Address y Server Port: La dirección IP y puerto del servidor que se utiliza para coordinar el sharing de información entre varios devices
- Auto Discover Server: Solo con habilitar este check, nuestra app debería poder descubrir automáticamente un Sharing Server en la misma subnet. En mi caso, y tal vez por las restricciones de mi red local, no he podido descubrirlo automáticamente, por lo que he tenido que configurar a mano la dirección IP y el puerto.
Después de leer todo esto, llega el momento de preguntarse donde está Sharing Service. El server es un exe escondido en las entrañas del paquete de HoloToolkit.
$\HoloToolkit-Unity-master\External\HoloToolkit\Sharing\Server\SharingService.exe
Ahora ya podemos lanzar el executable y tener nuestro Sharing Service Up and Running.
Nota: Hay una opción para lanzar Sharing Service desde el menú de Unity. No he conseguido que funcione.

Ahora bien, más novedades, existen 2 formas de lanzar el Sharing Service
- local, funcionando en modo app
- servicio, funcionando como un servicio de Windows

Para este ejemplo lanzaré la app en modo local. En este momento podemos ver lo siguiente en la consola de comando

C:\Hololens\Sharing\Server>SharingService.exe -local
Running Sharing Service locally. Enter ‘q’ to quit.
SharingService: ** Logging Session Began at 23:24:59, 10-6-2016
SharingService: ***********************************
SharingService: ****** Sharing Service OnStart ******
SharingService: ***********************************
SharingService: Server Info:
Build Version: 1.1.0.0
Schema Version: 15
SharingService: Listening for session list connections on port 20602 of all network devices of the local machine.
SharingService: Local IP addresses are:
SharingService: 172.16.80.1
SharingService: 192.168.0.19
SharingService: 169.254.80.80
SharingService: Created Session “Default” with ID 0 on port 20601
Cuando lanzamos una app creada que utilize el Asset de Sharing, con los valores correctamente configurados, podremos ver que el server detecta una nueva sesión y comienza a mostrar logs sobre la misma.

Pues bien, en el siguiente post sobre Sharing espero poder mostrar como 2 apps comparten y trabajan sobre un mismo holograma!
Saludos @ Toronto
El Bruno
References
Like this:
Like Loading...