Agarrar, mantener y producir con interactables

Información general

Mesh Interactables es un sistema para configurar objetos con scripts de Unity que definen la interacción con un comportamiento de objeto o avatar en tiempo de ejecución. Los scripts definen las propiedades del objeto con las que se puede interactuar mediante los interactores XRI. El kit de herramientas de Mesh contiene scripts de diferentes tipos de objetos que se pueden definir. Cuando se ejecuta un proyecto, configura todos los objetos prefabricados y valores necesarios para que los objetos o el avatar se comporten según se define. Si quiere ver una vista previa aproximada de lo que tendrán los objetos interactivos y se sentirán como cuando se ejecuten en la aplicación Mesh, asegúrese de configurar el modo de reproducción con emulación de malla. Tenga en cuenta que la funcionalidad de IK que se ve en la aplicación Mesh no está disponible en modo de reproducción con emulación de malla.

Componente de configuración interactable de Mesh

Para que un objeto sea interactuable, debe agregar el componente Mesh Interactable Setup .

  1. En Hierarchy (Jerarquía), seleccione el objeto .

  2. En el Inspector, haga clic en el botón Agregar componente y, a continuación, seleccione Mesh Interactable Setup (Configuración interactuable de malla).

    Captura de pantalla del cuadro de diálogo Agregar componente con el componente Mesh Interactable Setup (Configurar malla interactuable) seleccionado.

El componente se agrega con su propiedad Type interactable predeterminada establecida en Basic. (Los tipos de objeto se explicarán en la sección siguiente).

Captura de pantalla del componente Mesh Interactable Setup con el tipo de objeto establecido en Interactable.

Las propiedades de un grupo de objetos que se comportan igual se pueden configurar con un componente primario de configuración interactable de Malla. Las propiedades se aplicarán a todos los elementos secundarios con elementos rígidos en tiempo de ejecución agregando automáticamente un componente Mesh Interactable Body a cada objeto secundario. Es posible que quiera agregar manualmente el cuerpo interactable de malla para usar los interactables de malla con Visual Scripting, como con eventos de interacción o para modificar la transformación de destino manipulable a través del script visual.

Captura de pantalla del componente Mesh Interactable Body (Cuerpo interactivo de malla).

Notas:

  • Mesh Interactable Body permitirá que cada interacción se comporte de forma independiente.

  • Un cuerpo rígido debe agregarse a un objeto si quieres que sea físico habilitado.

Ayuda

En la configuración de Mesh Interactables y los componentes del cuerpo interactivo de malla, puede hacer clic en el botón "?" para ir a una página de la documentación de Mesh que contiene ayuda para la característica a la que está conectado el botón.

Captura de pantalla de los componentes interactables de malla con el botón de ayuda contextual resaltado.

Tipos de objetos interactivos

Hay cuatro tipos de objeto:

  • Básico
  • Manipulable
  • Equippable
  • Throwable

Para elegir un tipo de objeto:

  • En el componente Mesh Interactable Setup ,haga clic en la lista desplegable Tipo interactable y, a continuación, seleccione una de las cuatro opciones.

Captura de pantalla de las opciones de menú Tipo de objeto en el componente Cuerpo interactivo de malla.

Básico

Como se mencionó anteriormente, este es el tipo predeterminado. Cuando el usuario mantiene el puntero sobre o selecciona el objeto, puede invocar devoluciones de llamada y otros scripts pueden reaccionar. Por ejemplo, si tiene un botón que desea usar para habilitar otro objeto, agregue este tipo interactable al botón con una devolución de llamada OnSelected para habilitar ese otro objeto. El botón será totalmente interactuable simplemente agregando este tipo y un colisionador; no tendrás que hacer nada más.

Nota: Los otros tres tipos interactivos: Manipulable, Equippable y Throwable (explicado a continuación), tienen los mismos atributos que el tipo Básico, pero con características adicionales.

Más información sobre la configuración básica del tipo de objeto

Manipulable

Puede mover un objeto de este tipo desde una distancia; en concreto, se manipula su transformación en tiempo de ejecución y se mueve a través del espacio al final de un rayo de interactor. Los controles abreviados están disponibles para girar o traducir el objeto. Para la manipulación de objetos en la aplicación Mesh, puede activar la configuración de IK para que la mano del avatar siga el objeto . Los objetos manipulables no requieren un cuerpo rígido, pero debe agregar uno si desea que los objetos tengan capacidades físicas.

Captura de pantalla de una experiencia de malla con una cafetera que se está manipulando.

Más información sobre la configuración del tipo de objeto manipulable

Equippable

