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.
Na Hierarquia, selecione o objeto.
No Inspetor, clique no botão Adicionar componente e selecione 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.)
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.
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.
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.
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.
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.
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.
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.