Compartilhar via


Agarre, segure e jogue com interacionáveis

Visão geral

Mesh Interactables é um sistema para configurar objetos com scripts do Unity que define a interação com um comportamento de objeto ou avatar em tempo de execução. Os scripts definem as propriedades do objeto com as quais se pode interagir usando interagentes XRI. O kit de ferramentas Mesh contém scripts de diferentes tipos de objetos que podem ser definidos. Quando um projeto é executado, ele define todos os pré-fabricados e configurações necessários para que os objetos ou o avatar se comportem conforme definido. Se você quiser ver uma visualização aproximada de como seus objetos interativos ficarão quando forem executados no aplicativo Mesh, certifique-se de configurar o Modo de reprodução com emulação de malha. Observe que a funcionalidade de cinemática inversa vista no aplicativo Mesh não está disponível no modo Play com emulação de malha.

O componente Configuração interativa de malha

Para tornar um objeto interacionável, você deve adicionar o componente Configuração interativa de malha.

  1. Na Hierarquia, selecione o objeto.

  2. No Inspetor, clique no botão Adicionar componente e selecione Configuração interativa de malha.

    Uma captura de tela da caixa de diálogo Adicionar componente com a seleção do componente Configuração interativa de malha.

O componente é adicionado com sua propriedade padrão Tipo interacionável definida como Básico. (Os tipos de objeto serão explicados na próxima seção.)

Uma captura de tela do componente Configuração interativa de malha com Tipo de objeto definido como Interacionável.

As propriedades de um grupo de objetos que se comportam da mesma forma podem ser configuradas com um componente de configuração interativa de malha pai. As propriedades serão aplicadas a todos os filhos com rigidbodies em tempo de execução, adicionando automaticamente um componente Corpo interativo de malha a cada objeto filho. Talvez você queira adicionar o Corpo Interacionável de Malha manualmente para usar os interacionáveis de Malha com o Visual Scripting, como com eventos de interação ou para modificar a transformação de destino manipulável por meio do script visual.

Uma captura de tela do componente Corpo interativo de malha.

Observações:

  • O corpo interativo da malha permitirá que cada interacionável se comporte de forma independente.

  • Um corpo rígido deve ser adicionado a um objeto se você quiser que ele seja habilitado para física.

Obtendo ajuda

Nos componentes Configuração de malha interativa e Corpo interativo de malha, você pode clicar no botão "?" para navegar até uma página na documentação da malha que contém ajuda para o recurso ao qual o botão está conectado.

Uma captura de tela dos componentes interativos de malha com o botão de ajuda sensível ao contexto realçado.

Tipos de objetos interativos

Existem quatro tipos de objetos:

  • Basic
  • Manipulável
  • Equipável
  • Arremessável

Para escolher um tipo de objeto:

  • No componente Configuração interativa de malha, clique no menu suspenso Tipo interacionável e selecione uma das quatro opções.

Uma captura de tela das opções de menu Tipo de objeto no componente Corpo interativo de malha.

Basic

Como mencionado acima, esse é o tipo padrão. Quando o usuário passa o mouse ou seleciona o objeto, ele pode invocar retornos de chamada e outros scripts podem reagir. Por exemplo, se você tiver um botão que deseja usar para habilitar outro objeto, adicione esse tipo Interactable ao botão com um retorno de chamada OnSelected para habilitar esse outro objeto. O botão será totalmente interativo apenas adicionando este tipo e um colisor; você não terá que fazer mais nada.

Nota: Os outros três tipos interacionáveis - Manipulável, Equipável e Arremessável (explicado abaixo), têm os mesmos atributos do tipo Básico, mas com recursos adicionais.

Saiba mais sobre as configurações básicas de tipo de objeto

Manipulável

Você pode mover um objeto desse tipo à distância; Especificamente, você manipula sua transformação em tempo de execução e a move pelo espaço na extremidade de um raio do interagente. Os controles de atalho estão disponíveis para girar ou transladar o objeto. Para manipulação de objetos no aplicativo Mesh, você pode ativar as configurações de cinemática inversa para que a mão do avatar siga o objeto. Objetos manipuláveis não exigem um rigidbody, mas você deve adicionar um se quiser que os objetos tenham recursos físicos.

Uma captura de tela de uma experiência Mesh com uma cafeteira sendo manipulada.

Saiba mais sobre as configurações de tipo de objeto manipulável

Equipável

