Criação de jogos – Tutorial de Unity 5 – Criado pot CriaJogos http://criajogos.equilibrecursos.net. Prefere tutoriais em video? Visite https://goo.gl/0AEeuC

Muito bem. Como combinamos na parte passada, vamos fazer com que essa bolinha parada chata comece a se mover! Nós vamos fazer isso editando uma de suas propriedades de física, a velocidade. Então, vamos dar valores iniciais aleatórios ao seu eixo X e ao seu eixo Y.

Você se lembra como criar um script, né? Vá até a pasta Scripts, botão direito do mouse dentro dela, Create C# Script e dê um nome qualquer ao script (eu usarei o nome bolinha). Edite ele, clicando duas vezes em seu ícone ou clicando com o botão direito do mouse em seu ícone e depois em Open.

Legal, você está se deparando novamente com aquela tela padrão de todo script criado. Vamos trabalhar com os tais valores aleatórios que mencionei acima.

Primeiro crie duas variáveis do tipo float chamadas x e y, logo acima da função Start(). Ó meu Deus! Criar variável? QUE ISSO? Simples! Nós vamos pedir para que o computador reserve um pequeno espaço na sua memória para amarzenar alguns dados que vamos passar para ele! Como? Pela variável! UAU!

private float x;
private float y;

Para matar sua curiosidade, você criou variáveis do tipo ponto flutuante, e esse tipo de variável aceita números inteiros e quebrados! Você pode utilizar valores inteiros como 2 ou 4 ou pode usar valores quebrados como 4,123 ou 3,14.

Agora que as variáveis foram criadas, vamos atribuir valores a elas. Vamos deixar nossa função Start() como o código abaixo:

void Start () {
    x = Random.Range (6f, -6f);
    y = Random.Range (6f, -6f);
}

Vamos analisar as linhas, que são exatamente iguais, né… Random.Range cria números aleatórios, dentro de um “espaço” especificado. As linhas acima geram números aleatórios entre -6 e 6, sendo o número da esquerda o mínimo e o número da direita o máximo. Reparou na letra f na frente dos números? Isso é para especificarmos que estamos usando números do tipo float. Caso não usássemos esse f na frente dos números, o Random.Range os trataria como números inteiros (int).

Mas qual o problema de trabalhar com int? Problema nenhum! Mas é preciso lembrar que, quando você trabalha com números inteiros dentro do Random.Range, o número máximo NÃO é incluído! Ou seja, se usássemos Random.Range(-6, 6), na verdade ele iria gerar um número aleatório entre -6 5.

Agora vamos usar esses valores! Volte para cima da função Start(), nós precisamos chamar aquele componente Rigidbody2D que a bolinha tem! Logo abaixo das variáveis declaradas, vamos chamar o tal componente. É só acrescentar a seguinte linha:

private Rigidbody2D rbBolinha;

E agora, dentro da função Start(), adicione o seguinte:

rbBolinha = GetComponent<Rigidbody2D> ();

Agora, a hora da análise do código: Abaixo das variáveis nós criamos uma referência a um componente do tipo Rigidbody2D via script (claro, estamos em um scrip!) e dei um nome a essa referência.

Em seguida, dentro da função Start(), nós dissemos ao script para ele buscar no objeto ao que ele está ligado (no caso, vai ser a bolinha) pelo componente Rigidbody2D. Lembra que nós adicionamos um desse na bolinha? Pois é, o rbBolinha agora sabe que existe um componente Rigidbody2D na bolinha, e pode trabalhar com suas propriedades! E é isso mesmo que faremos!

Para completarmos essa parte, vamos por mais uma linha de código dentro da função Start(). Digite aí:

rbBolinha.velocity = new Vector2 (x, y);

E pimba! Temos uma bolinha que se mexe! Mas antes de testarmos, vamos à análise do código! rbBolinha.velocity chama a propriedade velocity que, traduzida ao pé da letra, significa velocidade. Como ficou óbvio, nós estamos manipulando a velocidade da bolinha. E como é dentro da função Start(), que é chamada apenas quando o objeto é criado no mundo, ela apenas seta a velocidade inicial da bolinha. Estou explicando isso pois pode ser que você já tenha ouvido falar que não é bom setar propriedades de física fora da função FixedUpdate(), mas não precisa se preocupar com isso, afinal é apenas a velocidade inicial que é setada. E new Vector2 (x, y) cria um novo vetor com duas coordenadas (x e y), já que a velocidade dos objetos com Rigidbody precisam de coordenadas para trabalhar!

Seu código do script bolinha.cs deve estar assim:

using UnityEngine;
using System.Collections;

public class bolinha : MonoBehaviour {

    private float x;
    private float y;

    private Rigidbody2D rbBolinha;

    // Use this for initialization
    void Start () {
        x = Random.Range (6f, -6f);
        y = Random.Range (6f, -6f);

        rbBolinha = GetComponent<Rigidbody2D> ();

        rbBolinha.velocity = new Vector2 (x, y);
    }

    // Update is called once per frame
    void Update () {

    }
}

Agora brinque com a bolinha, começando e parando seu jogo no Unity. Repare que cada vez que você inicia o jogo, a bolinha vai para um lado diferente!

E por enquanto é isso! Nos vemos na próxima parte!

PARTE 5
PARTE 7

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *