Partilhar via


Agarre, segure e jogue com Interactables

Descrição geral

Mesh Interactables é um sistema para configurar objetos com scripts 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 que podem ser interagidas usando interatores XRI. O kit de ferramentas Mesh contém scripts de diferentes tipos de objeto que podem ser definidos. Quando um projeto é executado, ele configura todos os pré-fabricados e configurações necessárias para que os objetos ou o avatar se comportem conforme definido. Se você quiser ver uma visualização aproximada de como seus objetos interacionáveis ficarão quando forem executados no aplicativo Mesh, certifique-se de configurar o Modo de Reprodução com Emulação de Mesh. Observe que a funcionalidade IK vista no aplicativo Mesh não está disponível no Modo de reprodução com emulação de malha.

O componente Mesh Interactable Setup

Para tornar um objeto interactable, você deve adicionar o componente Mesh Interactable Setup .

  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 Interactable Type definida como Basic. (Os tipos de objeto serão explicados na próxima seção.)

Uma captura de tela do componente Mesh Interactable Setup com Object Type definido como Interactable.

As propriedades de um grupo de objetos que se comportam da mesma forma podem ser configuradas com um componente pai da Instalação Interativa de Malha. As propriedades serão aplicadas a todas as crianças com rigidbodies em tempo de execução, adicionando automaticamente um componente Mesh Interactable Body a cada objeto filho. Você pode adicionar Mesh Interactable Body manualmente para usar Mesh interactables com 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 Mesh Interactable Body.

Notas:

  • Mesh Interactable Body permitirá que cada interactable 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.

Obter ajuda

Nos componentes Mesh Interactables Setup e Mesh Interactable Body, você pode clicar no botão "?" para navegar até uma página na documentação do Mesh que contém ajuda para o recurso ao qual o botão está conectado.

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

Tipos de objeto interacionáveis

Existem quatro tipos de objetos:

  • Básica
  • Manipulável
  • Equipável
  • Arremessável

Para escolher um tipo de objeto:

  • No componente Mesh Interactable Setup, clique na lista suspensa Interactable Type e selecione uma das quatro opções.

Uma captura de tela das opções do menu Tipo de objeto no componente Corpo interacionável de malha.

Básica

Como mencionado acima, este é o tipo padrão. Quando o usuário passa o mouse sobre 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 interacionável apenas adicionando este tipo e um colisor; você não terá que fazer mais nada.

Nota: Os outros três tipos Interactable - Manipulável, Equippable e Throwable (explicado abaixo), têm os mesmos atributos que o tipo Basic, mas com recursos adicionais.

Saiba mais sobre 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 move-a pelo espaço na extremidade de um raio interator. Os controles de atalho estão disponíveis para girar ou traduzir o objeto. Para manipulação de objetos no aplicativo Mesh, você pode ativar as configurações de IK para que a mão do avatar siga o objeto. Objetos manipuláveis não exigem um corpo rígido, 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 Mesh, 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 está selecionado. Para equipar um objeto na Missão, pressione o botão 'Grip' enquanto o objeto está selecionado. Os objetos equipáveis contêm configurações para alvos IK para a pose do braço do seu avatar enquanto o objeto está equipado. Os alvos IK 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 Equippable

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 jogado.

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

Tornar os objetos interacionáveis com o Visual Scripting

Todos os componentes Interactables têm propriedades de interação e métodos disponíveis para Visual Scripting para que você tenha uma quantidade ilimitada de maneiras de fazê-los trabalhar juntos. Para aproveitar isso, use o componente Mesh Interactable Body 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 ativará o cilindro enquanto o botão for pressionado e o desativará quando o botão for liberado. O botão é totalmente interacionável 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ó Mesh Interactable body Is Selected.

Propriedades do Visual Scripting

Para todos os organismos interativos:

  • IsHovered (somente leitura) – Se seu avatar local está ou não pairando sobre o objeto.
  • IsSelected (somente leitura) – Se algum avatar está ou não selecionando o objeto. Ao executar no MeshBrowser isso será colocado 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 Equippables:

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

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

  • Posição de destino (somente leitura): Posição de destino do corpo ao usar o Modo de Força Padrão em Propriedades Interacionáveis de Malha
  • Rotação de destino (somente leitura): rotação de destino do corpo ao usar o Modo de Força Padrão em Propriedades Interacionáveis de Malha
  • Ray Hit Position (somente leitura): Posição do ray-cast hit do interator no corpo
  • Ray Hit Rotation (somente leitura): A rotação do interator 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 On State Changed of Target Position. Neste caso, o script visual acionará um fluxo somente quando o interator e a nova posição tiverem mudado.
    • Usando a atualização tardia. Se você precisar alterar a transformação de destino em cada quadro, faça-o em 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óximos passos