Hola !

Durante estos ultimos meses HoloToolkit ha cambiado mucho. Estos cambios hacen que algunos de los ejemplos que he escrito ya no sean válidos. En el post de hoy, explicaré rápidamente como implementar la detección de manos con la versión actual de HoloToolkit.

Empezamos por lo básico con los siguientes pasos

  1. Create a 3D project in Unity3D
  2. Configure project to support HoloLens projects
  3. Clean Scene elements
  4. Import HoloToolkit package
  5. Add
    1. HololensCamera
    2. SpatialMapping
    3. CursorWithFeedback
  6. Add Empty element, Managers
    1. Add existing scripts
      1. Gaze Managers
      2. Gaze Stabilizer
      3. Input Manager
  7. Add Empty element, HoloCollection
    1. Add 3D elements
      1. Cube
        1. Position, x:0 y:0 z:2
        2. Rotation, x:0 y:0 z:0
        3. Scale, x:0.3 y:0.3 z:0.3
      2. AnchorText (from HoloToolkit)
        1. Position, x:0 y:0.35 z:2
        2. Rotation, x:0 y:0 z:0
        3. Scale, x:0.3 y:0.3 z:0.3
  8. Into the Manager collection
    1. Add script Text Debug Manager (later on the post)
      1. Drag the Anchor Text (7.1.2) into the Anchor Debug Text Property

Este es el proceso básico de creación de un proyecto de Hololens, lo que haremos ahora es crear un script que detecte alguna de las acciones con las manos del usuario de Hololens. Este script mostrará en modo debug estas acciones en el AnchorText que he agregado a la colección de Hologramas.

Para este ejemplo llamaré al script “TextDebugManager.cs“. El código del mismo es el siguiente

using HoloToolkit.Unity.InputModule;
using UnityEngine;

public class TextDebugManager : MonoBehaviour, IHoldHandler, IInputHandler
{

 public TextMesh AnchorDebugText;
 private string _debugTextHold = "";
 private string _debugTextInput = "";
 
 void Update()
 {
   UpdateText();
 }

 private void UpdateText()
 {
   if (AnchorDebugText != null)
     AnchorDebugText.text = string.Format(
       "Hold: {0}\nInput: {1}", _debugTextHold, _debugTextInput);
 }

 public void OnHoldStarted(HoldEventData eventData)
 {
   _debugTextHold = "OnHoldStarted";
 }

 public void OnHoldCompleted(HoldEventData eventData)
 {
   _debugTextHold = "OnHoldCompleted";
 }

 public void OnHoldCanceled(HoldEventData eventData)
 {
   _debugTextHold = "OnHoldCanceled";
 }

 public void OnInputUp(InputEventData eventData)
 {
   _debugTextInput = "OnInputUp";
 }

 public void OnInputDown(InputEventData eventData)
 {
   _debugTextInput = "OnInputDown";
 }
}

Dentro de la clase he implementado las interfaces “IHoldHandle“ e “IInputHandler“.  Luego se muetran las operaciones de estar interfaces en el Update() del script. De esta forma, podemos implementar un modelo de Debug en una app de Hololens de una forma rápida, y en este caso, para capturar las interacciones del usuario sobre los Hologramas.

Saludos @ Toronto

El Bruno

References

Leave a comment

Discover more from El Bruno

Subscribe now to keep reading and get access to the full archive.

Continue reading