Você está na página 1de 83

1

INTRODUÇÃO AO UNITY
MSc. Brunelli Pinto Miranda
brunelli.miranda@gmail.com
2018
2

GAME ENGINES
• Framework para criação e desenvolvimento de jogos;

• Funcionalidades incluem detecção de colisões, renderização, aúdio,


programação, animação, grafo de cena, suporte à cinemáticas, etc...

• Facilita ou reduz o tempo necessário para portar o jogo para múltiplas


plataformas;

• Existem engines disponíveis para desenvolvedores independentes, assim


como engines próprias criadas pelas companhias de jogos;
3

GAME ENGINES 3D MAIS


POPULARES
• CRYENGINE

• UNREAL

• UNITY
4

• Versão Atual: CryEngine 5 (www.cryengine.com);


FarCry – Ubisoft, CryEngine 1, 2004 Evolve – 2K Games, CryEngine 4, 2015
5

The Climb – Crytech, CryEngine 5 (Oculus), 2016 Prey – Bethesda Softworks, CryEngine 5, 2017
6
7

• Versão Atual: Unreal Engine 4 (www.unrealengine.com);

Unreal Tournament – Epic Games, Unreal Engine 1, 1999 Deus Ex – Eidos Interactive, Unreal Engine 1, 2000
8

Unreal Engine 3
9

Unreal 4
10

Unreal 4
11

Versão Atual: Unity 2018.2.7 (unity3d.com);

GooBall – Ambrosia Software, 2005 Off-road Velociraptor Safari – Flashbang Studios, 2008
12
13
14
15
16
17
18
19
20

UNITY VS UNREAL
Unity Unreal 4
Console PS3, PS4, PS VITA, Xbox 360, PS4, Xbox One, Nintendo Switch
Xbox One, Wii U, Nintendo
3DS, Nintendo Switch
Desktop Windows, OSX, Linux Windows, OSX, Linux, SteamOS, Html5
Desenvolvimento Windows, OSX, Linux Windows, OSX, Linux
Mobile Windows Phone, iOS, Android, iOS, Android
BlackBerry 10, Tizen
VR Oculus Rift, Samsung Gear VR, Oculus Rift, Samsung Gear VR, Google
Google Daydream, Daydream, SteamVR/HTC Vive, OSVR
Cardboard, SteamVR/HTC
Vive
Linguagens C#, Javascript C++, Blueprints

Fonte: https://www.slant.co/versus/1047/5128/~unity_vs_unreal-engine-4
21

• Criada em 2005

• Game Engine com suporte à aplicações 2D/3D

• Multi Plataforma
• 27 Plataformas

• Comunidade de Desenvolvedores Ativa


• Tutorias, suporte
• Assets
22

NOVO PROJETO: SETUP


• Passo 1. Crie um novo projeto com o nome de “Tutorial”, selecione a
interface 3D;

• Passo 2. Selecione o botão “Asset Packages”.

Seleção de Recursos (Passo 2)


Interface 3D (Passo 1)
23

SOBRE ASSETS
• Assets são os recursos que serão utilizados no projeto;

• O Unity oferece assets iniciais para servirem de base;

• Caso tenha esquecido de importar algum asset inicial, não se preocupe. É


possível importa-los dentro da interface do Unity também
24

SELEÇÃO DE RECURSOS INICIAIS


• Selecione os seguintes pacotes:
• Characters
• Environment

• O resultado deve ficar similar à imagem ao


lado

• Você já pode terminar a criação do projeto.


25

TELA PÓS-CARREGAMENTO
26

DESVENDANDO A INTERFACE
2. Editor de Cena

1. Hierarquia
de cena
3. Inspetor
1 2 3

4. Projeto
27

HIERARQUIA DE CENA
• Equivale ao Grafo de Cena do Unity

Exemplo do conceito de
Grafo de cena
28

EDITOR DE CENA
• Onde podemos visualizar na cena;

• Modificações podem ser feitas diretamente


no editor de cena;
2
• Atalho para mover a visão da cena: clicar
na roda do mouse!

• Atalho para zoom na visão da cena: girar a


roda do mouse!
29

INSPETOR
• Exibe as informações de um item selecionado;

