Boas-vindas e introdução

1

Introdução e por que utilizar a Unity3D

2

Preparando a Unity: versões e configurações

3

Entendendo o espaço de trabalho do jogo

4

Asset Store e importação de assets

Preparação do primeiro jogo

5

Definição da proposta e exibição dos assets

Câmera, Física e Controladores

6

Colliders e Rigidbody

7

Manuseio da câmera

8

Movimentação de personagens - Adicionando movimento

9

Movimentação de personagens - Andando

10

Movimentação de personagens - Pulando e Physics Material

11

Movimentação de personagens - Pulando e GroundDetector

Ferramentas visuais

12

Manipulando a animação por script

13

Criando cenário utilizando os assets e manipulando materiais

14

Iluminação e tipos de luzes

15

Animação do Player

Game Manager

16

Condição de vitória, detalhes adicionais e pensamentos futuros

17

Condição de derrota

18

Inimigo e spawn de prefabs

Preparação do segundo jogo - Coffee Catch

19

Definição da proposta e exibição dos assets

Geração de builds

20

Gerando build de Windows

21

Gerando build de Mac e Linux

Câmera, Física e Controladores - Coffee Catch

22

Câmera Top Down para o Coffee Catch

23

Movimentação Top Down

24

Rotacionando o personagem utilizando o LookAt

Ferramentas visuais - Coffee Catch

25

Criando cenário para jogos Top Down

26

Dando Bake na iluminação da cena

27

Animação do Player, Inimigos e do Robô

O sistema de NavMesh - Coffee Catch

28

Criando o inimigo e utilizando o NavMesh system

Game Manager - Coffee Catch

29

Criando a condição de vitória

30

Criando moedas coletáveis

Interface de Usuário (UI)

31

Adicionando UI para as moedas

32

Adicionando UI para a tela de game over

Sistemas adicionais

33

Usando coroutines para finalizar o jogo

34

Usando coroutines para ações repetitivas

35

Usando partículas para a coleta de moedas

36

Sistema de áudio

37

Post processing

Conclusões finais

38

Pensamentos futuros do projeto e finalização do curso

Usando coroutines para ações repetitivas

34/38

Leitura

Olá! Na aula passada, aprendemos a criar tipos especiais de métodos chamados Coroutines. Este tipo de método facilita a manipulação de tempo, pois no corpo do método podemos declarar “retornos de tempo”, tal como:

01.png

Este comando faz com que a execução do método seja interrompida durante 2 segundos antes de prosseguir para as próximas instruções presentes no método.

Para declarar Coroutines, você precisa declarar um novo método cujo tipo de retorno é IEnumerator. Por exemplo:

002.png

Também aprendemos que a maneira de executar este tipo especial de método é feito da seguinte maneira:

003.png

É possível também iniciar Coroutines passando como argumento o nome do método alvo. Em termos de otimização, esta alternativa é um pouco mais cara, mas ainda assim é possível. Basta fazer da seguinte maneira:

0050.png

Coroutines podem ser bastante úteis na criação de ações sequenciais na qual se deseja esperar diversas vezes por um timer. Por exemplo, podemos criar “cut-scenes” bem simples através de coroutines. Basta executar uma ação de cada vez, dando pequenos intervalos de tempo entre cada ação.

Além disso, também podemos utilizar coroutines para criar facilmente ações que são repetidas de tempos em tempos, sempre com um intervalo entre cada ação. Neste exemplo, iremos criar um portão de lasers que irá ser ativado e desativado repetidamente durante o nosso jogo. Caso o Player entre em contato com os lasers, o jogo reinicia.

Para começa, digite na área de busca da sua aba “Project” a seguinte palavra: SecurityGate

Após isso, selecione o primeiro asset que aparcer na lista. Você pode conferir se é o asset correto conferindo o diretório onde este se encontra. Confira de acordo com a imagem a seguir:

006.png

Ao encontrar o asset correto, arraste-o para a cena e centralize-o na posição (0, 0, 0). Você poderá ver um modelo 3D na cena com uma coloração estranha, como demonstrado na imagem a seguir.

007.png

Selecione o modelo e coloque o valor de 270 na rotação no eixo X.

008.png
009.png

Agora, na aba Project, pesquise novamente pela palavra SecurityGate. Selecione o Material que tem esse nome, como demonstrado na imagem a seguir.

010.png

Arraste e solte este material no modelo 3D que você adicionou recentemente na cena. A coloração estranha irá sumir e você poderá ver que agora ele possui o material correto.

011.png

Na aba Hierarchy, clique com o botão direito no modelo 3D que você adicionou. O nome do objeto é: SecurityGate. No menu, clique em “3D Object -> Plane”. Isto irá criar um novo Plane dentro do objeto SecurityGate. Ajuste a escala para (0.2, 0.15 e 0.15). Agora ajuste a posição para (0, 0, 1).
012.png

013.png
014.png

Na aba Project, pesquise pela palavra “LazerWall”. Selecione o primeiro resultado da pesquisa, que é o material correspondente à parede de lasers. Arraste e solte o material para cima do novo Plane que você criou. O resultado deve ficar assim:

015.png

Agora que temos o nosso visual da parede de lasers pronto, vamos criar os scripts!

Crie um novo script chamado Gate. A ideia para este script é de fazer com que ele ative e desative a parede de lasers a cada 2 segundos, durante todo o jogo, através do uso de coroutines.

A princípio, vamos criar uma variável que vai guardar uma referência à parede de lasers. Vamos chamá-la de “lasers”.

016.png

Agora vamos criar a nossa coroutine que vai ser repetida durante o jogo todo. Vamos declarar uma nova coroutine chamada “LasersCorountie”. Dentro do corpo deste método, vamos declarar um loop infinito através de um “while(true)” para que este aconteça durante o jogo todo. Agora, para que não aconteça um loop infinito, vamos declarar os retornos de tempo dentro deste nosso loop.

Este é o fluxo:
1 - Ativa os lasers
2 - Espera 2 segundos
3 - Desativa os lasers
4 - Espera 2 segundos
5 - Repete todos os passos

O script ficará da seguinte maneira:

017.png

Você já pode salvar o seu script e aplicá-lo ao objeto chamado SecurityGate presente na sua cena. Quando adicionar o script, a variável chamada “lasers” ainda vai estar com referência vazia. Coloque a variável para apontar para a parede de lasers que criamos previamente.

019.png

Agora crie um novo script chamado Lasers. A ideia desse script é simples: se for detectada colisão com o Player, o jogo deve reiniciar. Bem, como já fizemos este tipo de código durante este curso, segue o código completo:

020.png

Adicione o script de lasers à parede de lasers, que é ativada e desativada durante o jogo. Por último, vá na componente de colisão da parede de lasers e marque os campos “Conex” e “IsTrigger” como verdadeiro.

021.png

Pronto! Agora temos uma parede de lasers que utiliza coroutines para realizar ações repetidamente.

Se por um acaso algo não tiver ocorrido como desejado, você pode baixar o projeto na seção de arquivos e também pode postar dúvidas nesta aula.

Obrigado e até a próxima!

Contribuições 0

Perguntas 0

Ordenar por:

As contribuições, perguntas e respostas são vitais para aprender em comunidade. Registre-se ou faça login para participar .