Buscar

DEVGame

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

04/10/2020 Minha Disciplina
https://uniritter.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 1/25
introdução
Introdução
Tudo na vida tem seu nível de dificuldade e com o desenvolvimento de jogos não poderia ser diferente. Mas
é claro que, com o processo e ferramentas certas, podemos diminuir essa dificuldade.
O desenvolvimento de jogos, em geral, é muito diverso e essa diversidade vem da dose de criatividade que
cada processo de desenvolvimento insere em cada jogo.
Em uma analogia com a marcenaria, veremos que um marceneiro faz várias mobílias de madeira, sua
matéria-prima é a mesma, suas ferramentas também, mas suas técnicas de uso da madeira vão variar com
a necessidade que a construção e o design da peça variarem.
DESENVOLVIMENTO DE JOGOS PARA WEBDESENVOLVIMENTO DE JOGOS PARA WEB
DESENVOLVIMENTO DE JOGOS WEB:DESENVOLVIMENTO DE JOGOS WEB:
INÍCIO DA JORNADA DO GAMEDEVINÍCIO DA JORNADA DO GAMEDEV
Autor: Esp. Diego Escobar
Revisor : Deiv t ih Cunha
IN IC IAR
https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_DEJOWE_20/unidade_1/ebook/index.html#section_1
04/10/2020 Minha Disciplina
https://uniritter.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 2/25
Sendo assim, usaremos uma ferramenta que irá nos auxiliar no desenvolvimento deste projeto. Com ela,
conseguiremos acelerar o processo do desenvolvimento de jogos em geral. Neste projeto, trabalharemos
com 2D, mas a ferramenta pode ir além disso.
04/10/2020 Minha Disciplina
https://uniritter.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 3/25
No princípio da web, desenvolvedores de sites e afins só precisavam se preocupar com telas de
computadores desktop (computador de mesa), que, em geral, tinham o mesmo tamanho, 14 polegadas.
Sendo assim, os designers de sites conseguiam manter um padrão de tamanho e exponencialidade deles.
Também não havia preocupação em executar o conteúdo desses sites em diversos tipos e tamanhos
diferentes de telas.
Nos dias atuais, não só computadores desktop têm acesso aos conteúdos dos sites alocados na Internet,
mas também dispositivos com tamanhos variados de tela, e isso se tornou uma preocupação com relação à
maneira que o conteúdo estava disposto nas web pages (páginas da web).
O desenvolvimento de conteúdo web para celulares é um novo paradigma. Quando comparado ao modelo
antigo de desenvolvimento web, precisamos estar atentos principalmente à resolução das telas e seu
funcionamento em relação a aceitar interação de um dispositivo móvel.
Quando pensamos em desenvolvimento de jogos para web e queremos que esses funcionem em várias
plataformas, por exemplo, desktop e mobile, precisamos nos atentar se a plataforma na qual vamos
disponibilizar esse jogo se preocupa com a disponibilização de conteúdos multiplataforma; caso contrário,
teremos problemas de incompatibilidade de dispositivos.
Contexto Atual do “Game Dev para Web”
Segundo Tom Greenaway, um “Lead Game” do Google, responsável pelo desenvolvimento de jogos para a
web, os jogos web precisam ser de fácil acesso, ou seja, devemos permitir ao jogador chegar ao jogo da
maneira mais fácil possível, precisão viabilizar um carregamento de conteúdo rápido o “load” do jogo. Jogos
web precisão explorar aquilo que eles têm de mais forte e mitigar ao máximo seus pontos fracos (READ
PLAYER…, 2019).
Pontos fortes:
Introdução ao Desenvolvimento deIntrodução ao Desenvolvimento de
Jogos WebJogos Web
saiba mais
Saiba mais
Itch.io é um site que se preocupa com essas
necessidades, direcionado à hospedagem de
jogos do tipo HTML5, que são voltados para
a web, conteúdos como áudios, efeitos
sonoros, game arte, entre outros conteúdos.
A C E S S A R
https://itch.io/
04/10/2020 Minha Disciplina
https://uniritter.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 4/25
fácil de compartilhar; basta enviar o link do site.
quase todos os dispositivos hoje em dia tem acesso a um web browser, o nosso querido
navegador.
praticamente não existem restrições físicas nem digitais para a produção, disponibilização e
monetização de nossos jogos.
Pontos negativos:
A web é um ambiente de muita desconfiança. Os usuários não se sentem à vontade para fazer
pagamentos em websites avulsos.
Há dificuldade em entregar o conteúdo certo ao dispositivo certo. Por ser multiplataforma,
precisamos nos atentar com vários tipos de configurações para que possamos atingir o maior
número de dispositivos possível.
Precisa de um acesso à Internet para acessar os conteúdos e mantê-los funcionando.
O que é uma Engine?
Game engine ou motor de jogos são ferramentas de desenvolvimento de jogos projetadas para acelerar o
processo de desenvolvimento de jogos, reduzir custos, diminuir a complexidade no desenvolvimento e o
tempo de chegada de seu produto no mercado. Podemos pensar nelas como um conjunto de ferramentas e
bibliotecas.
Essas ferramentas de software criam uma camada de abstração além das tarefas mais
comuns no desenvolvimento de videogames. As camadas de abstração são
empacotadas em ferramentas projetadas para funcionar como componentes
interoperáveis que podem ser substituídos completamente ou estendidos por
componentes adicionais de terceiros (HALPERN, 2019, p. 1, tradução nossa).
Ou seja, as game engines, além de reduzirem nosso esforço no desenvolvimento de um jogo, trazem-nos
muitos benefícios, e um deles é a redução de conhecimento que é necessário ter para desenvolver um jogo,
nos trazem muitas funcionalidades prontas, predefinidas e vários recursos prontos para serem usados em
nosso desenvolvimento.
Porque usar uma Engine?
“É incrivelmente difícil de se fazer um jogo” (WHY YOU..., 2017, on-line), palavras de Yan Chernikov, ou
Cherno, como se autointitula em seus vídeos no YouTube. Segundo sua conta do LinkedIn, Cherno é um
engenheiro de software na EA Games em Melbourne, na Austrália, há quatro anos.
Cherno mantém um canal no YouTube no qual cria conteúdos para desenvolvedores de jogos e aspirantes
ao desenvolvimento. No vídeo publicado em 2017, intitulado Why you NEED to use a GAME ENGINE (Por
que você PRECISA usar um MOTOR DE JOGOS), Cherno enfatiza as vantagens de se desenvolver jogos
utilizando os motores de jogos que estão disponíveis no mercado, e um dos maiores motivos é que uma
ferramenta como essa facilita muito o trabalho do desenvolvedor de jogos em vários aspectos, como
acelerar a produção dos jogos e facilitá-la ao desenvolvedor e disponibilizar o jogo para várias plataformas,
entre outros.
Cherno deixa bem claro, em seu depoimento, que fazer um jogo totalmente sozinho, mesmo tendo uma
ferramenta como uma Engine à disposição, somente por orgulho de dizer “Eu fiz isso tudo sozinho, mesmo
que tenha levado 20 vezes mais tempo” (WHY YOU..., 2017, on-line, tradução nossa), é uma besteira.
Utilizar uma game engine é uma estratégia de negócio e mesmo as maiores empresas do mundo em
termos de videogames cometem erros enormes, muitas vezes precisam ficar corrigindo problemas de
compatibilidade em seus jogos e problemas que surgem por diversos motivos, enquanto a Engine tem uma
grande equipe de desenvolvedores ao dispor, que busca sanar tais erros e estão sempre procurando
aperfeiçoar a ferramenta.
Para Cherno (2017, on-line), quem deseja desenvolver jogos precisa tomar uma decisão: se deseja fazer
jogos ou se deseja programar ferramentas para criar jogos, pois existe uma grande diferença em criar jogos
e fazer as ferramentas para que esse desenvolvimento seja possível.
Mas Cherno (2017, on-line) levanta um ponto interessante em relação a desenvolver uma game
engine sozinho ou em um time. Ele deixa claro que, caso as ferramentas que estão disponíveis no mercado
não consigam atender às necessidades de seu projeto, claramente precisamos desenvolver essa
ferramenta nós mesmos, mas isso é um campo muito específico e, em geral, essas pessoas já têm muita
experiência em desenvolver jogos para sentir essa necessidade.
Portanto, fazeruso de uma ferramenta que vai nos poupar tempo de forma gratuita é uma vantagem, pois
ela nos aproxima do mercado em relação à competitividade da qualidade da ferramenta que estamos
04/10/2020 Minha Disciplina
https://uniritter.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 5/25
usando, bem como em relação à velocidade de desenvolvimento do produto e de lançamento do produto no
mercado.
Unity, um motor de Jogos
Vamos começar a apresentação da Unity citando algumas das plataformas pelas quais ela têm possibilidade
de disponibilizar um jogo. Devemos sempre lembrar que diferentes plataformas exigem parametrizações
diferentes. Por exemplo, temos os consoles, e cada console tem um controle com botões diferentes, os
quais o mercado já padronizou algumas funcionalidades. Isso não nos impede de criarmos novas ações
para eles, mas devemos lembrar que um controle de videogame é diferente de um teclado e um mouse.
Vejamos algumas plataformas que a Unity tem compatibilidade:
Mobile: Android, IOS.
Desktops: Windows, Linux.
Web: WebGL “Páginas da web”.
Consoles: PS4, Xbox One, 3DS.
Entre outras, a Unity Engine hoje já possibilita compatibilidade com mais de 20 plataformas
diferentes (UNITY PARA..., 2019).
A Unity é um motor de jogos, sendo uma das melhores ferramentas do tipo disponíveis no mercado. Como
já foi visto antes, utilizar uma ferramenta como essa só nos traz vantagens. Desse modo, teremos muito
mais tempo para enfrentar os desafios de fazer o design de nossos jogos do que nos preocuparmos com
problemas de compatibilidade entre as plataformas que desejamos atingir com nosso produto.
Uma Visão sobre Prototipação de Jogos Digitais
saiba mais
Saiba mais
Conheça alguns dos produtos desenvolvidos
com a Unity. Jogos, animações e ferramentas
são algumas das possibilidades que a Unity
traz com seu arsenal de possibilidades para o
desenvolvimento de produtos para o
entretenimento em geral.
A C E S S A R
saiba mais
Saiba mais
Conheça alguns títulos de jogos web dos
últimos anos, e veja a evolução de técnicas,
jogabilidade e diversidade que os jogos web
têm atingido, e também jogos feitos com a
Unity.
A S S I S T I R
https://unity.com/pt/madewith
https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_DEJOWE_20/unidade_1/ebook/index.html#
04/10/2020 Minha Disciplina
https://uniritter.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 6/25
Uma parte muito importante no desenvolvimento de qualquer jogo para qualquer plataforma, de qualquer
gênero, é a prototipação dele.
Para isso, devemos nos atentar a alguns pontos muito importantes no desenvolvimento de um jogo, como o
design do game.
Design de Games
Para Schuytema (2016, p. 3), “Design de games é a planta baixa de um game. Designer é a pessoa
designada para criar a planta baixa e, a partir dela, com a combinação adequada de talento e esforço,
surgirá um game”.
É exatamente isso que faremos com a prototipagem de nosso jogo: criaremos nossa planta baixa, ou o
mapa que nos guiará pelos caminhos que planejamos para nosso jogo. Essa parte é muito importante, pois
não adianta só ter a Unity, sons, imagens e os outros componentes do jogo. É preciso também ter uma ideia
do que queremos construir e como esse jogo deve parecer, por isso fazemos a prototipagem.
Apesar de ter sido projetado para ser produzido como um jogo digital 2D, em seu
primeiro teste para validar e avaliar o conceitos gerais da mecânica, foi utilizado um
protótipo analógico, ou seja, físico. Esta opção deu-se pelo fato de um modelo físico -
utilizando recursos mais acessíveis como papel, EVA, canetas coloridas e brinquedos -
não onera em demasia a equipe e pode ser produzido em um período de tempo bem
reduzido (SATO, 2010, p. 79).
Existem várias maneiras de se prototipar um jogo, e uma das mais usadas e também a mais fácil é a “paper
prototyping”. Essa prototipagem requer lápis e papel. Devemos desenhar nossas telas e interações que
desejamos ter em nosso jogo. Consiste basicamente em criar as possíveis interações humano-máquina, em
que tentamos provar que as mecânicas as quais desejamos inserir em nosso jogo serão divertidas e
aplicáveis. Precisamos fazer esses testes para que possamos ter nossa planta baixa e com ela chegar ao
fim de nosso projeto.
Desta forma, desde o início do game design, o protótipo se faz presente e necessário
para visualizar melhor as ideias propostas e estabelecê-las no projeto como conceitos.
No entanto, a prototipagem não se restringe somente a testar os conceitos gerais de
jogos. Em vários casos, após se estabelecer o conceito geral, alguns testes são
necessários para verificar a viabilidade da representação de uma determinada situação
no jogo a fim de conferir credibilidade ao elemento proposto (SATO, 2010, p. 79).
Precisamos descrever como o jogo será. O título já temos: “Space Shooter”. O jogo terá:
controle do jogo será feito pelo teclado;
mouse será apenas para apertar botões;
tela de Menu principal, com botão Start; e
tela de GameOver com botão Restart.
Além disso,
serão três tipos de naves inimigas, cada uma representando uma onda/wave;
as naves inimigas não vão atirar, somente passar pela tela;
cada nave inimiga terá uma quantidade de vida diferente;
quando qualquer nave for destruída uma animação de partículas vai aparecer no local da
explosão;
os asteroides farão parte do parallax junto com as nuvens de poeira;
a nave do jogador vai atirar sozinha; isso facilita caso deseje levar o jogo para a plataforma
mobile;
todo início de onda/wave trará um PowerUp;
para a nave do jogador morrer, precisa colidir com uma nave inimiga, apenas uma vez;
o tiro terá um valor numérico de dano, que será aumentado com o PowerUp e os inimigos terão
vida;
cada nave inimiga que for destruída contará uma pontuação;
vamos colocar efeitos sonoros e música no jogo;
quando acabarem as ondas/waves, aparecerá a palavra fim junto ao botão Restart.
04/10/2020 Minha Disciplina
https://uniritter.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 7/25
Usaremos a Unity, portanto teremos acesso a uma diversidade de materiais gratuitos desenvolvidos para a
Unity e disponibilizados de maneira muito fácil de se fazer download e acoplar ao projeto. Vamos fazer uma
prototipagem utilizando um editor de imagem, que é basicamente a mesma ideia da “paper prototyping”, só
que digital. Simplesmente, criamos telas digitais para que tenhamos uma maneira de sabermos o que
desejamos fazer e “mais ou menos” quais funcionalidades e telas devemos criar.
Bom, vamos começar pela lista de ferramentas:
Unity, vamos usar a versão Personal, a versão mais atualizada, que é gratuita até certo ponto.
Para mais informações, devemos ler todo o contrato, mas, basicamente, ela é gratuita até
alcançarmos uma determinada quantia em lucro de venda dos jogos feitos com ela. Sendo assim,
para usá-la precisamos aceitar os termos de contrato, instalar e fazer uma conta para acesso
dela. Na Figura 1.1, vemos a tela de download:
Ao finalizar a instalação da Unity, no momento de abri-la pela primeira vez, será necessário fazer o login; em
seguida, podemos criar nosso primeiro projeto. Para criarmos nosso primeiro projeto, as seguintes
informações devem ser preenchidas.
Project name = nome do Projeto.
Location = Local: onde o projeto ficará dentro de seu computador.
Organization: será o nome que escolheu para sua conta da Unity.
Template: 2D, indica o modelo de jogo que desejamos criar.
Add Asset Package: como esse é nosso primeiro projeto não faremos uso desta função agora.
Enable Unity Analytics: quando está ligado, no modo “On”, permite a Unity fazer análises em
seu projeto e fazer possíveis sugestões.
Na Figura 1.2, observa-se a imagem da tela de criação do projeto:
Quando finalizar essa parte, e criar o projeto, a Unity irá iniciar o processo de geração do projeto. As
primeiras informações que estarão contidas neste projeto serão:
Pasta: Favorites, que tem um ícone de estrela, não mexeremosnela.
Pasta: Assets.
Sub-Pasta: Scenes, que fica dentro da pasta Assets.
Arquivo SampleScene, que fica dentro da pasta Scene. Esse arquivo é o responsável por
armazenar uma cena.
Pasta: Packages, armazena bibliotecas e afins; em geral, não mexeremos nela.
A Figura 1.3 mostra a Unity logo após a criação do projeto:
saiba mais
Saiba mais
Descubra outras maneiras de prototipagem de
jogos e aprofunde o seu conhecimento com
relação a prototipagens de jogos em geral.
A C E S S A R
Figura 1.1 - Print da página de download da Unity
Fonte: Elaborada pelo autor.
Figura 1.2 - Print da tela de criação de projeto da Unity
Fonte: Elaborada pelo autor.
Figura 1.3 - Print da tela com projeto recém-criado
Fonte: Elaborada pelo autor.
https://www.fabricadejogos.net/posts/tipos-de-prototipagem-para-desenvolvimento-de-jogos-digitais/
https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_DEJOWE_20/unidade_1/ebook/index.html#
https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_DEJOWE_20/unidade_1/ebook/index.html#
https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_DEJOWE_20/unidade_1/ebook/index.html#
04/10/2020 Minha Disciplina
https://uniritter.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 8/25
A “Scene” traz uma visualização dos objetos que estão em seu jogo. Podem ser usados com várias
finalidades, menus, níveis individuais, entre outras coisas. Na documentação da “Scene”/cena, a Unity
explicita que podemos pensar em cada “Scene” como um nível individual. “Pense em cada arquivo de cena
exclusivo como um nível único” (SCENES, 2019, on-line). Essas cenas são onde podemos colocar nossos
objetos, cenários e obstáculos, entre outros.
Para trabalhar com a Unity, é necessário aprender a manipular e modificar os objetos da cena. A própria
documentação da Unity traz essa visão como uma necessidade básica para quem está querendo trabalhar
com a Unity (THE SCENE..., 2019, on-line).
Em um projeto recém-criado, encontraremos dois objetos dentro da “Scene”: uma câmera e uma luz
direcional. A câmera pode variar entre ortográfica 2D ou perspectiva 3D, e a luz direcional geralmente é
usada para representar o sol da “Scene”. Com apenas uma luz direcional, podemos iluminar toda a
“Scene”.
Essa cena não estará salva. Para isso, podemos seguir o caminho (File > Save As) e escolher um caminho
em seu computador, ou no Windows podemos pressionar as teclas: Ctrl + Shift + S, para abrir a mesma
tela para salvar.
Perceba na Figura 1.3 que, na barra da janela, em seguida ao ícone da Unity, temos a versão da Unity, logo
após, o modelo Personal, o nome da “Scene” que está dentro da pasta Assets/Scene, o nome do projeto, a
plataforma na qual está apontada e, por fim, o modelo do directX que a Unity está usando.
Com a Unity instalada e o projeto criado, podemos procurar pelos conteúdos gratuitos que ela disponibiliza.
A Figura 1.4 mostra a tela de busca dos Assets. Existem algumas categorias com as quais podemos refinar
nossa busca, por preço, conteúdos 3D ou 2D, conteúdos gratuitos, mas, mesmo sem essas categorias,
podemos simplesmente escrever uma palavra como “Space” para fazer uma busca sobre esse tema.
Nosso primeiro jogo será um “Space Shooter”, um jogo de nave espacial de tiro, bem simples, mas com
começo, meio e fim. Para isso, utilizaremos esses “Assets” Space-Kit, basta acessar o site da “Unity Assets
Store”, buscar “2D Space Kit” e clicar em “Add to my assets”.
Com a Unity aberta, acesse o link do “Space-Kit” e clique no botão “azul”, chamado “Open in Unity”. A
Figura 1.5 mostra essa página com esse botão. Essa ação abrirá uma aba no navegador com outro botão
“Abrir URL”; em seguida, o endereço URL que está selecionando. Ele abrirá o conteúdo na Unity, que
poderá ser baixado e instalado. A Figura 1.6 mostra essa página com essa aba aberta.
É muito importante frisar que, para o botão “Open in Unity” aparecer na página dos Assets, como demonstra
a Figura 1.5, é preciso estar logado em sua conta da Unity nessa página:
Figura 1.4 - Print da página da Unity Asset Store
Fonte: Elaborada pelo autor.
saiba mais
Saiba mais
Existem vários outros “Assets” disponibilizados
pela Unity, versões pagas e gratuitas.
A C E S S A R
Figura 1.5 - Print da página da Unity Asset Store
Fonte: Elaborada pelo autor.
Figura 1.6 - Print da página da Unity Asset Store, com aba aberta
Fonte: Elaborada pelo autor.
https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_DEJOWE_20/unidade_1/ebook/index.html#
https://assetstore.unity.com/top-assets/top-free
https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_DEJOWE_20/unidade_1/ebook/index.html#
https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_DEJOWE_20/unidade_1/ebook/index.html#
04/10/2020 Minha Disciplina
https://uniritter.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 9/25
Ao clicar no botão da aba que abrirá na página dos “Assests” da Unity, como demonstrado na Figura 1.6,
estará escrito “Abrir URL: em seguida a url”, que abrirá a tela de download dentro da Unity. Agora, com a
Unity aberta, a aba “Asset Store” estará aberta com o site do “Asset” e com o botão de download do “Asset”,
aparecerá nesse caso, a imagem do “Space-Kit”, e ao lado da imagem o botão azul escrito download, após
o download ser concluído, o botão mudará para “Import”, que significa importar. Clicando nesse botão, a
Unity iniciará o processo de importação do pacote. Por fim, uma tela será aberta dentro da Unity chamada
“Import Unity Package”. Nesta tela, serão listados todos os conteúdos do pacote. E, para finalizar a
importação, será necessário clicar no botão “Import”, desta vez situado na tela “Import Unity Package”. A
Figura 1.7 traz a tela da Unity com a tela “Import Unity Package”:
Quando os conteúdos que mencionamos acima forem importados e incluídos no projeto, uma nova pasta
vai aparecer dentro da pasta “Assets”, a pasta “2D Space Kit”. Usaremos as imagens das naves, fundos e
tudo o mais que estiver disponível dentro desse pacote, para fazer nossa prototipagem de baixo nível.
Depois que a prototipagem estiver pronta, daremos inicio ao passo a passo com a Unity.
Ao finalizar o download e adicionar a pasta “2D Space Kit” em seu projeto, usaremos em nossa
prototipagem as seguintes imagens:
Plano de fundo: Pasta - Assets/2D Space kit/Backgrounds/2.png.
Nave: Pasta - Assets/2D Space kit/Ships and Stations/Cruiser 3.png.
Asteroides: Pasta - Assets/2D Space kit/Asteroids/Asteroid 1.png.
Inimigo 1: Pasta - Assets/2D Space kit/Ships and Stations/Alien 1.png.
Inimigo 2: Pasta - Assets/2D Space kit/Ships and Stations/Alien 2.png.
Inimigo 3: Pasta - Assets/2D Space kit/Ships and Stations/Alien 3.png.
Tiro: Pasta - Assets/2D Space kit/Particles (Sprites)/ Projectile Sharp.png.
Poeira: Pasta - Assets/2D Space kit/Dust and Nebula/DustCloud.png.
Em seguida, a Figura 1.8 traz todos os componentes que serão usados para realizar a prototipagem do
“Space Shooter”, três naves inimigas, uma nave para o jogador, poeira espacial, que será usada para fazer
o parallax, um meteoro, que também será usado no parallax, o tiro e o plano de fundo.
As Figuras 1.9, 1.10 e 1.11, a seguir, foram montadas com um editor de imagem que divide as imagens em
camadas. Dessa forma, conseguimos montar essas imagens que representam o resultado final que o jogo
deverá ter.
Como os botões que vamos usar são da Unity, não precisamos de figuras para prototipagem dessas telas.
praticar
Figura 1.7 - Print da tela da Unity com tela “Import Unity Package”
Fonte: Elaborada pelo autor.
Figura 1.8 - Imagens usadas no jogo
Fonte: Elaborada pelo autor.
Figura 1.9 - Primeira onda/wave
Fonte: Elaborada pelo autor.
Figura 1.10 - Segunda onda/wave
Fonte: Elaborada pelo autor.
Figura 1.11 - Terceira onda/wave
Fonte: Elaborada pelo autor.
https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_DEJOWE_20/unidade_1/ebook/index.html#https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_DEJOWE_20/unidade_1/ebook/index.html#
https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_DEJOWE_20/unidade_1/ebook/index.html#
https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_DEJOWE_20/unidade_1/ebook/index.html#
https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_DEJOWE_20/unidade_1/ebook/index.html#
04/10/2020 Minha Disciplina
https://uniritter.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 10/25
Vamos Praticar
No momento da criação de um jogo, devem-se levar em consideração vários aspectos
que estão envolvidos com a aparência do jogo e com a sua jogabilidade, mas existem
alguns que, se não forem bem construídos, podem gerar problemas no momento de
disponibilizar/exportar o jogo para múltiplas plataformas. Sendo assim, assinale a
alternativa que apresenta um dos aspectos apresentados.
a) Paleta de cores do jogo.
b) Resolução do jogo.
c) Jogabilidade.
d) Possibilidade de multijogadores.
e) Consumo de memória.
04/10/2020 Minha Disciplina
https://uniritter.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 11/25
Com a prototipagem feita, poderemos iniciar o desenvolvimento do “Space Shooter”. Precisamos usar as
imagens que foram citadas anteriormente e montá-las de forma a gerar o mesmo resultado da
prototipagem.
Com a Unity rodando, devemos abrir a pasta ”Assets”, que fica na aba “Project”, na qual está a pasta
“Scenes”. Lá encontraremos nossa cena, que é a parte principal do projeto, e essa parte será onde nosso
jogo inicia sua criação.
A Figura 1.12 mostra a Unity aberta com o Layout Default “padrão” selecionado. Há números verdes e
vermelhos e retângulos com as mesmas cores. Vejamos o que cada um significa.
Vamos iniciar com os números verdes:
1. Nesse campo, podemos trocar o layout da tela da Unity. O layout é como a tela é apresentada.
Podemos também modificar o Layout e salvá-lo.
2. Na aba “Game”, vemos como a câmera do jogo vai visualizá-lo e como isso ficará no final. Ela
representa o jogo sendo executado, e podemos testá-lo antes de passar para alguma plataforma.
3. Nesse campo, podemos mudar a visão da câmera e informar que ela ficará em formato 2D. Caso
esteja desmarcado, a câmera fica em formato 3D. Lembrando que isso não vai mudar a
visualização da câmera do jogo, que é a imagem que aparece na aba “Game”, e mudará somente
a câmera da aba “Scene” para esta visão 3D.
4. A aba “Scene” traz uma visualização dos objetos que estão em seu jogo. Podem ser usados com
várias finalidades, menus e níveis individuais, entre outras coisas. Na documentação da
“Scene”/cena, a Unity explicita que podemos pensar em cada “Scene” como um nível individual.
“Pense em cada arquivo de cena exclusivo como um nível único” (SCENES, 2019, on-line). Essas
cenas são o local onde podemos colocar nossos objetos, cenários e obstáculos, entre outros.
Para trabalhar com a Unity, é necessário aprender a manipular e modificar os objetos da cena. A
própria documentação da Unity traz essa visão como uma necessidade básica para quem está
querendo trabalhar com a Unity (THE SCENE VIEW, 2019, on-line).
5. Esse ícone é a nossa “Scene”, onde todo o jogo é montado.
6. Essa é a pasta onde a “Scene” fica, e, quando necessário criar outra “Scene”. O ideal é criá-la na
mesma pasta que a existente.
7. Essa é nossa pasta “Assets”, que fica dentro da aba “Project”. Essa pasta armazena todos os
conteúdos que podemos usar na criação de nosso jogo. Os conteúdos que baixamos com os
links anteriores ficarão nessa pasta, em suas respectivas pastas, mas nada nos impede de
arrastar novos arquivos para essa pasta, ou mesmo criar uma nova.
8. A aba “Inspector” guarda todos os componentes que o objeto pode ter. Podemos adicionar novos
componentes, como colisor, scripts e luz, enfim, vários tipos de componentes a um determinado
objeto.
O componente “Script” é muito importante. Ele possibilita que o código programado com a
linguagem C# seja usado pela Unity e possa fazer efeito em objetos da “Scene”, ajudando a controlar, criar
rotinas e condições para ocorrerem ações.
Números vermelhos:
Space Shooter, Início doSpace Shooter, Início do
DesenvolvimentoDesenvolvimento
Figura 1.12 - Unity Default/Padrão
Fonte: Elaborada pelo autor.
https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_DEJOWE_20/unidade_1/ebook/index.html#
04/10/2020 Minha Disciplina
https://uniritter.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 12/25
1. A aba “Hierarchy” ou hierarquia contém todos os conteúdos que irão compor o jogo.
Botões, player, planos de fundo, efeitos e tudo o mais que vai compor o jogo deve estar dentro
dessa aba. Podemos dizer que ela contém uma lista de todos os objetos que compõem a
“Scene”.
2. Nesse espaço logo abaixo da aba “Hierarchy”, temos o create. Podemos clicar nele, e uma tela
se abrirá no local do clique, em que poderemos escolher criar algum elemento 2D, 3D, efeitos,
áudio e luz, entre outros tipos de componentes que podem compor a cena e serem usados no
jogo. Encontramos também o componente “NewScene”.
3. A câmera do jogo é o ponto que visualiza tudo o que aparece dentro do jogo. Ela mostra a
imagem que aparece na tela do computador quando o jogo é jogado. A visão da câmera aparece
na aba “Game”.
Chegamos ao retângulo vermelho no meio da tela. Ele mostra três botões: Play, Pause e Step:
Botão Play: inicia o jogo. Representa a ação de executar o jogo, é como se estivéssemos
pedindo para que o jogo fosse iniciado.
Botão Pause: faz o jogo ficar pausado, parado.
Botão Step: esse botão faz as ações do jogo serem puladas uma a uma em sequência, frame a
frame.
Depois de nos familiarizarmos com parte da tela inicial da Unity, vamos iniciar nossa jornada no
desenvolvimento do jogo “Space Shooter”. Como já fizemos as devidas importações do pacote “2D Space
Kit”, podemos usar seu conteúdo.
Devemos encontrar a imagem de fundo que está na pasta – Assets/2D Space kit/Backgrounds/2.png. O
nome da imagem é 2.png. Caso queira utilizar outra imagem para fazer essa parte, fique à vontade, pois
existem várias outras imagens interessantes nesta pasta.
Encontrando o plano de fundo, podemos utilizá-lo de duas maneiras:
Podemos arrastá-lo para dentro da Aba “Scene”.
Podemos arrastá-lo para dentro da aba “Hierarchy” (que quer dizer hierarquia), dentro do projeto.
Adicionando o objeto a “Scene” ou direto na “Hierarchy”, o objeto aparecerá na tela da aba “Game”. Vamos
tentar? A Figura 1.13 demonstra o processo de inserir a imagem direto a aba “Scene”. Vamos tentar inseri-
la na “Hierarchy”?
Caso arraste o objeto que deseja inserir na aba “Hierarchy” para cima do objeto câmera que lá está,
veremos que a Unity permitirá esse movimento e os objetos ficaram agrupados como pastas. Mais à frente,
quando falarmos do parallax, falaremos sobre essa ação com detalhes. Caso clique com o botão direito
do mousedentro da área da aba “Hierarchy”, ou na ação de “create” que está abaixo do nome da aba
“Hierarchy”, veremos que existem vários tipos de objetos pré definidos pela Unity, que podemos usar como
peças na construção do jogo.
Sendo assim, podemos perceber na Figura 1.13 que existe abaixo do nome da aba “Game”, um retângulo
vermelho, que apresenta o campo que define a proporção de nossa tela. Abrindo-o, veremos vários valores
predefinidos. Escolha o valor que melhor se encaixe com seu gosto. Por exemplo, o valor de 5:10 ou 6:10
se encaixa melhor com uma tela de celular; já um valor de 16:9 ficaria melhor em uma tela de um desktop.
Clicando na área que o retângulo destaca, será aberta uma função na qual, ao final, teremos um ícone com
um sinal de mais (+). Clicando nele, poderemos definir uma nova proporção de tela.
A Figura 1.14 traz alguns botões que são usados para girar, aumentar, diminuir e movimentar os objetos
que estão dentro da “Scene”. O conjunto desses botõesé chamado de “Transform Toolset”, ou conjunto
de ferramentas de transformação.
Na Figura 1.14, temos na sequência em que aparecem:
Hand Tool: quando selecionado, move todo o cenário do jogo.
Move Tool: quando selecionado, podemos mover um objeto da cena do jogo para posicioná-lo.
Rotate Tool: quando selecionado, podemos rotacionar um objeto na cena do jogo.
Scale Tool: quando selecionado, podemos maximizar ou minimizar um objeto na cena do jogo.
Rect Tool: quando selecionado, assume que estamos tratando um objeto bidimensional. Pode
ser usado para maximizar ou minimizar de forma diferente a disponível na opção anterior.
Move, Rotate ou Scale Selected Objects: quando selecionado, possibilita ao mesmo tempo
rotacionar mover ou maximizar. É mais usado para objetos 3D (HALPERN, 2019).
Figura 1.13 - Unity arrastando imagem para a Scene
Fonte: Elaborada pelo autor.
https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_DEJOWE_20/unidade_1/ebook/index.html#
04/10/2020 Minha Disciplina
https://uniritter.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 13/25
Para fazer uso dessas funções, devemos sempre selecioná-las, e também selecionar um objeto. Assim,
podemos usar a aba “Scene” para fazer uso dessas funções.
“Dica: os seis controles no Transform Toolset são mapeados individualmente para as seis teclas a seguir:
Q, W, E, R, T, Y. Use essas teclas de atalho para alternar rapidamente entre as ferramentas” (HALPERN,
2019, p. 25, tradução nossa).
Tente mover a imagem de fundo que já foi colocada na “Scene” e veja como esses botões funcionam.
A Figura 1.15 mostra a ação de clicar com o botão direito dentro dos limites da aba “Hierarchy”. Dessa
forma, podemos escolher um novo tipo de objeto que fará parte da hierarquia de nosso jogo.
Criando a Nave do Jogador
Vamos começar apresentado uma das partes mais usadas na Unity, o “GameObject”. Para reconhecer um,
é simples. Todo “GameObject” tem um componente “Transform” nele, que serve para indicar o
posicionamento do objeto na “Scene”. A Unity não permite que esse componente seja deletado
(GAMEOBJECT, 2019).
GameObjects são os objetos fundamentais da Unity que representam personagens,
objetos e cenários. Eles não realizam muito em si, mas atuam como contêineres para
componentes, que implementam as reais funcionalidades (GAMEOBJECT, 2019, on-line,
tradução nossa).
Quando criamos ou arrastamos um objeto para dentro de outro, a Unity entende isso como um
agrupamento de objetos. Esse objeto que está dentro do outro é chamado de “child”, ou seja, ele vira filho
do objeto que o armazena, e esse objeto que está contendo outro se transforma em um container, pois ele
contém outros objetos.
Podemos ver que existem vários tipos de “GameObjects” que podemos fazer uso, mas, para exemplificar,
vemos que, na Figura 1.15, escolhemos o grupo de objetos 2D e está selecionada a opção do objeto
“Sprite”. Esse objeto é o equivalente a um espaço para uma imagem, pois, para aparecer alguma imagem
dentro do “Sprite”, devemos indicar seu caminho na aba “Inspector”, dentro do componente “Sprite
Renderer”, no campo “Sprite”, ou podemos simplesmente arrastar a imagem .jpg, .png, entre outras, para
cima do campo “Sprite” desse componente, que a imagem seria direcionada. Mas lembre que, para arrastar
uma imagem para o campo “Sprite”, a imagem precisa estar dentro do projeto, assim como a tentativa de
manipular outros arquivos. Esses devem estar dentro da Unity, aparecendo na pasta “Assets”.
O componente “Sprite Renderer” é o responsável por pintar as imagens 2D na tela da Unity e gerenciar
também a ordem de pintura dessas imagens.
Já que aprendemos a colocar objetos na tela, vamos colocar alguns outros para treinar. Coloque a nave
dentro da tela, arraste a imagem da nave que está na pasta “Assets/2D Space kit/Ships and
Stations/Cruiser 3.png” para dentro da “Scene”. Uma dica: clique em cima da aba “Game” e a arraste para
o lado. Você verá que pode posicioná-la igual ao exemplo da Figura 1.13. Dessa forma, sempre teremos a
visão da aba “Scene” e da aba “Game”, ao mesmo tempo.
Agora que o “Cruiser 3” apareceu na aba “Hierarchy”, selecione-o e vá até a aba “Inspector” e selecione no
campo “Tag” a “Tag” Player. Usaremos a “Tag” para encontrar os objetos no momento da colisão. A Figura
1.16 traz um exemplo.
Figura 1.14 - Transform Toolset
Fonte: Elaborada pelo autor.
Figura 1.15 - Unity selecionando Game Objetc que deseja criar
Fonte: Elaborada pelo autor.
https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_DEJOWE_20/unidade_1/ebook/index.html#
https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_DEJOWE_20/unidade_1/ebook/index.html#
04/10/2020 Minha Disciplina
https://uniritter.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 14/25
A aba “Inspector” é um editor de propriedades de “GameObjects”, situada à direita da tela da Unity, logo
abaixo de onde selecionamos o layout da tela da Unity. O “Inspector” é sensível ao contexto do objeto.
Quando o jogo está rodando, podemos ver, por exemplo, os valores do componente “Transform” como
posição serem modificados pelas ações do jogo (THORN, 2018, tradução nossa).
O recurso Tag permite marcar objetos específicos na cena com tags ou rótulos
específicos, permitindo que esses objetos sejam facilmente identificados no código, para
que possamos verificar rapidamente se o jogador, em vez de outros objetos, está
colidindo com as moedas (THORN, 2018, p. 85, tradução nossa).
1. Tag: clique e escolha a opção Player. Caso não tenha, clique em Add Tag, para adicionar uma
nova Tag.
2. Uma boa prática é sempre tentar manter os objetos centralizados ao máximo possível, como o
jogador. Nesse caso, a nave é nosso objeto central. Clique na engrenagem do componente
“Transform” e selecione a primeira opção “Reset”, para trazer a nave para o eixo em x, y, z e
zerar também a rotação e definir como 1 a escala do objeto selecionado. Faça isso apenas uma
vez, e, a partir desse início, comece a definir novas formas ao seu objeto. Por exemplo, vou
diminuir o tamanho da minha nave para 0.6 no campo “Scale” ou escala.
Para manter a equivalência das distâncias da nave, devemos diminuí-la por igual nos três eixos
da escala. Para facilitar, clique na bolinha do canto da imagem com o mouse e com o teclado
pressione a tecla “Shift”. Agora, arraste o mouse que a imagem vai diminuir com equivalência.
3. Por fim, vemos o campo “Order in Layer”, ordem na camada, ou seja, todo o objeto que estiver
na cena e tenha uma imagem ligada a ele. Esse terá o componente “Sprite Renderer”, o qual
traz consigo uma ordem de “Render”. Em jogos 2D, a Unity organiza as imagens da cena em
camadas, e elas definem quais objetos vão aparecer por cima dos outros.
Vamos experimentar. A nave e o plano de fundo têm esse campo. Mude o número de um deles e
veja como funciona. Lembre-se que o menor valor é o primeiro layer que é zero, e temos um
limite maior do que precisamos usar, sendo no total de 32 “Layers” ou camadas, que vão de 0 a
31.
A nave ficará no “Layer” 1 e o fundo ficará no “Layer” 0.
Após centralizar a nave, devemos mover a câmera para deixar a nave mais próxima da borda inferior da
tela. Para isso, selecione o objeto câmera na aba “Hierarchy” e mova a câmera usando a opção “Move
Tool” até que a nave esteja mais próxima da borda inferior da câmera.
Por fim, podemos adicionar à nave um detector de colisão. Basicamente, é um componente que vai
demarcar um campo ao redor de um objeto do jogo. Toda vez que dois detectores de colisão colidirem, a
Unity saberá que houve uma colisão e fará a ação dela ocorrer. Para adicionar esse componente, selecione
o objeto da nave na aba “Hierarchy” ou clicando na cena. Em seguida, vá até a aba “Inspector” e clique no
botão “Add Component” e vamos adicionar dois componentes,. Para buscar esses componentes, só
precisamos escrever os nomes no campo de busca que vai aparecer após clicar o botão. O “Rigidbody 2D”possibilita o movimento dentro da “Scene”. Devemos verificar se o campo “Body Type” está em Dynamic,
“Gravity Scale” em 0 (zero) e “Collision Detection” em Discrete. O “Polygon Collider 2D” verifica nossa
colisão. Nesse, precisamos selecionar o campo “Is Trigger”, e esse campo nos ajudará a fazer a colisão
funcionar de maneira mais simples.
saiba mais
Saiba mais
Descubra outros tipos de câmeras para jogos.
Cada tipo de câmera tem seu propósito e
necessidade. Com a evolução dos jogos
digitais, vários tipos de câmeras foram
aparecendo no mercado e neste vídeo são
listadas oito tipos de câmeras.
A S S I S T I R
Figura 1.16 - Inspector
Fonte: Elaborada pelo autor.
https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_DEJOWE_20/unidade_1/ebook/index.html#
https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_DEJOWE_20/unidade_1/ebook/index.html#
04/10/2020 Minha Disciplina
https://uniritter.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 15/25
Para finalizar, vamos fazer a nave se mover dentro de nossa tela por meio de “inputs” do teclado. Os
“inputs” ocorrem quando pressionamos um botão do teclado ou clicamos com o mouse. Selecione a nave
e, com a “Move Tool”, mova a nave até as bordas da tela que aparece na aba “Game”. Vamos encontrar
alguns valores, direita = 2, esquerda = -2, cima = 7 e baixo = -1. Esses valores podem ser diferentes para
cada tamanho diferente de tela e nave. O importante é que os valores que forem informados nestes campos
mantenham a nave do jogador dentro da tela. A Figura 1.17 mostra as posições que queremos mapear.
Daremos os nomes dessas posições em relação a seus eixos, xMin e xMax, yMin e yMax. Guarde esses
valores, pois vamos usá-los no “Script” que vamos criar agora. Antes, crie na pasta “Assets” uma nova
pasta e a nomeie como “Scripts”. Adicione um novo componente à nave, o componente “New Script”.
Clique nele e dê o nome de “PlayerGerente”. Seu conteúdo é o código “C#” (lemos “se-sharp”). Para abrir
esse “Script” no Visual Studio, basta darmos um clique duplo no campo “Script” do componente “Script”.
O código a seguir pode ser colado dentro desse novo “Script” que criamos.
UnityEngine: biblioteca que possibilita o código C# a conversar com os componentes da Unity.
Serializable: serialização é um processo que transforma os dados ou um objeto em um formato
que a Unity pode armazenar e reconstruir em outro momento.
FixedUpdate: os cálculos de atualização de física são processados imediatamente após esse
Update. Aplicando os cálculos de movimento dentro de FixedUpdate, não precisamos multiplicar
seus valores por Time.deltaTime. Seu tempo de execução é feito em um tempo confiável,
independentemente da taxa dos frames.
Input: classe responsável por receber valores que entram no jogo.
GetAxis: recebe valores mapeados pela Unity. Estes valores são as teclas W, S, seta para cima,
seta para baixo dos eixos horizontais, e teclas A, D, seta direita e seta esquerda verticais.
gameObject.GetComponent<>: GameObject é o objeto ao qual o Script está vinculado, e o
GetComponente busca o determinado componente que esse objeto tem em seu “Inspector”,
informando o tipo do componente desta forma: <Nome do Componente>.
Transform: esse componente determina a posição, rotação e escala de cada objeto da cena.
Todos os “GameObject” tem um componente desse na aba “Inspector”.
RigidBody 2D: esse componente é o responsável por alterar as propriedades do componente
Transform. Podemos alterar os valores diretamente no componente Transform, mas, em relação
à colisão, isso não é muito interessante. Devemos alterar os valores desse componente somente
caso não exista um RigidBody. Esse componente é muito necessário para que a colisão possa
funcionar agindo junto com o componente collider.
Para uma variável aparecer no componente “Script” dentro do “Inspector”, é preciso declará-la como public
= pública como, podemos ver na Figura 1.18.
Veja na Figura 1.18 o resultado que desejamos alcançar. Nela, podemos observar o componente
Script PlayerGerente aberto e dentro dele os campos Velocidade e Limites; em sequência, os campos
xMin, xMax, yMin, yMax.
Figura 1.17 - Aba Game
Fonte: Elaborada pelo autor.
saiba mais
Saiba mais
Para saber mais, veja, neste vídeo,
informações importantes sobre o
funcionamento de vetores nos jogos digitais,
vetores 2D e 3D:
A S S I S T I R
Figura 1.18 - Nave em posição e Script preenchido
Fonte: Elaborada pelo autor.
https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_DEJOWE_20/unidade_1/ebook/index.html#
https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_DEJOWE_20/unidade_1/ebook/index.html#
https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_DEJOWE_20/unidade_1/ebook/index.html#
04/10/2020 Minha Disciplina
https://uniritter.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 16/25
praticar
Vamos Praticar
Observando atentamente a tela da Unity, podemos notar que ela tem uma grande
quantidade de funções e ferramentas. Na aba Scene, existe um botão com a
inscrição 2D. Escolha a alternativa que traz a informação correta sobre a ação que esse
botão tem.
a) Esse botão funciona para ativar a possibilidade de adicionar a cena objetos
2D.
b) Esse botão funciona para selecionar todos os objetos 2D da cena do jogo.
c) Esse botão funciona para esconder os objetos 2D da cena.
d) Esse botão funciona para identificar para a Unity, quando será adicionada a
cena um objeto 2D.
e) Esse botão funciona para fazer a visão da aba Scene ficar em 2D ou 3D.
04/10/2020 Minha Disciplina
https://uniritter.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 17/25
Agora que sabemos manipular objetos, inserir novos componentes e receber botões do teclado e
compreendemos uma parte essencial da Unity, vamos fazer uso desse aprendizado para criar os tiros da
nave e o parallax.
Atirando com a Nave
Primeiro, precisamos criar nosso Tiro. Na aba “Project”, crie uma nova pasta, clique com o botão direito na
pasta “Assets”, selecione “Create” e depois “Folder”, que é pasta em inglês. Dê um nome a essa pasta, por
exemplo: “Prefab”.
Ao adicionar um novo objeto, lembre-se sempre de resetar o componente “Transform” dele e depois pode
posicioná-lo.
Na aba “Hierarchy”, crie um objeto vazio em inglês. Ele está como “Create Empty”. Dê o nome dele de
Tiro. Dentro dele, crie um objeto 3D chamado “Quad”. Nesse objeto, chamado “Quad”, arraste a imagem do
Tiro, que foi descrita anteriormente.
Perceba que ao adicionar um objeto dentro do outro o primeiro objeto agora tem uma seta ao lado do nome
na aba “Hierarchy”, em que podemos clicar para esconder ou mostrar seu interior, nesse caso o objeto
“Quad”.
Ajuste o campo “Shader” do componente “Default-Material”. Ao adicionarmos a imagem, ele deve se
chamar “Projectile Sharp”. No campo “Shader”, selecione “Legacy Shader”, depois “Transparent” e, por
fim, “Diffuse”.
Selecione o Tiro, adicione nele dois componentes, “Rigidbody 2D”, troque o valor da gravidade para zero(0)
e, no “Capsule Collider 2D”, clique no botão do campo “Edit Collider”. Será possível editar o tamanho em
largura e altura dessa cápsula. Quando terminar de ajustar a cápsula de forma que mantenha o desenho do
Tiro dentro dela e fique o mais justo possível, altere para zero(0) os valores dos campos x e y do campo
“Offset” , verifique se o valor do campo “Direction” está como “vertical” e marque a caixa do campo ”Is
Trigger”.
Quando a propriedade “Is Trigger” está marcada, o colisor fica sendo usado para disparar um evento e fica
sendo ignorado pelo motor de física da Unity.
Olhando para esse objeto na aba “Scene”, podemos ver que ele agora não é mais um quadrado e já tomou
a forma da imagem. Para mudarmos a cor desse Tiro, selecione o “Quad” dentro do objeto Tiro, e dentro
dele adicione um objeto luz (em inglês, está como “Light”). Selecione a luz “Directional Light”. Na aba
“Inspector”da luz, veja que, no componente “Light”, existe um campo “Color”, que está branco. Clique
nele e escolha uma cor. Agora, precisamos adicionar dois “Scripts” ao Tiro: o primeiro fará ele se mover
quando for atirado pela nave, o outro fará o Tiro ser destruído quando sair da tela do jogo.
Shader: basicamente, é quem calcula pixel a pixel como a cor da luz que atinge o material.
Default-Material: o material define como o objeto reflete a luz.
Offset: é um valor que referencia a distância entre o componente e a posição de origem, nesse
caso o próprio objeto.
Direction: é a direção para onde a cápsula está apontada, vertical ou horizontal.
Space Shooter: FuncionalidadesSpace Shooter: Funcionalidades
04/10/2020 Minha Disciplina
https://uniritter.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 18/25
Veja o “Script” de movimentação do Tiro:
Veja o “Script” que destrói o Tiro quando sai da tela:
Por fim, para que possamos usar esse objeto Tiro em outras naves, arraste-o da aba “Hierarchy” para a
pasta que criamos no início, a pasta “Prefab”.
Dessa forma, sempre que precisarmos dele, basta arrastá-lo para uma nova posição. Chamamos esse tipo
de objeto de “Prefabs”. São “Game Objects” que foram pré-fabricados e já estão prontos para uso. Quando
um “Prefab” contém outros objetos dentro dele, ele se transforma em um container. Sendo assim, teremos
cópias dele em vários lugares. Quando for para um inimigo, podemos alterar sua cor, tendo Tiros de cores
diferentes.
Para que esse Tiro funcione em nossa nave, precisamos fazer alguns ajustes. Clique na nave e dentro dela
adicione um objeto vazio. Dê o nome dele de “SpawnShoot” e o posicione na ponta da nave, na posição
onde deseja que o Tiro saia. Para ajudar a posicionar o “SpawnShoot”, jogue o tiro dentro do
“SpawnShoot” para que ele fique visível, e depois delete o Tiro quando ele estiver posicionado.
Para que a nave possa atirar, precisamos criar um novo “Script” para a nave. Repita o processo de criação
de “Script” visto anteriormente e dê o nome dele de “Player Tiro”. Dentro desse “Script”, cole o código a
seguir nele.
Arraste o “SpawnShoot” e o Tiro para seus locais correspondentes dentro desse novo “Script”, ajuste um
valor para a variável “Tempo_Entre_Tiros” (uma sugestão é 0.25) e troque a “Tag” para Tiro. Caso não
tenha, adicione-a.
Parallax
Antes de posicionar os objetos, lembre-se de sempre de resetar seus valores do componente “Transform”
na aba “Inspector”.
Para criarmos o efeito de Parallax, precisamos fazer uma camada ou mais de uma que se mova entre a
nave e o fundo do jogo. Imagine que o jogo é uma pilha de papéis, o fundo do jogo é o primeiro papel dessa
pilha e a nave do jogador é o papel que está no topo dessa pilha. O efeito parallax deve ficar entre o papel
que está na base da pilha e o papel que está no topo da pilha. A Figura 1.19 demonstra a ordem dessa
pilha:
reflita
Reflita
Podemos ver que existe uma pequena complexidade para
fazer a Unity funcionar da maneira que desejamos, mas leve
em consideração que a utilização de uma Engine com a
finalidade de desenvolver um jogo é uma das melhores saídas
que existem hoje no mercado de desenvolvimento de jogos.
De uma forma ou de outra, sempre existirá um nível de
complexidade, mas lembre-se de que, para criar a Unity,
existem dezenas de profissionais bem treinados a fim de
construir o melhor produto do mercado e sempre continuar a
inová-lo.
Figura 1.19 - Ordem da pilha
Fonte: Elaborada pelo autor.
https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_DEJOWE_20/unidade_1/ebook/index.html#
04/10/2020 Minha Disciplina
https://uniritter.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 19/25
Podemos pensar, então, que, no momento da Unity pintar um objeto na tela, esse objeto já deve vir na
ordem em que ele vai ser pintado. Dessa forma, ele sempre será sobreposto por alguns objetos e sobrepor
outros. Nesse caso, a nave vai sobrepor a poeira e o fundo da tela.
Precisamos seguir uma receita que nos guie até a finalização desse efeito. Sabemos que o parallax precisa
ter um movimento contínuo, então devemos fazer uma emenda na qual ele acabe e continue, sem que o
jogador perceba essa emenda.
Uma coisa muito importante: o “Quad” é um objeto 3D, portanto não possui o componente “Sprite Render”.
Sendo assim, não há como ajustar quem aparece primeiro de maneira 2D, então devemos mexer no valor
do eixo z da nave e do “Gerencia Parallax”. Colocando o eixo z com o valor de 0 ou -1 deve ser o
suficiente. Caso não seja, procure um valor que fique bom para seu jogo. Lembre-se da pilha que ordena os
objetos.
Vamos criar um objeto vazio na aba “Hierarchy”, o qual terá o nome de “Gerencia Parallax”. Não devemos
usar acentos em nomes de objetos ou variáveis, ou qualquer outra coisa que entrar em contato com a lógica
do jogo, pois isso pode gerar erros no futuro.
Dentro do objeto que acabamos de criar, criaremos outro objeto vazio, ao qual daremos o nome de
“Parallax 1”. Dentro desse, criaremos um objeto 3D do tipo “Quad”. Quando ele estiver pronto, podemos
copiá-lo e criaremos no total três nuvens, às quais daremos o nome de “nuvem 1”, “nuvem 2” e “nuvem 3”.
Faremos uma organização de forma aleatória, o que nos parecer melhor. Lembre-se de que um dos
ingredientes de um jogo é a criatividade.
Agora, encontre a imagem de nuvem que separamos anteriormente e arraste para o “Quad” que está na
aba “Scene”. Caso contrário, não funcionará da forma correta. Veremos que nosso “Quad” agora tem o
formato da nuvem de poeira, no campo “Shader” dentro do componente “Default-Material”, que deve estar
com o nome de “DustCloud 1”, que fica na aba “Inspector” desse “Quad”.
Selecione o “Shader”, “Mobile” depois “Particles” e, por fim, “Additive”. Com essa formação pronta,
selecione a nuvem e pressione “Ctrl + c” depois “Ctrl + v” (o famoso copiar e colar) e crie mais duas
nuvens. Posicione-as da maneira que mais agradar visualmente. Podemos ver um exemplo na Figura 1.20:
Na Figura 1.20, podemos observar que na aba “Scene” as nuvens estão destacadas com a borda laranja,
pois elas estão selecionadas. Para selecionar mais de um objeto, precisamos pressionar a tecla Shift e
clicar nos outros objetos que desejamos selecionar.
Com essas três nuvens selecionadas, repita o processo de copiar e colar e arraste-as novas nuvens para
cima da tela no eixo y. Para isso, use a função “Move Tool”, deixe-as próximas da borda superior da tela,
mantendo a formação que fez. Para que o efeito parallax funcione de maneira fluida, repita esse processo
mais uma vez e leve essas três novas nuvens além das anteriores e também mantenha proximidade. Por
fim, é preciso criar dentro do objeto “Parallax 1” um objeto vazio, e posicioná-lo no final dessa formação de
nuvens que fez, um pouco distante da última nuvem dessa sequência. Para esse novo objeto, podemos dar
o nome de “gerencia_Inicio”. A Figura 1.21 demonstra essa formação e deixa os objetos selecionados para
que possamos ver como estão dispostos na “Scene”. O objeto “gerencia_Inicio” está posicionado no local
onde estão as setas verde e vermelha, que representam os eixos X e Y.
Perceba na Figura 1.21 que o objeto mais distante é o “gerencia_Inicio”. Ele é utilizado para sabermos
para onde a próxima sequência de parallax deve ser movida e ficarem em um loop enquanto o jogo estiver
sendo executado.
Adicione o “Script” a seguir no objeto “Parallax 1”.
Agora, podemos selecionar o objeto “Parallax 1”, copiá-lo e colá-lo dentro do objeto “Gerencia Parallax”.
Precisamos mover esse novo parallax para além das nuvens existentes. Agora, com “Parallax 1” e
“Parallax 2” posicionados, precisamos gerenciar o “fimTela”. Esse objeto vazio deve ser criado dentro do
objeto “Gerencia Parallax” e posicionado além dos limites da borda inferior da tela, para que, quando
nossas nuvens chegarem até ele, elas possam voltar para cima onde está o objeto “gerencia_Inicio”, que
segue a cauda de cada um dos parallax que criamos,o 1 e o 2, como podemos ver no exemplo da figura
1.22. O “fimTela” é igual para os dois parallax, mas o “gerencia_Inicio” deve ser ligado ao “Parallax 1” no
“gerencia_Inicio” do “Parallax 2” e vice-versa.
Esse processo do parallax necessita de alguns testes e ajustes, para que as nuvens possam passar e fazer
a volta de maneira fluida. Para testar, precisamos apertar o botão de “Play” da Unity e ver se tudo ocorre de
Figura 1.20 - Nuvens de poeira
Fonte: Elaborada pelo autor.
Figura 1.21 - Sequência do objeto Parallax1.
Fonte: Print feito pelo autor.
https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_DEJOWE_20/unidade_1/ebook/index.html#
https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_DEJOWE_20/unidade_1/ebook/index.html#
04/10/2020 Minha Disciplina
https://uniritter.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 20/25
maneira correta.
Lembre-se de que os campos onde os valores de “gerencia_Inicio”, “fimTela” e a “velocidade” das
nuvens, iriam aparecer no “Script” criado em “Parallax 1” e “Parallax 2”. Podemos deixar a velocidade deles
em 0.1 e, para os outros dois valores, podemos arrastar os objetos “gerencia_Inicio” e “fimTela” para os
campos dentro do componente “Script” de cada parallax.
Uma dica: a nave pode ficar no eixo z = -1, e o objeto “Gerencia Parallax” com o valor do eixo z =
-0.8953174. Lembre-se sempre de que esses valores são demonstrativos. Você pode e deve alterar esses
valores para que eles representem melhor o seu jogo. A Figura 1.22 representa bem essa formação, e
novamente, como o objeto que marca o fim da tela não tem imagem igual aos objetos que marcam o início,
dessa vez o objeto “fimTela” está sendo representado pelas setas verde e vermelha.
praticar
Vamos Praticar
No desenvolvimento de jogos, existem vários tipo de efeitos que podemos criar, um que
é muito usado no desenvolvimento de jogos 2d é o efeito de “parallax”. Este efeito é
muito simples de ser criado e dá um toque especial ao jogo. Escolha a alternativa que
indica a definição do efeito parallax.
a) O parallax é um efeito que podemos criar para dar a impressão de movimento
2D ao jogo. Dessa forma, podemos criar uma ilusão de movimento
bidimensional.
b) O parallax é um efeito que podemos adicionar somente a jogos espaciais,
pois ele cria o efeito de espaço profundo ao jogo. Praticamente todos os jogos
espaciais usam este efeito.
c) O parallax é um efeito que nos dá profundidade em jogos 2D. Como o jogo é
feito em camadas, algumas delas se movimentam em velocidades diferentes
dando o efeito de profundidade.
d) O parallax é um efeito que nos ajuda a criar jogos em geral. Sem esse efeito é
praticamente impossível criar um jogo que seja agradável.
e) O parallax é um efeito que nos proporciona engajamento no jogo, técnica
muito usada para ganhar mercado e jogadores; sem ele, um jogo não é
vendável.
Figura 1.22 - Sequência do objeto Parallax1 e Parallax2
Fonte: Print feito pelo autor.
https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_DEJOWE_20/unidade_1/ebook/index.html#
04/10/2020 Minha Disciplina
https://uniritter.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 21/25
Para criarmos um “PowerUp” (ou em português um aumento de poder), precisamos fazer algumas
alterações em nossos “Scripts” e adicionar algumas modificações. Vamos começar pela nave: precisamos
adicionar ao “Script” “PlayerTiros” as seguintes informações.
Antes do método Update(), devemos adicionar:
Dentro do Update, devemos adicionar esse código. Já existem códigos dentro do Update. Adicione esse
após o código existente no Update:
Perceba que cada classe e método dentro de um “Script” tem seu espaço determinado com chaves. “{“
indica a abertura e “}” indica o fechamento, tanto de classes quanto de métodos.
Classe: na Unity, uma classe armazena o código de um “Script”. Ela pode conter variáveis,
métodos e seus respectivos valores e códigos.
Método: eles servem para conter funcionalidades que iremos programar, como atirar com a nave,
ou mover a nave, dentre outros.
Variáveis: são usadas para conter valores, que podem ser numéricos, ou até outros objetos,
como um RigidBody 2D.
Agora, precisamos criar um objeto para ser nosso “PowerUp”. De tempos em tempos, ele deve aparecer na
tela. Escolhi criar o “PowerUp” com uma réplica da nave que estamos usando para o jogador, porém com
um tamanho menor. Para mudar o tamanho da nave, use a ferramenta “Scale Tool”. Vá até a pasta onde
encontramos a nave da primeira vez. Aqui está o caminho “Assets/2D Space kit/Ships and Stations/Cruiser
3.png”. Arraste a imagem da nave para a aba “Hierarchy” e mude o nome desse objeto para “PowerUp”.
Crie nesse objeto um “Script” chamado “PowerUp”, apague os métodos Updates e start e coloque esses
métodos a seguir dentro da classe “PowerUp” que está dentro do “Script”.
Verifique se sua nave está usando a “Tag” Player, pois esse método gerencia a colisão entre dois objetos
que tenham colisão. Para isso, devemos adicionar em nosso objeto “PowerUp” um corpo de colisão, o
componente “Polygon Collider 2d”. Marque a caixa do campo “Is Trigger”, e um “Rigidbody 2D”. Lembre-
se de zerar a gravidade e, por fim, troque a “Tag” para PowerUp. Agora, podemos transformar o “PowerUp”
em um “Prefab”, arrastando-o da aba “Hierarchy” para a pasta efeitos.
Space Shooter: Enfrentando Inimigos
Vamos criar um pouco de ação em nosso jogo. Para isso, vamos criar os inimigos e suas “waves”; em
português, “waves” são ondas. Junto dessas “waves”, vamos colocar nosso “PowerUp”.
Inimigos
Para criar nossos “Prefabs” dos inimigos, precisamos arrastar a imagem da nave do primeiro inimigo para a
aba “Hierarchy”. Ao final desse processo, vamos conseguir fazer cópias desse “Prefab” e mudar a imagem,
valor de vida e tudo o mais que for necessário para criarmos outros inimigos.
Em seguida, devemos ajustar o campo “Order in Layer” para 1, mudar a “Tag” para Inimigo e sempre nos
lembrar de antes de tudo resetar os valores do componente “Transform”. Precisamos adicionar o
PowerUpsPowerUps
04/10/2020 Minha Disciplina
https://uniritter.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 22/25
componente “Rigidbody 2D” zerar a gravidade e adicionar o componente “Polygon Collision 2D” e marcar
a caixa do campo “Is Trigger”. Com isso pronto, precisamos criar um novo “Script”. Daremos a ele o nome
de “Nave_Inimigo”. Precisamos ver qual é o lado da frente da imagem; em geral, as naves estão apontadas
para cima igual à nave do jogador, e precisamos rotacionar a nave inimiga. Para isso, mude o valor do
eixo z do componente “Transform” no campo “Rotation” para 180.
Lembre-se de utilizar a ferramenta “Scale Tool” para aumentar ou diminuir o tamanho das naves inimigas.
Nesse “Script”, teremos as variáveis vida e velocidade.
Vejamos o “Script”, a seguir:
Para concluir, podemos fazer cópias desse inimigo “Alient 1” e trocar as imagens das naves e os valores de
vida e velocidade de cada um. Para mudar a imagem do objeto inimigo, basta arrastar a imagem desejada
para o campo “Sprite” do componente “Sprite Render”. Por fim, arraste esses objetos para a pasta que
estamos usando para armazenar os “Prefabs”, a pasta efeitos. Perceba que, ao gerar um “Prefab”, uma
seta mais à direita do nome do “Prefab” surge, e essa nos leva ao ambiente de edição do “Prefab”. Teste-a
para ver como funciona.
Waves de Inimigos com PowerUps
Com os inimigos e o PowerUp prontos, podemos agora criar um objeto vazio para gerenciá-los dentro do
jogo. Vamos criar um novo objeto vazio, e vamos chamá-lo de “Gerencia_Ondas”. Nesse novo objeto,
vamos criar um “Script“ e vamos chamá-lo de “Controle”. Esse “Script” terá a possibilidade de gerenciar as
ondas dos inimigos e no início de cada onda teremos um “PowerUp”. Também vamos controlar a posição
de início das ondas, quantidade de naves por onda, tempo de espera, entre as ondas, tempo de espera
para início da primeiraonda e as posições dos “PowerUps”.
Vejamos o “Script” a seguir:
posInimigos: esse vetor armazena um valor inicial para as naves inimigas, porém esse valor é
usado para gerar um campo onde as naves devem ser geradas aleatoriamente, e a mesma coisa
é feita com o vetor posPowerUps. Devemos informar o valor de X igual ao valor que usamos
para manter a nave dentro da tela. Nesse caso, foi o valor 2, e o valor de Y é o valor em que
naves vão iniciar, ou seja, será a distância dela até chegar a borda superior da tela do jogo.
StartCoroutine: inicia uma rotina secundária através do IEnumerator.
IEnumerator: coloca o método dentro de uma ordem que pode ser chamado
pelo StartCoroutine.
Instantiate: faz um clone do objeto original que indicamos.
WaitForSeconds: suspende a corotina por uma quantidade de tempo em segundos.
praticar
Vamos Praticar
Vimos vários tipos de objetos que podem ser criados com a Unity, objetos 2D, 3D,
textos e vários outros, e que cada objeto tem uma função predeterminada pela Unity e
tem seu modo de ser usado. Em relação a isso, selecione a alternativa que traz o passo
a passo de como gerar um novo objeto na Unity.
a) Para gerar um novo objeto, devemos clicar na aba Game e, em seguida, clicar
com o botão direito do mouse em seu interior. Assim, parecerá uma caixa na
qual estarão listados os possíveis objetos. Selecione um e pronto; criamos um
novo objeto.
04/10/2020 Minha Disciplina
https://uniritter.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 23/25
b) Para gerar um novo objeto, devemos clicar na aba Cena e, em seguida, clicar
com o botão direito do mouse em seu interior. Assim, aparecerá uma caixa na
qual estarão listados os possíveis objetos. Selecione um e pronto, criamos um
novo objeto.
c) Para gerar um novo objeto, devemos clicar na aba Console e, em seguida,
clicar com o botão direito do mouse em seu interior. Assim, aparecerá uma caixa
na qual estarão listados os possíveis objetos. Selecione um e pronto, criamos
um novo objeto.
d) Para gerar um novo objeto, devemos clicar na aba “Inspector”/inspetor e, em
seguida, clicar com o botão direito do mouse em seu interior. Assim, aparecerá
uma caixa na qual estarão listados os possíveis objetos. Selecione um e pronto,
criamos um novo objeto.
e) Para gerar um novo objeto, devemos clicar na aba “Hierarchy”hierarquia e, em
seguida, clicar com o botão direito do mouse em seu interior. Assim, aparecerá
uma caixa na qual estarão listados os possíveis objetos. Selecione um e pronto,
criamos um novo objeto.
04/10/2020 Minha Disciplina
https://uniritter.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 24/25
indicações
Material
Complementar
LIVRO
Unity Total: Fundamentos Essenciais
Autores: Rafael Henrique Capati e Joberth Morais de
Andrade
Editora: Kindle
Comentário: o livro traz princípios essenciais, descreve
os Game Objects e seus componentes, mostra modelos
2D e 3D, materiais e texturas e fala sobre terrenos,
ambientes externos, luzes e tudo o mais para se criar um
game na unity.
WEB
Playing Hard
Ano: 2018
Comentário: esse documentário conta a história de Jason
Vandenberghe, Game Producer do jogo For Honor. Mostra
os bastidores da indústria de jogos profissionais e narra a
jornada de desenvolver um jogo tão grande, do começo
ao fim. Foram cinco anos até seu lançamento.
ACESSAR
https://www.youtube.com/watch?v=20hUmq66StA
04/10/2020 Minha Disciplina
https://uniritter.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 25/25
conclusão
Conclusão
Para iniciar nossa jornada no desenvolvimento de jogos 2D usando a Unity, vimos o básico sobre como
utilizar a Unity, como criar um objeto e tratá-lo de maneira que podemos movimentá-lo utilizando o teclado
do computador ou criar um objeto que o próprio código irá se encarrega de movê-lo. Para isso, fizemos uso
de “Scripts” que são escritos com a linguagem C#. Criamos conteiners de objetos e também vimos uma
maneira de criar o efeito de parallax e ondas de inimigos, iguais ou diferentes, com tempo e quantidade.
referências
Referências
Bibliográficas
DOCUMENTATION. Unity.Disponível em: https://docs.unity3d.com/ScriptReference/. Acesso em: 18 nov.
2019.
GAMEOBJECT. Unity. Disponível em: https://docs.unity3d.com/Manual/class-GameObject.html. Acesso em:
20 nov. 2019.
HALPERN, J. Developing 2D Games with Unity: independent game programming with C#. New York:
Apress, 2019.
LEAD game designer. Get in Media, [2019]. Disponível em: http://getinmedia.com/careers/lead-game-
designer. Acesso em: 18 nov. 2019.
READY player web: building modern web games. [S. l.: s. n.], 2019. 1 vídeo (7 min 38 s). Publicado pelo
canal Chrome Dev Summit. Disponível em: https://www.youtube.com/watch?v=5_ySzSDnyYI. Acesso em:
18 nov. 2019.
SATO, A. K. O. Game design e prototipagem: conceitos e aplicações ao longo do processo projetual.
Florianópolis, SC: SBGames, 2010. Disponível
em: http://www.sbgames.org/papers/sbgames10/artanddesign/Full_A&D_10.pdf. Acesso em: 3 dez. 2019.
SCENES. Unity. Disponível em: https://docs.unity3d.com/560/Documentation/Manual/CreatingScenes.html.
Acesso em: 25 nov. 2019.
SCHUYTEMA, P. Design de games: uma abordagem prática. São Paulo: Cengage Learning, 2016.
THE scene view. Unity. Disponível
em: https://docs.unity3d.com/560/Documentation/Manual/UsingTheSceneView.html. Acesso em: 25 nov.
2019.
THORN, A. Unity 2018 By Example. 2. ed, Birmingham, UK: Packt, 2018.
UNITY para dispositivo móvel. Unity, [2019]. Disponível
em: https://unity3d.com/pt/unity/features/multiplatform. Acesso em: 20 nov. 2019.
WHY you need to use a game engine. [S. l.: s. n.]. 1 vídeo (1 min 1 s). Publicado pelo canal The Cherno.
Disponível em: https://www.youtube.com/watch?v=QQ9MTzrsldo. Acesso em: 25 nov. 2019.
https://docs.unity3d.com/ScriptReference/
https://docs.unity3d.com/Manual/class-GameObject.html
http://getinmedia.com/careers/lead-game-designer
https://www.youtube.com/watch?v=5_ySzSDnyYI
http://www.sbgames.org/papers/sbgames10/artanddesign/Full_A&D_10.pdf
https://docs.unity3d.com/560/Documentation/Manual/CreatingScenes.html
https://docs.unity3d.com/560/Documentation/Manual/UsingTheSceneView.html
https://unity3d.com/pt/unity/features/multiplatform
https://www.youtube.com/watch?v=QQ9MTzrsldo

Outros materiais