[POO] Herança na Unity

Herança é um conceito do paradigma de programação conhecido como Programação Orientada a Objetos , que tem como objetivo construir e trabalhar com abstrações de objetos do mundo real, em um nível de código. A Herança dá a capacidade de uma classe/objeto herdar comportamentos previamente definidos em outra classe, sem a necessidade de duplicação do código, permitindo a extensão e a sobrescrita de comportamentos já existentes, de acordo com a necessidade do novo objeto/classe. Para definir uma relação de herança no C#, a "palavra" reservada : (dois pontos) deve ser utilizada na definição da classe que estamos criando, indicando de qual outra classe o nosso script deve herdar. public class Jogador : MonoBehaviour { // Classe Jogador que herda da classe MonoBehaviour } Por padrão, todos os scripts criados na Unity herdam de MonoBehaviour, que é a classe base da Unity para Scripts que serão associados aos GameObjects do jogo. Embora essa definição de herança

Começando na Unity

Estamos de volta!

Hey, é muito bom te ver por aqui. Se você ainda não instalou a Unity, aproveite essa oportunidade para instalá-la. Eu posso esperar.
...
...
...
Pronto para continuar? Está na hora conhecermos um pouco mais sobre a Unity e como ela funciona. Vamos nessa?

Meu Nosso primeiro protótipo de jogo
Como esse será o nosso primeiro jogo, ao abrir a Unity, através do Unity Hub, você provavelmente encontrará algo como "You have no project here." (você não possui um projeto), mas isso não ficará assim por muito tempo.

Unity Hub sem projetos

Criando um novo projeto
Para criar um novo projeto, serão necessários 4 passos:
  1. Clicar no botão "new" (novo);
  2. Selecionar o template (modelo) de projeto;
  3. Digitar o nome do projeto;
  4. Selecionar a localização (pasta) onde salvaremos o projeto.
Passo 1
Clique neste botão, da mesma forma como na imagem abaixo. Não neste botão...você entendeu, né?

Botão de criação de um novo projeto

Passos 2, 3 e 4
Do lado esquerdo. você escolherá o template do projeto. Como nós estamos criando um projeto de exemplo simples e pequeno, vamos começar usando o template 2D, mas você poderá explorar e usar os outros templates em breve.

Depois de selecionar o template do projeto, é hora de nomearmos o nosso projeto. Você pode mudar esse nome posteriormente o nome do jogo que será exibido para os jogadores (o nome que aparecerá no ícone, por exemplo), mas é aconselhável já começarmos com um nome que represente o nosso projeto. Como esse é o nosso primeiro jogo, eu vou nomear meu projeto como MeuPrimeiroJogo.

Depois, basta selecionar o a pasta (onde você salvará o projeto no seu computador). Esse passo não é obrigatório, já que a Unity automaticamente define uma pasta padrão para guardar o projetos.

Bom. clique no botão "criar" e estamos prontos!

Configurações iniciais do projeto (template, name e localização)

Dentro da Unity
Com o que a Unity se parece? Você estava curioso? Aqui está...

Visão geral do Editor da Unity

Se você está abrindo a Unity pela primeira vez, você provavelmente verá algo mais ou menos parecido com esta imagem. A Unity possui vários Menus e opções, algumas abas e muitos botões, mas fique tranquilo. Usar a Unity é muito mais fácil do que parece.

Eu vou falar sobre cada um desses menus e botões quando necessário. Por enquanto, como um iniciando, você só precisa entender as seguintes abas:
  1. Project
  2. Hierarchy
  3. Scene
  4. Game
  5. Inspector
  6. Console
Uau! Seis abas só para iniciar? Isso não é muita coisa?! Na verdade...não. Não se preocupe, vamos falar um pouco sobre cada uma delas para tornar isso simples e claro para você.

Project
A aba Project (Projeto) representa...bem...o projeto. Essa aba mostrar todos os arquivos utilizados para compor o seu jogo, como por exemplo, Sprites (imagens), arquivos de áudio, Scripts (arquivos de código fonte), Textures (imagens para objetos 3D), modelos 3D , animações e por aí vai. Todos esses arquivos são comumente chamados de game assets.

Se você olhar um pouco mais atentamente, você vai perceber que o diretório raiz (a pasta inicial) do seu projeto também é chamada de Assets, e ela representa um pasta real, que existe no sistema de arquivos do seu computador.

Aba do Projeto na Unity

Diretório (pasta) da Unity no sistema de arquivos do computador

 
Atenção: Todos os arquivos do seu jogo (assets) devem ser colocados dentro da pasta Assets, para que estejam disponíveis no seu projeto na Unity.

Hierarchy
A Hierarquia (Hierarchy) representa o relacionamento entre os objetos usados para construir o seu jogo. Os objetos do jogo são chamados de GameObject (em português: Objeto do Jogo), bem intuitivo, não acha?

