Tutorial do Mesh 101 Capítulo 4: Mover objetos e acionar animações com Interacionáveis e Física do Mesh
Neste capítulo, irá trabalhar com um modelo do parque eólico. Irá aprender a utilizar o Mesh Interactables and Physics para agarrar e libertar Corpos Rígidos (neste caso, turbinas eólicas) e configurar um acionador de animação com o Scripting Visual. Vai embrulhar as coisas restringindo as turbinas eólicas para que só possam ser movidas dentro de uma área especificada.
Este capítulo é um pouco mais simples do que fez no Capítulo 3---não há scripts e a rede está configurada para que a física fique igual a todos os avatares na sessão.
Há algumas coisas que temos de fazer antes de começar a trabalhar com a primeira estação.
Reconfigurar a Hierarquia
- Na Hierarquia, feche o GameObject do Capítulo3 e, em seguida, expanda o GameObject capítulo4 .
Alterar a vista para apresentar o Terraço do Capítulo 4 do Sphere
Na experiência do Mesh, o participante passará sem problemas do fim do Capítulo 3 até ao início do Capítulo 4 e estará devidamente localizado para iniciar as actividades de aprendizagem do Capítulo 4. No entanto, quando saiu do Modo de reprodução no final do Capítulo 3, não foi colocado automaticamente com uma vista para o modelo capítulo 4 na janela Cena . Vamos configurar essa vista.
Na Hierarquia, selecione o GameObject com o nome 4.1 - Grab e Release.
Mova o cursor sobre a janela Cena e, em seguida, prima a tecla F no teclado.
Isto centra a vista no objeto 4.1 - Grab e Release , mas provavelmente não estará na posição de que precisamos.
Arraste, rode e/ou amplie a vista até ver as estações do Capítulo 4 à sua frente, conforme mostrado abaixo.
Estação 4.1: Agarrar e Libertar
O objetivo do participante neste capítulo do treino é mover turbinas eólicas do topo da mesa para o oceano. Uma vez localizadas lá, as turbinas apanharão o vento do oceano, fazendo com que as suas lâminas rodem e gerem energia.
Na Hierarquia, expanda a versão 4.1 - Grab e Release GameObject. Tenha em atenção que contém três GameObjects de Turbina Eólica que estão localizados no topo da tabela no cenário.
Vamos adicionar capacidades de "agarrar e libertar" ao WindTurbine1 para que os participantes possam movê-lo no Mesh.
Na Hierarquia, selecione WindTurbine1.
No Inspetor, clique no botão Adicionar Componente e, em seguida, procure e adicione a Configuração Interacionável do Mesh.
Dica
Foi dada uma explicação sobre este componente no Capítulo 3 deste tutorial.
No mesmo componente, clique no menu pendente Tipo de Objeto e, em seguida, selecione Manipulador.
Certifique-se de que o componente está ativo.
No componente Rigidbody, expanda a opção Restrições, se necessário, e, em seguida, para as definições Fixar Rotação, selecione X,Y e Z.
Isto impedirá que a turbina vire se a colocar numa superfície irregular.
Testar o seu trabalho
Guarde o projeto e, em seguida, selecione o botão Reproduzir do Editor do Unity.
Tenha em atenção que sempre que entrar no modo de Jogo, o ponto de partida na janela Jogo é o Terraço do Capítulo 3 do Sphere. Para este capítulo, queremos estar no outro Terraço do Sphere---o com as funcionalidades do Capítulo 4. Felizmente, há uma maneira fácil de chegar lá.
Rode a vista para a direita até ver a caixa de informações Ir para o Capítulo 4 .
Aceda à caixa de informações e, em seguida, selecione o botão Teleportar para o Capítulo 4 .
Depois de chegar ao Terraço do Capítulo 4 do Sphere, mova o cursor sobre WindTurbine1 - a sua forma mudará - e, em seguida, arraste a turbina ao redor da cena.
A turbina permanecerá vertical como resultado da ativação das restrições de Fixar Rotação .
Clique no botão Reproduzir do Editor do Unity para sair do Modo de reprodução.
Não precisa de atualizar as outras duas turbinas eólicas- já fizemos isso por si.
Estação: Acionador de Animação 4.2
A ideia aqui é que quando arrastamos uma turbina eólica sobre o oceano, o "vento" faz com que as lâminas da turbina rodem. O que realmente acontece é que um cubo transparente chamado Acionador de Animação está localizado sobre o oceano e atua como um volume de acionador. Se arrastar uma turbina eólica para o volume do acionador, este desativa um evento Ao Ativar Enter que inicia uma animação de painel giratório.
Neste capítulo, vamos adicionar um script a um GameObject e, em seguida, ativar a animação no script.
Na Hierarquia, expanda o GameObject 4.2 - Acionador de Animação e, em seguida, selecione o respetivo objeto subordinado denominado Acionador de Animação.
Tenha em atenção que pode ver os contornos verdes do Colisor de Caixa do GameObject do Acionador de Animação .
No Inspetor, navegue para o componente Colisor de Caixas e, em seguida, selecione É Acionador.
Dica
Quando seleciona É Acionador, torna o objeto que o componente collider está ligado a um volume de acionador.
- Na Hierarquia, navegue para Capítulo 4>4.1 - Agarrar e Libertar e, em seguida , selecione WindTurbine1.
- Clique no botão Adicionar Componente e, em seguida, procure e adicione Máquina de Script.
Queremos que o nosso script seja incorporado, mas isso normalmente significa que tem de começar a criar um novo gráfico de script do zero. Vamos fazer um atalho; deixe a opção Origem definida como Gráfico por agora. Vamos anexar um gráfico de script existente e, em seguida, convertê-lo num gráfico incorporado.
Clique no botão no campo Gráfico e, em seguida, na janela SelectSceneGraph, selecioneSPWindTurbineScript.
Clique no botão Converter . Tenha em atenção que esta ação remove a definição do Gráfico e altera a opção Origem para Incorporar.
Adicionar a animação do painel giratório ao gráfico
Dedique algum tempo a examinar o gráfico de scripts. Tem dois grupos: o grupo superior aciona a animação que gira o painel quando o utilizador arrasta uma turbina eólica para o volume do acionador e o grupo inferior para a animação quando o utilizador arrasta a turbina para fora do volume.
O gráfico está quase configurado como queremos, mas ainda há um problema. Os dois animadores: definir nós de acionador estão definidos como Este ...
... mas isto (por outras palavras, WindTurbine1) não tem a animação que queremos acionar. Vamos encontrá-la.
Na Hierarquia, expanda WindTurbine1 e, em seguida, expanda o objeto subordinado denominado WindTurbineBody. Isto revela o objeto subordinado com o nome Windmill_Turbine_001:Hélices10.
Selecione Windmill_Turbine_001:Hélices10 e, em seguida, no Inspetor, tenha em atenção que contém um componente do Animator com o Controlador de Animador denominado WindTurbine1Propellers.
Este Animator é o que irá fornecer a nossa animação.
Arraste o Windmill_Turbine_001:Hélices10 GameObject da Hierarquia e, em seguida, no gráfico de scripts, largue-o no primeiro campo no Animator: Definir Nó do Acionador localizado no primeiro grupo.
Arraste novamente o Windmill_Turbine_001:Hélices10 GameObject da Hierarquia e, em seguida, no gráfico de scripts, largue-o no primeiro campo no nó Animator: Definir Acionador localizado no segundo grupo.
O script está agora concluído.
Testar o seu trabalho
Guarde o projeto e, em seguida, prima o botão Reproduzir do Editor do Unity.
Como indicado anteriormente, entrar no modo de Reprodução coloca o seu avatar no Terraço do Capítulo3 do Sphere. Rode a cena para a direita e, em seguida, aceda ao botão Teleportar para o Capítulo 4 e prima-a.
Agora deve estar no Terraço do Capítulo4 do Sphere. Arraste WindTurbine1 (lembrete: é o mais distante na parte de trás, com as lâminas vermelhas) sobre o oceano. Tenha em atenção que as lâminas da turbina estão agora a girar.
Arraste a mesma turbina para longe do oceano e coloque-a novamente no topo da mesa. Tenha em atenção que as lâminas da turbina param de girar.
Quando terminar de observar a animação, prima o botão Reproduzir do Editor do Unity para sair do Modo de reprodução.
Não tens de actualizar as outras turbinas eólicas--- já o fizemos por ti.
Estação 4.3: Corpos Restritos
Neste momento, não há nenhuma restrição em que um participante possa largar uma turbina eólica. Esperamos que coloquem as turbinas no oceano onde possam apanhar o vento, mas um participante poderia, por exemplo, acidentalmente largar uma turbina no chão. Queremos evitar isto, por isso, para garantir que as turbinas só possam aterrar na mesa ou no oceano, podemos configurar um campo de contenção. Trata-se basicamente de uma caixa transparente---as turbinas serão restritas ao interior da caixa.
Na Hierarquia, expanda o GameObject 4.3 -- Constraining Bodies e selecione o respetivo objeto subordinado denominado Campo de Contenção.
No Inspetor, selecione o botão Adicionar Componente e, em seguida, adicione o componente Campo de Contenção .
No componente Campo de Contenção , selecione o botão "+" à direita da opção Corpos afetados e, em seguida, no menu de pop-up, selecione a condição Nome do Objeto de Jogo .
Na caixa Começa Com , escreva "WindTurbine". Uma vez que as três turbinas eólicas na nossa cena começam com "WindTurbine", todas ficarão restritas ao Campo de Contenção.
Testar o seu trabalho
Guarde o projeto e, em seguida, prima o botão Reproduzir do Editor do Unity.
Como indicado anteriormente, entrar no modo de Reprodução coloca o seu avatar no Terraço do Capítulo3 do Sphere. Rode a cena para a direita e, em seguida, aceda ao botão Teleportar para o Capítulo 4 e prima-a.
Agora deve estar no Terraço do Capítulo4 do Sphere. Arraste uma das turbinas eólicas para longe do topo da mesa e do oceano e tente largue-a no chão. O campo de contenção impede-o de o fazer.
Capítulo 4: Resumo
Neste capítulo, adicionou funcionalidades do Mesh que capacitam os participantes na sua experiência para fazerem o seguinte:
Agarrar e mover um objeto
Acionar uma animação quando o participante arrasta um objeto para um volume de acionador
Remover um objeto apenas numa área específica que especificou