1 of 58

Aprenda a fazer jogos com Unity e C#

Felipe Nunes

2 of 58

Quem sou eu

  • Desenvolvedor de jogos;
  • Programador;
  • Experiencia com C# e Unity;
  • Indigente;

3 of 58

Indigente

Interactive Digital Entertainment

Grupo de desenvolvimento de jogos da UFBA�https://indigente.github.io/

4 of 58

O que vamos fazer?

Daremos o primeiro passo para que vocês possam criar seus próprios jogos no Unity.

Criaremos dois jogos para concretizar o nosso aprendizado.

5 of 58

Conhecendo o Unity

6 of 58

7 of 58

Interface

  • Scene
  • Game
  • Hierarchy
  • Inspector
  • Project
  • Console

8 of 58

9 of 58

Game Objects

  • Components
  • Transform
  • Vector3

10 of 58

Sprite

[Hierarchy] 2D Object > Sprite

Rename > Player

SpriteRenderer > Knob

Play

11 of 58

Rigidbody2D

Corpo Físico

Gravidade

Dynamic | Kinematic

Play

12 of 58

Collider 2D

Colisões

2D e 3D

Play

13 of 58

Testando a colisão

[Hierarchy] 3D Object > Quad

Por que 3D?

Removendo o Mesh Collider

14 of 58

DESAFIO

Adicione um Collider 2D apropriado para o Quad

Posicione o Quad de forma que entre em contato com o Player ao iniciar o jogo

Aperte Play e veja o que acontece

15 of 58

Variáveis

  • Tipos
  • Pública, Privada

16 of 58

17 of 58

Tipos de Variaveis

Int: 0, 6, 42, -512, …

Float: 1.1, -0.2, 3.14, …

String: “aBc”, “42”, “xX_É_N01$!_Xx”, “z”, ...

Bool: true, false.�...

18 of 58

Usando o MonoDevelop

Edit > Preferences… > External Tools > External Script Editor > MonoDevelop (Built-in)

19 of 58

Player.cs

[Project] Create > C# Script

Start

Update

20 of 58

Criando um Obstáculo

Mexendo com a escala

21 of 58

DESAFIO

Crie mais obstáculos para que tenhamos 4 no total.

Lembre-se de substituir os Colliders 3D por 2D.

Mude a escala de dois objetos para: X = 4, Y = 0.25, Z = 1.

22 of 58

Criando o Rotator

Agrupar Obstáculos no Rotator

Alinhar os obstáculos para que formem um quadrado

23 of 58

Criando o Rotator

Obstáculo 1: X = 2, Y = 0�Obstáculo 2: X = -2, Y = 0�Obstáculo 3: X = 0, Y = 2�Obstáculo 4: X = 0, Y = -2

Demonstrar Rotação

24 of 58

Rotator.cs

[Project] Create > C# Script

transform.Rotate();

Como funciona rotação no Vector3

25 of 58

Time.deltaTime

30 FPS - 0.0333…

60 FPS - 0.0166…

0.033 * 30 = 1�0.016 * 60 = 1

26 of 58

Prefabs

Como criar um Prefab

Como funciona um prefab

27 of 58

DESAFIO

Crie um Prefab do Rotator e da Main Camera.

28 of 58

Trigger Collider

O que são os Triggers

29 of 58

DESAFIO

Transforme todos os Colliders presentes na cena em Triggers

Tenha certeza que as alterações serão aplicadas aos Prefabs

30 of 58

OnTriggerEnter2D

Adicionando a verificação de triggers ao Player.cs

OnTriggerEnter2D(Collider2D other)

31 of 58

Materials

Colorindo os objetos na nossa cena

[Project] Create > Material

Shader > Sprites > Default

Escolha a cor no Tint

32 of 58

DESAFIO

Crie um material para cada outro obstáculo na cena

Lembre-se de trocar o Shader para Sprites/Default

Após trocar todos, aplique as mudanças ao Prefab do Rotator

33 of 58

Camera

Alterando a cor de fundo

34 of 58

Tags

Adicionando etiquetas aos objetos

Modificando o Player.cs

35 of 58

Condicionais

Definindo a condição de derrota

Atribuindo uma tag ao Player

36 of 58

Informações

Documentação do Unityhttps://docs.unity3d.com/ScriptReference/

37 of 58

Random.Range

Entendendo o Random Range

38 of 58

Criando um array

Coleção de variáveis

39 of 58

DESAFIO

Modifique seu array para que contenha todas as 4 tags criadas por você

O nome das tags no array tem que ser EXATAMENTE igual ao nome original

Aplique as mudanças ao Prefab do Player

40 of 58

Aleatorizando

Tags & Materials

41 of 58

Otimizando o jogo

Modificando os valores

Novas bordas para o quadrado

42 of 58

Layers

Ajustando a ordem em que visualizamos os objetos

43 of 58

DESAFIO

Ajuste a ordenação de todos as Sprites na cena (Objetos que contém SpriteRenderer: Player, Bordas)

O Player deve ficar sempre à frente de todos

A borda deve ficar a frente dos obstáculos, porém atrás do Player

Aplique as mudanças aos Prefabs

44 of 58

Reiniciando o jogo

using UnityEngine.SceneManagement;

File > Build Settings > Add Open Scenes

45 of 58

Calculando o Score

46 of 58

Criando uma UI

47 of 58

Mostrando o Score

using UnityEngine.UI;

48 of 58

Pronto? GO!

Começando o jogo apenas quando o jogador estiver preparado

49 of 58

Tecla de segurança

Sempre bom ter uma tecla para reiniciar o jogo

50 of 58

Gerando o .exe

Crie o executável para seu jogo

File > Build & Run

51 of 58

BONUS: Ajustes

Ajuste seus valores, veja qual fica melhor pro estilo de jogo que você quer.

Crie uma dificuldade que não seja frustrante nem tediosa.

52 of 58

BONUS: Progressão

Acelerando o Rotator a medida que o tempo passa.

53 of 58

Agora que você anda,

qual será seu próximo passo?

54 of 58

55 of 58

Recursos Disponíveis

https://github.com/thisfn/SEMCOMP-Unity/

http://bit.ly/UnitySemcomp

56 of 58

57 of 58

Global Game Jam

Evento anual

26 a 28 de Janeiro

Simultâneo em todo o mundo

UFBA - (?)

48 horas para fazer um jogo

Tema surpresa, revelado na hora do evento

Programadores, Artistas, Músicos, Aprendizes, …

Interessado?

58 of 58