• O conteúdo do inspetor muda de acordo com o tipo


do item;

• Mais conteúdo pode ser adicionado ao inspetor; 3


30

JANELA DO PROJETO
• Exibe tudo que existe na pasta do projeto;

• Os assets, scripts e cenas deverão ser colocados nesta janela.

4
31

CONSTRUINDO A CENA:
GAMEOBJECTS
• Todo objeto em cena é um GameObject;

• GameObjects contêm componentes


• Componentes de Transform, Camera,
Colisão, etc.

• Clicar em um objeto irá mostrar seus


respectivos valores no painel do Inspetor;
32

ADICIONANDO O PRIMEIRO
ELEMENTO NA CENA
• Vá em GameObject 
3D Object  Cube;

• Um novo gameobject
aparece na hierarquia;
33

MOVENDO A CÂMERA DA CENA


• A forma mais rápida de mover a câmera para a posição/ângulo desejado
é através do alinhamento com a visão;

• Posicione a visão da cena nas coordenadas de sua prefência;

• Selecione a Main Camera na hierarquia e vá em GameObject  Align with


View (ctrl + shift + f);
34
35
36

CONSTRUINDO A CENA
Com Luz!
• Primeiro, apague o GameObject
“Directional Light” na hierarquia;

• Não apague a Main Camera. A aplicação


precisa de pelo menos uma câmera para
poder executar.

Sem Luz!
37

CRIANDO O TERRENO
• Vá em GameObject  3D Object 
Terrain;

• Surgiu um novo objeto na hierarquia.


Dê um duplo clique nele;

• O foco da cena muda e surgem


informações sobre o gameobject no O terreno gerado
inspetor.
38

MOVENDO OBJETOS NA CENA


• Selecione o cubo (1);

(1)
• Cada uma das três setas
corresponde à um eixo (1);

• Arraste o cubo no eixo x e z


até que o objeto fique dentro
do terreno(2);
(2)
• Arraste o cubo em Y, até que
ele fique acima do terreno;
39

MODIFICANDO OBJETOS NA
CENA

Mover Rotacionar Escalar


40

(RE)ADICIONANDO LUZ
• A versão 2017 do Unity proporciona 4 tipos de luz, mais um estilo de reflexão
e um grupo de luz;

• Abordaremos os seguintes estilos:


• Directional light;
• Point Light;
• Spotlight
41

DIRECTIONAL LIGHT
• Directional light serve como a luz ambiente da cena;
• Para adicioná-la vá em GameObjectLightDirectional Light
42

DIRECTIONAL LIGHT
• Independente da altura (eixo Y) a luz direcional sempre incide sobre o
mesmo ângulo definido;

• Mude o Y para 10;

• Defina a cor para FFFF98FF, o modo para Realtime e a intensidade para 0.8;

• Selecione o Shadow Type como Soft Shadows;


43
44

POINT LIGHT
• Point Light produz luz a partir de um ponto, em um ângulo de 360º;
• O alcance da luz depende do tamanho da circunferência (range) do point
light;
45

SPOTLIGHT
• Spotlight fornece um fonte de luz a partir de um ponto que se estende em
forma de um cone;
• Lembra bastante a ideia da luz gerada por um poste;
46

ADICIONANDO FÍSICA AO
OBJETO
• Selecione o cubo;

• Adicione um componente Rigidbody


(InspetorAdd ComponentPhysicsRigidbody);

• Certifique-se que Use Gravity está selecionado e


mova o cubo em y para cima. Dê play na cena e
observe o que acontece com o cubo.
47

ADICIONANDO MAIS OBJETOS!


• Faça cópias do cubo (selecione o objeto na
hierarquia  ctrl + d);

• Mova os objetos para diferentes alturas e posições;

• Desmarque a opção de Usar Gravidade em alguns


cubos e deixe-a marcada em outros cubos;

• Dê play e observe a diferença de gravidade


aplicada aos objetos;
48

CRIANDO UM NOVO MATERIAL


• Na janela do projeto, dentro da pasta Assets, crie uma pasta chamada Materiais (Botão direito Create 
Folder);

• Caso a pasta fique com o nome New Folder por engano, clique nela e aperte F2 para renomea-la;

• Dentro de Materiais crie um novo Material (Create  Material);


