es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo obtener el colisionador de malla espacial correctamente en Unity?

Estoy tratando de obtener el punto más cercano en la malla espacial obtenida de MS Hololens.
Podía obtener el colisionador SpatialAwarenessMeshObject y el gameObject fácilmente con esta referencia (https://learn.microsoft.com/en-us/windows/mixed-reality/mrtk-unity/features/spatial-awareness/usage-guide?view=mrtkunity-2021-01)

Está funcionando, pero no es lo que esperaba. El punto más cercano calculado no es correcto.
¿Lo hice bien?
Y por favor, infórmeme sobre las diferencias entre el método OnObservationAdded y el método OnObservationUpdated.

introducir descripción de la imagen aquí
Script LineManager.cs: Quiero dibujar una línea desde un punto determinado hasta el punto más cercano en la malla espacial. Este script intenta obtener el Collider del SpatialAwarenessMeshObject y encontrar el punto más cercano en él.

introducir descripción de la imagen aquí
Script MeshManager.cs: Este script implementa el método virtual de SpatialAwarenessHandler. Realmente no sé qué significa cada método virtual.

Gracias.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para obtener el punto más cercano en la malla espacial obtenida desde MS Hololens, debes obtener el Collider del SpatialAwarenessMeshObject y encontrar el punto más cercano en él. El fragmento de código en el script LineManager.cs parece correcto para lograr este objetivo. Sin embargo, mencionaste que el punto más cercano calculado no es correcto. Podría ser un problema en la implementación del algoritmo utilizado para encontrar el punto más cercano o un problema con los vértices de la malla que se está utilizando.

    En cuanto a las diferencias entre los métodos OnObservationAdded y OnObservationUpdated, estos métodos se llaman cuando el sistema de conciencia espacial detecta cambios en el entorno. OnObservationAdded se llama cuando se detecta una nueva superficie, mientras que OnObservationUpdated se llama cuando se actualiza una superficie existente. Puedes utilizar estos métodos para actualizar la lógica de tu aplicación o reflejar cambios en la escena según corresponda.

    Finalmente, el script MeshManager.cs implementa los métodos virtuales de SpatialAwarenessHandler. Estos métodos virtuales proporcionan ganchos que el sistema puede usar para notificar a tu aplicación cuando ocurran eventos específicos, como la actualización de la malla. Al implementar estos métodos, puedes personalizar cómo tu aplicación reacciona a los cambios en el entorno.

Comments are closed.