Punto de enfoque en Unity

Espacio de nombres:UnityEngine.XR.WSA
Tipo: HolographicSettings

Use el punto de enfoque para proporcionar HoloLens sugerencia sobre cómo estabilizar mejor los hologramas que se muestran actualmente.

Si quiere establecer el punto de enfoque en Unity, debe establecerlo en todos los fotogramas mediante HolographicSettings.SetFocusPointForFrame(). Cuando no se establece el punto de enfoque para un marco, se usa el plano de estabilización predeterminado.

Nota

De forma predeterminada, los nuevos proyectos de Unity tienen establecida la opción "Habilitar uso compartido de búfer de profundidad". Con esta opción, una aplicación de Unity que se ejecuta en un casco de escritorio inmersivo o en un HoloLens que ejecuta la actualización de abril de 2018 de Windows 10 (RS4) o posterior envía el búfer de profundidad a Windows para optimizar la estabilidad del holograma automáticamente, sin que la aplicación especifique un punto de enfoque:

  • En un casco de escritorio inmersivo, esto habilitará la reproducción basada en profundidad por píxel.
  • En un HoloLens que ejecuta Windows 10 actualización de abril de 2018 o posterior, analizará el búfer de profundidad para elegir automáticamente un plano de estabilización óptimo.

Cualquier enfoque debe proporcionar una calidad de imagen aún mejor sin que la aplicación haga un trabajo explícito para seleccionar un punto de enfoque para cada fotograma. Tenga en cuenta que si proporciona un punto de enfoque manualmente, invalidará el comportamiento automático descrito anteriormente y normalmente reducirá la estabilidad del holograma. Por lo general, solo debe especificar un punto de enfoque manual cuando la aplicación se ejecuta en un HoloLens que aún no se ha actualizado a la actualización de Windows 10 de abril de 2018.

Ejemplo

Hay muchas maneras de establecer el punto de enfoque, como sugieren las sobrecargas disponibles en la función estática SetFocusPointForFrame . A continuación se muestra un ejemplo sencillo para establecer el plano de foco en el objeto proporcionado para cada fotograma:

public GameObject focusedObject;
void Update()
{
    // Normally the normal is best set to be the opposite of the main camera's
    // forward vector.
    // If the content is actually all on a plane (like text), set the normal to
    // the normal of the plane and ensure the user does not pass through the
    // plane.
    var normal = -Camera.main.transform.forward;     
    var position = focusedObject.transform.position;
    UnityEngine.XR.WSA.HolographicSettings.SetFocusPointForFrame(position, normal);
}

Nota

El código simple anterior puede reducir la estabilidad del holograma si el objeto centrado termina detrás del usuario. Por lo general, se recomienda establecer Habilitar uso compartido de búfer de profundidad en lugar de especificar manualmente un punto de enfoque.

Siguiente punto de control de desarrollo

Si sigue el recorrido de desarrollo de Unity que hemos diseñado, se encuentra a punto de explorar las api y las funcionalidades de Mixed Reality plataforma. Desde aquí, puede continuar con el siguiente tema:

O bien puede ir directamente a la implementación de la aplicación en un dispositivo o emulador:

Puede volver a los puntos de control de desarrollo de Unity en cualquier momento.

Consulte también