Cursos / Jogos Digitais / Desenvolvimento com Motores de Jogos I / Aula
Voltando ao nosso script, vamos agora começar a mover de fato o nosso robô. Só recapitulando um pouco como a movimentação vai funcionar: o usuário pressionará uma tecla dentro de um eixo - vertical ou horizontal - e então nós empurraremos o robô (utilizando uma força física no corpo rígido) naquela direção que o usuário indicou. Para entender bem, imagine que o nosso robô é uma bolinha em uma mesa de sinuca e o usuário tem o taco utilizando os controles de eixo. Ao apertar, uma força será exercida na bola, empurrando ela por aí, por cima da mesa.
Qual o primeiro passo, então, para alterar no nosso script? Bom... Como precisaremos empurrar o corpo rígido, precisaremos, inicialmente, acessar o corpo rígido em nosso script! Para fazer isso, precisamos buscar o componente que acabamos de adicionar e salvar ele em uma variável. Para fazer isso, criamos inicialmente a variável e, em seguida, no método de inicialização, buscamos o componente em si e guardamos ele em nossa variável. O código fica como está na Listagem 2!
Listagem 2 - Código para salvar o componente RigidBody2D em nosso script.Perceba que, assim como em Java, é possível criar uma variável como sendo privada ou pública. Como queremos apenas ter acesso a ela internamente, no script, escolhemos para o RigidBody2D uma variável privada chamada rigidBody.
Em seguida, na função Start(), que é chamada automaticamente pelo Unity assim que o objeto é inicializado na cena, atribuímos o valor a essa variável. Como o Unity vai chamar a função após o objeto ser criado, ele já vai possuir esse componente e então, quando chamarmos o método GetComponent<Rigidbody2D>(), teremos o componente retornado e salvo em nossa variável.
Note que esse método de buscar um componente serve para qualquer tipo de componente. Isso é exatamente o que está contido dentro dos <>. Se você, em outra oportunidade, quiser buscar um componente de outro tipo, basta alterar o tipo que está entre <>. Cuidado, inclusive, para não ter colocado <Rigidbody> no seu código, uma vez que esse tipo representa o Rigidbody 3D!!! Ah... e aos curiosos: se houver mais de um componente do mesmo tipo, esse método retorna o primeiro que encontrar e se não houver nenhum, retorna null!
Versão 5.3 - Todos os Direitos reservados