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.

Evitar que los objetos virtuales se encuentren con paredes físicas en respuesta al TranslationGesture en RealityKit.

Estoy utilizando RealityKit para colocar objetos virtuales en una habitación y utilizando gestos para arrastrarlos y rotarlos en el espacio físico.

Después de colocar un objeto virtual (una silla) desde un archivo USDZ en un Plano horizontal, configuro los gestos de la siguiente manera:

modelEntity.generateCollisionShapes(recursive: true)
arView?.installGestures([.translation, .rotation], for: modelEntity)

La traducción y la rotación parecen funcionar bien, pero cuando arrastro el objeto virtual hacia una pared, parece “entrar” en la pared en lugar de detenerse en ella.
¿Hay alguna manera de lograr esto en RealityKit? ¿Necesito implementar mis propios reconocedores de gestos y realizar una colisión de rayos en cada llamada de gesto de arrastre?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que la detección de colisiones del objeto virtual con el entorno físico no está funcionando como se esperaba. Para lograr el comportamiento deseado de que el objeto virtual se detenga en la pared, es posible que deba implementar raycasting utilizando GestureRecognizers. Esto le permite detectar colisiones con el entorno físico y ajustar la posición del objeto virtual en consecuencia. Puede utilizar la funcionalidad de raycasting incorporada en RealityKit para lograr esto. Puede implementarlo creando una RaycastRequest en cada llamada de gesto de desplazamiento y luego actualizar la posición del objeto virtual en función del punto de intersección entre el rayo y el entorno físico.

Comments are closed.