49

CRIANDO UM NOVO MATERIAL


• No inspetor do material, na seção Main
Maps, mude o Albedo para 00E81BFF;

• Outras opções inclem adicionar aspecto


metálico ao material, máscara de
detalhes, mapas secundários entre
outros;
50

ALTERANDO O MATERIAL DOS


OBJETOS
• Arraste o material selecionado para o inspetor de um objeto, para o objeto
na hierarquia ou diretamente para o objeto na cena;
51

CONFIGURANDO O TERRENO
• Selecione o terreno na hierarquia;

• Vá no inspetor  Terrain Settings;


Terrain
settings
• Vá descendo na aba até achar a opção
Terrain Height;
52

DEFININDO A ALTURA
• Terrain Height é a altura máxima do terreno;

• Essa altura começa a contar a partir de y = 0;

• Caso nosso terreno possua lagos, rios ou


qualquer estrutura abaixo do nível do terreno, é
necessário mudar o ponto inicial do terreno;

• Para isso, vá em Paint Height  No campo


Height digite uma altura padrão e clique em
Flatten. Vamos colocar uma altura 5;

• Com isso, nosso terreno pode ter depressões de


até 5 unidades abaixo do nível do terreno
53

CRIANDO O RELEVO
• Após ajustar a altura do terreno, vamos criar relevos nele;

• Vá em Raise/Lower Terrain, selecione um pincel e seu tamanho e


opacidade;

• Clique na posição da cena que deseja modificar e mantenha o mouse


pressionado até chegar na altura deseja;

• Para criar uma depressão/diminuir a altura do terreno repita o processo


acima, mas dessa vez segurando a tecla Shift
54

EXEMPLO DE RESULTADO
55

ADICIONANDO TEXTURA AO
TERRENO
• Após ter criado o relevo, vamos pintar o
terreno para deixá-lo com um aspecto
mais realista;

• Vá em Paint Texture  Edit Textures;


• Selecione Add Texture;
56

ADICIONANDO TEXTURAS AO
PROJETO
• Selecione uma textura, clicando em
select. Para fins deste tutorial,
selecione a mesma textura nas duas
caixas de textura;

• Vamos adicionar a textura


GrassHillAlbedo;
57
58

MELHORANDO O TERRENO
• Adicione mais uma textura ao terreno;

• Dessa vez, selecione a textura CliffAlbedoSpecular;

• Clique na textura que apareceu no Inspetor;

• Agora aplique-a nas elevações do terreno;

• Repita o processo
59
60

UTILIZANDO ASSETS
• Agora vamos colocar um pouco de água no
terreno;
• Vá na janela do projeto, a abras as pastas
Standard
AssetsEnvironmentWaterWater4Prefab
s;
• Selecione o prefab Water4Simple e o arraste
para dentro da janela de Hierarquia
61

ADICIONANDO ÁGUA
• Dê dois cliques em Water4Simple;

• Caso ele não esteja na mesma altura do terreno, mova-o no eixo y até ele
ficar na altura desejada;

• Para aumentar ou diminuir o tamanho da água, mude a escala do prefab,


modificando os valores X e Z em Scale
62
63

SOBRE PREFABS...
• Um prefab é um objeto modelo;

• Todos os objetos em cena que forem derivados de um mesmo prefab terão


o mesmo comportamento;

• Útil quando é necessário criar vários objetos iguais em cena


64

ADICIONANDO ÁRVORES AO
PROJETO
• O Unity possui uma função de adicionar árvores em um terreno;

• Para utilizá-la, selecione o terreno na hierarquia e depois vá o Inspetor;


• Agora clique em Place Trees, ao lado do botão de pintar textura
65

ADICIONANDO ÁRVORES AO
PROJETO
• Similar ao que foi feito com as texturas, adicione um modelo de árvore;
• Edit Tree  Add Tree
66

ADICIONANDO ÁRVORES AO
PROJETO
• Clique no botão em formato de círculo (muito
pequeno) do lado direito do campo Tree Prefab;

• Selecione o prefab BroadLeaf_Mobile;

• Repita o processo para o prefab Conifer_Desktop;


67

