Hola !
En el post de ayer compartí una solución para tener las siguientes capacidades en un proyecto de Hololens
- Realizar un scanner inicial del ambiente basado en tiempo y en cantidad de frames encontrados para piso y pared
- Se puede iniciar un proceso de Tap to Place sobre un holograma
- El proceso valida además si la posición a la que se quiere mover el holograma es válida.
- La validación es en primer lugar sobre mover a planos horizontales o verticales y luego si hay espacio para el holograma
Para la acción de análisis del entorno, he creado la clase “InitialScanManager.cs”. La misma puede ser agregada en un Empty Game Object o en uno existente y las propiedades principales a tener en cuenta son:
- Limit Scanning by Time y Scan Time, definen si el proceso de scan se realiza en base a N segundos de escaneo
- Minimum Floor y Minimum Wall definen la cantidad mínima de frames que se deben encontrar en el suelo y en un muro
- Player, define el holograma o grupo de hologramas que se ocultarán al comienzo del scan y se activarán al terminar el mismo
- DebugTextPlayer, opcional, un TextMesh utilizado para acciones de Debug
Por otra parte tenemos la clase “TapToPlacePlayer.cs”, que es debe asociarse al elemento que queremos que tenga la capacidad de “Tap to Place”. Las propiedades principales a tener en cuenta son:
- Placeable Bounds y Non Placeable Bounds Materials es el material con el que se mostrará un collider cuando estemos posicionando el holograma
- Placeable Shadow y Non Placeable Shadow Materials es el material con el que se mostrará la posición final que tendrá el holograma sobre el que estamos trabajando
- Display Shadow define si queremos utilizar las propiedades anteriores
- Placement Surface define si queremos soportar el posicionamiento en modo horizontal o vertical, es decir en muros o en el piso
- DebugTextPlayer, opcional, un TextMesh utilizado para acciones de Debug
El código completo del ejemplo se puede descargar desde aquí (link).
Saludos @ Toronto
El Bruno
References
- GitHub, HoloToolkit
- GitHub, HoloToolkit Unity
El Bruno, my posts
- How to Import the HoloToolkit Unity
- How to place a Hologram using AirTap and HoloToolkit
- Creating a menu with options with HoloToolkit
- Using voice commands to display a menu with HoloToolkit
- How to create a 3D text always visible using HoloToolkit
- How to create a HUD (3D text always visible without HoloToolkit)
- How to detect hands using HoloToolkit
- Windows 10, Xbox One Controller, Bluetooth and some lessons learned
- How to use Fire Buttons actions with an XBoxOne Controller
- HoloToolkit compiled packages for Unity3D in GitHub
- How to detect AirTap and Click actions using HoloToolkit
- Detect user hand interactions using #HoloToolkit
- Moving and rotating Holograms using an XBoxOne Controller
- Spatial Understanding vs Spatial Mapping, and a tutorial on how to use them
- Spatial Mapping, tutorial to search for simple surfaces, like a 1×1 tile on the floor
- Alternative to fix the Tap to Place and World Anchor issue, until the official release of HoloToolkit for Visual Studio 2017 and Unity3D 5.6