Capítulo 4 do Tutorial da Malha 101: Mover objetos e disparar animações com Interacionáveis de Malha e Física
Neste capítulo, você trabalhará com um modelo do parque eólico. Você aprenderá a usar Interacionáveis de Malha e Física para capturar e liberar Corpos Rígidos (nesse caso, turbinas eólicas) e configurar um gatilho de animação usando o Visual Scripting. Você encapsulará as coisas restringindo as turbinas eólicas para que elas só possam ser movidas dentro de uma área especificada.
Este capítulo é um pouco mais simples do que o que você fez no Capítulo 3---não há scripts e a rede é configurada para que a física tenha a mesma aparência para todos os avatares na sessão.
Há algumas coisas que precisamos fazer antes de começar a usar a primeira estação.
Reconfigurar a hierarquia
- Na Hierarquia, recolha o Capítulo3 GameObject e expanda o Capítulo4 GameObject.
Alterar o modo de exibição para exibir o Terraço do Capítulo 4 Sphere
Na experiência em Malha, o participante se moverá sem problemas do final do Capítulo 3 até o início do Capítulo 4 e estará devidamente localizado para iniciar as atividades de aprendizagem do Capítulo 4. No entanto, quando você saiu do modo de reprodução no final do Capítulo 3, você não foi colocado automaticamente com uma exibição para o modelo capítulo 4 na janela Cena . Vamos configurar essa exibição.
Na Hierarquia, selecione o GameObject chamado 4.1 -- Grab and Release.
Mova o cursor sobre a janela Cena e pressione a tecla F no teclado.
Isso centraliza a exibição no objeto 4.1 -- Grab and Release , mas provavelmente você não estará na posição de que precisamos.
Arraste, gire e/ou amplie o modo de exibição até ver as estações do Capítulo 4 à sua frente, conforme mostrado abaixo.
Estação 4.1: Captura e liberação
O objetivo para o participante deste capítulo do treinamento é mover turbinas eólicas da mesa para o oceano. Uma vez localizadas lá, as turbinas pegarão o vento do oceano, fazendo suas lâminas girarem e gerarem energia.
Na Hierarquia, expanda o 4.1 – Pegar e Lançar GameObject. Observe que ele contém três GameObjects de Turbina Eólica que estão localizados na mesa na cena.
Vamos adicionar funcionalidades de "capturar e liberar" ao WindTurbine1 para que os participantes possam movê-lo na Malha.
Na Hierarquia, selecione WindTurbine1.
No Inspetor, clique no botão Adicionar Componente e, em seguida, pesquise e adicione a Instalação Interacionável de Malha.
Dica
Uma explicação desse componente foi dada no Capítulo 3 deste tutorial.
No mesmo componente, clique na lista suspensa Tipo de Objeto e selecione Manipulador.
Verifique se o componente está ativo.
No componente Rigidbody, expanda a opção Restrições, se necessário, e, para as configurações congelar rotação, selecione X,Y e Z.
Isso impedirá que a turbina tombe se você colocá-la em uma superfície irregular.
Teste o trabalho
Salve o projeto e, em seguida, selecione o botão Reproduzir editor do Unity.
Observe que sempre que você entra no modo de jogo, seu ponto de partida na janela Jogo é o Terraço do Capítulo 3 Sphere. Para este capítulo, queremos estar no outro Sphere Terrace---o com os recursos do Capítulo 4. Felizmente, há uma maneira fácil de chegar lá.
Gire o modo de exibição para a direita até ver a caixa de informações Ir para o Capítulo 4 .
Vá até a caixa de informações e selecione o botão Teletransportar para o Capítulo 4 .
Depois de chegar ao Terraço do Capítulo 4 Sphere, mova o cursor sobre WindTurbine1 - sua forma mudará - e arraste a turbina ao redor da cena.
A turbina permanecerá vertical como resultado da ativação de suas restrições de Rotação de Congelamento .
Clique no botão Reproduzir do Editor do Unity para sair do modo de reprodução.
Você não precisa atualizar as outras duas turbinas eólicas.
Estação: gatilho de animação 4.2
A idéia aqui é que quando você arrasta uma turbina eólica sobre o oceano, o "vento" faz com que as lâminas da turbina girem. O que realmente acontece é que um cubo transparente chamado Gatilho de Animação está localizado sobre o oceano e atua como um volume de gatilho. Se você arrastar uma turbina eólica para o volume do gatilho, ela disparará um evento On Trigger Enter que inicia uma animação de folha giratória.
Para este capítulo, adicionaremos um script a um GameObject e habilitaremos a animação no script.
Na Hierarquia, expanda o 4.2 – Gatilho de Animação GameObject e selecione seu objeto filho chamado Gatilho de Animação.
Observe que você pode ver os contornos verdes do Colisor de Caixa do Gatilho de Animação do GameObject.
No Inspetor, navegue até o componente Colisor de Caixa e selecione É Gatilho.
Dica
Quando você seleciona É Gatilho, ele torna o objeto que o componente do colisor está anexado a um volume de gatilho.
- Na Hierarquia, navegue até Capítulo 4 4.1>– Pegar e Liberar e selecione WindTurbine1.
- Clique no botão Adicionar Componente e, em seguida, pesquise e adicione o Computador de Script.
Queremos que nosso script seja inserido, mas isso geralmente significa que você deve começar a criar um novo grafo de script do zero. Vamos pegar um atalho; deixe a opção Origem definida como Graph por enquanto. Anexaremos um grafo de script existente e o converteremos em um grafo inserido.
Clique no botão no campo Grafo e, na janela SelectSceneGraph , selecione SPWindTurbineScript.
Clique no botão Converter . Observe que isso remove a configuração do Graph e altera a opção Origem para Inserir.
Adicionar a animação de folha giratória ao grafo
Reserve um momento para examinar o grafo de script. Ele tem dois grupos: o grupo superior dispara a animação de rotação de folhas quando o usuário arrasta uma turbina eólica para o volume do gatilho e o grupo inferior interrompe a animação quando o usuário arrasta a turbina para fora do volume.
O grafo está quase configurado como queremos, mas há um problema restante. Os dois animadores: Definir nós de gatilho são definidos como Este ...
... mas Isso (em outras palavras, WindTurbine1) não tem a animação que queremos disparar. Vamos encontrá-lo.
Na Hierarquia, expanda WindTurbine1 e expanda seu objeto filho chamado WindTurbineBody. Isso revela o objeto filho chamado Windmill_Turbine_001:Propellors10.
Selecione Windmill_Turbine_001:Propellors10 e, em seguida, no Inspetor, observe que ele contém um componente Animador com o Controlador de Animador chamado WindTurbine1Propellers.
Esse Animador é o que fornecerá nossa animação.
Arraste o gameObject Windmill_Turbine_001:Propellors10 da Hierarquia e, em seguida, no grafo de script, solte-o no primeiro campo no nó Animator: Definir Gatilho localizado no primeiro grupo.
Arraste o Windmill_Turbine_001:Propellors10 GameObject da Hierarquia novamente e, em seguida, no grafo de script, solte-o no primeiro campo do nó Animator: Definir Gatilho localizado no segundo grupo.
O script agora está concluído.
Teste o trabalho
Salve o projeto e pressione o botão Reproduzir do Editor do Unity.
Conforme observado anteriormente, entrar no modo Reproduzir coloca seu avatar no Terraço do Chapter3 Sphere. Gire a cena para a direita e, em seguida, vá até o botão Teletransportar para o Capítulo 4 e pressione-a.
Agora você deve estar no Chapter4 Sphere Terrace. Arraste WindTurbine1 (lembrete: é o mais distante na parte de trás, com as lâminas vermelhas) sobre o oceano. Observe que as lâminas da turbina agora estão girando.
Arraste a mesma turbina para longe do oceano e coloque-a de volta na mesa. Observe que as lâminas da turbina param de girar.
Quando terminar de observar a animação, pressione o botão Reproduzir do Editor do Unity para sair do modo de reprodução.
Você não precisa atualizar as outras turbinas eólicas--- já fizemos isso por você.
Estação 4.3: Restringindo corpos
No momento, não há nenhuma restrição sobre onde um participante pode soltar uma turbina eólica. Esperamos que coloquem as turbinas no oceano onde podem pegar o vento, mas um participante poderia, por exemplo, acidentalmente soltar uma turbina no chão. Queremos evitar isso, para garantir que as turbinas só possam pousar na mesa ou no oceano, podemos configurar um campo de contenção. Esta é basicamente uma caixa transparente---as turbinas serão restritas ao interior da caixa.
Na Hierarquia, expanda o GameObject 4.3 – Corpos Restritos e selecione seu objeto filho chamado Campo de Contenção.
No Inspetor, selecione o botão Adicionar Componente e adicione o componente Campo de Contenção .
No componente Campo de Contenção , selecione o botão "+" à direita da opção Corpos afetados e, no menu pop-up, selecione a condição Nome do Objeto do Jogo .
Na caixa Começa com , digite "WindTurbine". Como todas as três turbinas eólicas em nossa cena começam com "WindTurbine", todas elas serão restritas ao Campo de Contenção.
Teste o trabalho
Salve o projeto e pressione o botão Reproduzir do Editor do Unity.
Conforme observado anteriormente, entrar no modo Reproduzir coloca seu avatar no Terraço do Chapter3 Sphere. Gire a cena para a direita e, em seguida, vá até o botão Teletransportar para o Capítulo 4 e pressione-a.
Agora você deve estar no Chapter4 Sphere Terrace. Arraste uma das turbinas eólicas para longe da mesa e do oceano e tente solte-a no chão. O campo de contenção impede que você faça isso.
Capítulo 4: Resumo
Neste capítulo, você adicionou recursos do Mesh que capacitam os participantes em sua experiência a fazer o seguinte:
Pegar e mover um objeto
Disparar uma animação quando o participante arrastar um objeto para um volume de gatilho
Remover um objeto somente em uma área específica que você especificou