ADICIONANDO ÁRVORES AO
PROJETO
• Existem duas opções para adição de árvores na cena:
• 1. Mass Place Trees;
• 2. Manualmente
68

ADICIONANDO ÁRVORES AO
PROJETO
• A menos que sua intenção seja criar uma selva completa e reduzir
drasticamente o seu fps, vamos colocar manualmente as árvores em cena;

• Selecione um modelo de árvore e da mesma forma como foi feito a pintura


do terreno, vá “pintando” as áreas com árvores;
69

ADICIONANDO ÁRVORES AO
PROJETO
70

INTERATIVIDADE
• O cenário está praticamente pronto, mas há um problema: não existe
interação do usuário com o ambiente.

• Todas as nossas interações até o momento foram feitas através do editor de


cenas, mas quando a aplicação está executando não há nenhuma
interação
71

ADICIONANDO INTERATIVIDADE
• Na janela de projeto, vá em Standard Assets 
Characters  FirstPersonCharacter  Prefabs;

• Selecione o prefab FPSController e arraste-o para


a Hierarquia;

• Posicione o novo objeto dentro do cenário, de


forma que ele fique acima do solo;
72

COLISÕES
• No cenário atual, o personagem ao ultrapassar o limite do terreno, cai
infinitamente na cena;

• Para impedir isso, vamos adicionar uma colisão na borda;

• Selecione o terreno na Hierarquia e crie um novo componente do tipo


Physics  Box Collider;

• Modifique os valores do collider até ele abranger uma lateral inteira do


terreno;
73

COLISÕES
74

SCRIPTS (EM C#)


• A programação no Unity é realizada através de scripts;

• As linguagens suportadas são C#, Unity Script (Javascript) e Boo

Disponível em:
https://blogs.unity3d.com/pt/2014/
09/03/documentation-unity-
scripting-languages-and-you/
75

PARA O PRÓXIMO EPISÓDIO...

• Crie um cenário que simule uma casa. A casa deve conter no mínimo as
seguintes áreas:
• 1 Quarto;
• 1 banheiro;
• 1 sala;
• 1 cozinha;
• Todas as áreas da casa devem estar conectadas e acessíveis ao jogador;
• Todas as áreas devem possuir no mínimo uma lâmpada no teto e um
interruptor na parede.
76

DICAS PARA A TAREFA


• Para facilitar a montagem do cenário, procure por assets na loja
do unity.

• A loja pode ser acessada de dentro da própria IDE e possui


diversos assets disponíveis gratuitamente.
77

FIM DA PARTE 1
78
79

AVISO!
Se você chegou até aqui antes da aula terminar, temos
uma sequência de desafios lhe aguardando.
80

DESAFIO 1
• No cenário criado durante a aula, instancie um prefab qualquer;

• O prefab deve ter a cor azul inicialmente;

• Quando o player chegar a uma certa distância do prefab, o prefab deve


mudar de cor e se tornar amarelo;

• Se o player colidir com o prefab, o prefab deve mudar para a cor


vermelha;
81

DESAFIO 2
• Usando o mesmo prefab do Desafio 1, faça com que quando o prefab se
tornar amarelo, ele comece a avançar em direção ao objeto player;

• Se o prefab colidir com o player, além de mudar para vermelho, agora um


áudio deve ser reproduzido e deverá aparecer uma tela de game over
(pode ser apenas uma imagem);
82

DESAFIO 3
• Ao aparecer a tela de game over, logo em seguida deverá surgir na tela
um botão escrito “Jogar Novamente”;

• Ao clicar nesse botão, o player e o prefab (inimigo) deverão ser resetados


para suas posições iniciais e o prefab deverá voltar para a cor azul e
apresentar o mesmo comportamento do desafio anterior;
83

DESAFIO 4
• Posicione uma mira no centro da tela, de forma que mesmo movimentando
a câmera, a mira sempre continuará aparecendo no centro da tela;

• Quando o jogador clicar com o botão esquerdo do mouse ou apertar a


tecla ENTER, se a mira estiver sobreposta ao inimigo, o mesmo irá
desaparecer;

• Efeitos sonoro e de animação são opcionais neste desafio, mas ei, se você
chegou até aqui porque se contentar com isso quando pode melhorar seu
cenário?

Você também pode gostar