Puede obtener un objeto de este tipo. En términos de Malla, decimos que "equipa" el objeto a la mano de su avatar. Para equipar un objeto en el EQUIPO, haga clic en el objeto o presione F mientras el objeto está seleccionado. Para equipar un objeto en la misión, presione el botón 'Grip' mientras se selecciona el objeto. Los objetos equipables contienen configuraciones para destinos IK para la posición del brazo del avatar mientras el objeto está equipado. Los objetivos IK son un desplazamiento del pecho del avatar; esto determina dónde va la mano mientras se mantiene o activa el objeto.

Más información sobre la configuración del tipo de objeto Equippable

Throwable

Como indica el nombre, puede agarrar y producir un objeto de este tipo. Después de agarrar, puede entrar en el modo de objetivo presionando y manteniendo presionado el botón izquierdo del mouse. Esto permitirá que el brazo del avatar siga el objetivo del mouse; para iniciar el objeto, suelte el botón izquierdo del mouse.

Captura de pantalla de un juego de dardos con un dardo agarrado y leído para ser lanzado.

Más información sobre la configuración del tipo de objeto Throwable

Hacer que los objetos se puedan interactuar con Visual Scripting

Todos los componentes interactables tienen propiedades y métodos de interacción disponibles para Visual Scripting , por lo que tiene una cantidad ilimitada de formas de hacer que funcionen juntos. Para aprovechar esto, use el componente Mesh Interactable Body dentro de un grafo de script con un nodo a una propiedad disponible, como OnHovered o OnSelected, enlazada a un nodo OnStateChanged . Por ejemplo, el siguiente gráfico de script habilitará el cilindro mientras se presiona el botón y lo deshabilitará cuando se libere el botón. El botón es totalmente interactuable simplemente agregando el script y un colisionador; no tienes que hacer nada más.

Una captura de pantalla de un grafo de script con un cuerpo interactable de malla es el nodo Seleccionado.

Propiedades de scripting visual

Para todos los cuerpos interactables:

  • IsHovered (solo lectura): indica si el avatar local mantiene el puntero sobre el objeto.
  • IsSelected (solo lectura): indica si algún avatar está seleccionando el objeto o no. Cuando se ejecuta en MeshBrowser, se realizará una red.
  • IsSelectedLocally : indica si el avatar local está seleccionando el objeto o no.
  • IsMine (solo lectura): true para que el último avatar seleccione o equipe el objeto.

Para Equippables:

  • EquippedAt (solo lectura): donde este objeto está equipado: None, DefaultHand, RightHand, LeftHand. Cuando se ejecuta en MeshBrowser, se realizará una red.
  • EquipTime (solo lectura): hora en que este objeto estaba equipado. Cuando se ejecuta en MeshBrowser, se realizará una red.
  • IsActivated (solo lectura): si este objeto está en estado activado. Solo es válido para los objetos que no se pueden producir. Cuando se ejecuta en MeshBrowser, se realizará una red.
  • IsAiming (solo lectura): si el avatar local está en estado de objetivo mientras mantiene este objeto. Solo es válido para los iniciables.
  • IsThrowing (solo lectura): si el avatar local está iniciando activamente el objeto. Solo es válido para los iniciables.
  • IsEquipped (solo lectura) (solo lectura): si este objeto está equipado actualmente por un avatar. Cuando se ejecuta en MeshBrowser, se realizará una red.
  • IsThrowable : si se puede producir este objeto.
  • ThrowVelocity : la velocidad para iniciar el objeto cuando se libera.

Para que los manipulables modifiquen la posición de destino:

  • Posición de destino (solo lectura): posición de destino del cuerpo cuando se usa el modo de fuerza predeterminada en propiedades interactuables de malla
  • Rotación de destino (solo lectura): rotación de destino del cuerpo cuando se usa el modo de fuerza predeterminada en propiedades interactables de malla
  • Posición de golpe de rayo (solo lectura): posición del golpe de conversión de rayos del interactor en el cuerpo
  • Rotación de aciertos de rayos (solo lectura): rotación del interactor alrededor de la dirección del rayo
  • Posición de destino modificada (lectura y escritura): se usa para establecer la nueva posición de destino por el script visual. Esto invalidará la posición de destino predeterminada. El procedimiento recomendado es invalidar esta propiedad:
    • Uso de On State Changed of Target Position(Usar al cambiar el estado de la posición de destino). En este caso, el script visual activará un flujo solo cuando el interactor y la nueva posición haya cambiado.
    • Uso de la actualización tardía. Si necesita cambiar la transformación de destino en cada fotograma, hágalo en actualización tardía para que la nueva transformación de destino esté disponible inmediatamente en el siguiente fotograma.
  • Rotación de destino modificada (lectura y escritura): se usa para establecer la nueva rotación de destino por parte del script visual. Esto invalidará la posición de destino predeterminada.

Pasos siguientes