Você pode pegar um objeto desse tipo. Em termos de malha, dizemos que você "equipa" o objeto na mão do seu avatar. Para equipar um objeto no PC, clique no objeto ou pressione F enquanto o objeto estiver selecionado. Para equipar um objeto na Quest, pressione o botão 'Grip' enquanto o objeto é selecionado. Os objetos equipáveis contêm configurações para alvos de cinemática inversa para a pose do braço do seu avatar enquanto o objeto está equipado. Os alvos de cinemática inversa são um deslocamento do peito do avatar; Isso determina para onde a mão vai enquanto o objeto é segurado ou ativado.

Saiba mais sobre as configurações de tipo de objeto equipável

Arremessável

Como o nome indica, você pode pegar e jogar um objeto desse tipo. Depois de agarrar, você pode entrar no modo de mira pressionando e segurando o botão esquerdo do mouse. Isso permitirá que o braço do seu avatar siga o alvo do mouse; Para lançar o objeto, solte o botão esquerdo do mouse.

Uma captura de tela de um jogo de dardos com um dardo agarrado e lido para ser lançado.

Saiba mais sobre as configurações de tipo de objeto arremessável

Tornar os objetos interacionáveis com o Visual Scripting

Todos os componentes Interactables têm propriedades e métodos de interação disponíveis para Visual Scripting , portanto, você tem uma quantidade ilimitada de maneiras de fazê-los funcionar juntos. Para aproveitar isso, use o componente Corpo interacionável de malha dentro de um gráfico de script com um nó para uma propriedade disponível, como OnHovered ou OnSelected, conectado a um nó OnStateChanged . Por exemplo, o gráfico de script a seguir habilitará o cilindro enquanto o botão estiver pressionado e o desabilitará quando o botão for liberado. O botão é totalmente interativo apenas adicionando o script e um colisor; você não precisa fazer mais nada.

Uma captura de tela de um gráfico de script com um nó Corpo interativo de malha é selecionado.

Propriedades de script visual

Para todos os corpos interactivos:

  • IsHovered (somente leitura) – Se o avatar local está ou não passando o objeto.
  • IsSelected (somente leitura) – Se algum avatar está ou não selecionando o objeto. Ao executar no MeshBrowser, isso será conectado em rede.
  • IsSelectedLocally – Se o avatar local está ou não selecionando o objeto.
  • IsMine (somente leitura) – Verdadeiro para o último avatar a selecionar ou equipar o objeto.

Para equipáveis:

  • EquippedAt (somente leitura) - Onde este objeto está equipado - Nenhum, DefaultHand, RightHand, LeftHand. Ao executar no MeshBrowser, isso será conectado em rede.
  • EquipTime (somente leitura) – A que horas esse objeto foi equipado. Ao executar no MeshBrowser, isso será conectado em rede.
  • IsActivated (somente leitura) – Se esse objeto estiver no estado ativado. Válido apenas para objetos que não podem ser arremessados. Ao executar no MeshBrowser, isso será conectado em rede.
  • IsAiming (somente leitura) – Se o avatar local estiver no estado de mira enquanto segura este objeto. Válido apenas para arremessáveis.
  • IsThrowing (somente leitura) – se o avatar local estiver lançando ativamente o objeto. Válido apenas para arremessáveis.
  • IsEquipped (somente leitura) (somente leitura) – Se este objeto estiver equipado atualmente por um avatar. Ao executar no MeshBrowser, isso será conectado em rede.
  • IsThrowable – se esse objeto for arremessável.
  • ThrowVelocity – A velocidade para lançar o objeto quando ele é liberado.

Para manipuláveis para modificar a posição de destino:

  • Posição do alvo (somente leitura): Posição do alvo do corpo ao usar o modo de força padrão nas propriedades interativas da malha
  • Rotação do alvo (somente leitura): rotação do alvo do corpo ao usar o modo de força padrão nas propriedades interacionáveis da malha
  • Posição do acerto de raio (somente leitura): Posição do acerto de raio do interagente no corpo
  • Rotação de acerto de raio (somente leitura): A rotação do interagente em torno da direção do raio
  • Posição de destino modificada (leitura e gravação): usada para definir a nova posição de destino pelo script visual. Isso substituirá a posição de destino padrão. A prática recomendada é substituir esta propriedade:
    • Usando o estado ativado alterado da posição de destino. Nesse caso, o script visual disparará um fluxo somente quando o interagente e a nova posição forem alterados.
    • Usando na atualização tardia. Se você precisar alterar a transformação de destino em cada quadro, faça-o na atualização tardia para que a nova transformação de destino esteja disponível imediatamente no próximo quadro.
  • Rotação de destino modificada (leitura e gravação): usada para definir a nova rotação de destino pelo script visual. Isso substituirá a posição de destino padrão.

Próximas etapas