Dentro de uma nova cena (scene) da Unity, se você não fez nenhuma alteração, você verá um único GameObject, chamado Main Camera (câmera principal), que representa a câmera principal do jogo...aposto que você já esperava por essa, mas o que é uma câmera para começo de conversa?

Nós vamos falar sobre o que é uma câmera posteriormente, mas para tentar explicar em uma única linha, de maneira bem superficial:
Câmera é o objeto responsável por determinar o que será renderizado (será exibido) na tela do jogo.


Hierarquia de objetos na Unity

A coisa mais importante aqui é que cada GameObject do seu projeto estará na hierarquia. Quer adicionar um outro GameObject? Clique com o botão direito na hierarquia e crie-o.
Assim que for necessário, nós falaremos sobre como o relacionamento entre os GameObjects dentro da hierarquia pode influenciar como esses objetos se comportam.

Scene
Isso pode parecer conflitante, mas a Scene (Cena) representa tudo o que acontece por trás das câmeras (fora na cena). Para ser mais justo, a aba Scene representa seu jogo como ele realmente é. Todos os GameObjects do jogo estarão presentes na Scene (Cena), independente do que está sendo exibido pela câmera.

Como você pode ver na imagem abaixo, a câmera também é exibida na aba Scene (Cena). Nesse momento o nosso "jogo" contém apenas um único GameObject, a câmera, e isso é tudo o que nós conseguimos ver na aba Scene.

Aba Scene com um único GameObject, a câmera

Game

A aba Game (Jogo) mostra o jogo da forma como ele será visto pelo jogador. Por padrão, um jogo 2D na Unity é renderizado (exibido) com uma cor azul sólida como plano de fundo. Essa cor é uma propriedade da câmera, e nós vamos falar sobre isso no próximo tópico, enquanto comentarmos sobre o Inspector.

Nosso jogo não possui nenhum objeto visível ainda, então, não temos muito mais o que mostrar dentro da aba Game, mas é importante observar que a câmera não é visível na aba Game, e isso diferente do que foi mostrando anteriormente na aba Scene.

Aba Game vazia

Inspector
O Inspector (Inspetor) é usado para inspecionar (sim!) as propriedades de um GameObject.
Enquanto não existir nenhum objeto selecionado na Hierarquia ou Projeto, o Inspector estará vazio.

Inspector vazio

Ao selecionar um objeto na Hierarquia, exemplo, a câmera, o Inspector automaticamente se atualiza para exibir as propriedades do objeto selecionado (a câmera), como mostrado na imagem abaixo:


Hierarquia com a câmera selecionada

Inspector mostrando as propriedades da câmera

Lembra da cor azul sólida utilizada como plano de fundo, que vimos na aba Game? Essa cor é uma propriedade da câmera e pode ser alterar através do Inspector.

Cor do plano de fundo da câmera no Inspector

A maior parte das propriedades de um GameObject são exibidas no Inspector, e você pode alterá-las livremente para configurar o seu jogo da forma como preferir. Cada uma dessas propriedades no Inspector está relacionada com uma variável em um Script do GameObject. Esse relacionamento é feito automaticamente pela Unity (e é claro que falaremos mais disso no futuro).

A Unity é uma ferramenta extensível o suficiente para permitir que nossos próprios Scripts exibam variáveis no Inspector, de forma que possamos aproveitar suas vantagens e configurar nosso jogo mais facilmente. Como fazer isso?
Nós chegaremos lá assim que começarmos a falar de código.


Console
A última aba, por enquanto, é o Console. O Console funciona como uma visualização de mensagens (texto), que estão disponíveis apenas durante o desenvolvimento do jogo, dentro da Unity (conhecido como Unity Editor). Nós podemos usar o console para exibir mensagens de depuração, avisos e erros para nos ajudar a entender o que está acontecendo no jogo, durante o desenvolvimento do nosso jogo.
Todas essas mensagens serão escritas durante o gameplay, mas não serão exibidas para o jogador fora da Unity, após o jogo ser lançado.

Console da Unity sem mensagens

Console da Unity com mensagens de exemplo (Depuração, Aviso e Erro)

Não se preocupe em entender o Script criado para esse exemplo, mas caso esteja curioso para ver com o que ele se parece, temos uma imagem dele a seguir:

Script utilizado para exibir mensagens no Console da Unity

Espero que essa pequena introdução te ajude a entender um pouco mais sobre a estrutura da Unity. Ansioso para programar? Nos vemos no próximo post.

Comentários

Postagens mais visitadas deste blog

Transição de Fases (navegação entre Cenas) na Unity

GetComponent - Obtendo a referência para outros componentes do GameObject

[POO] Herança na Unity