![Page 1: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/1.jpg)
![Page 2: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/2.jpg)
Quem sou eu?Caio Vinicius Marques TeixeiraBacharelando em Sistemas de Informação
EACH-USP
Técnico em Informática
ETEC de Poá
![Page 3: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/3.jpg)
Minhas experiências
TCCEventosGame JamsPalestras
![Page 4: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/4.jpg)
Minhas experiências
FEA-USP / GETECGames for Change EuropeCoursera
![Page 5: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/5.jpg)
![Page 6: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/6.jpg)
![Page 7: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/7.jpg)
![Page 8: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/8.jpg)
![Page 9: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/9.jpg)
![Page 10: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/10.jpg)
![Page 11: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/11.jpg)
![Page 12: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/12.jpg)
![Page 13: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/13.jpg)
![Page 14: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/14.jpg)
![Page 15: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/15.jpg)
![Page 16: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/16.jpg)
![Page 17: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/17.jpg)
![Page 18: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/18.jpg)
![Page 19: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/19.jpg)
Mas, não quero fazer jogos...
![Page 20: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/20.jpg)
Tappy PlaneVamos aprender na prática!
![Page 21: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/21.jpg)
Unity: Views
http://docs.unity3d.com/Manual/LearningtheInterface.html
![Page 22: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/22.jpg)
Project ViewAcessar e gerenciar assets◦ Assets: Recursos gráficos, sons, códigos, etc.
http://docs.unity3d.com/Manual/ProjectView.html
![Page 23: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/23.jpg)
Unity PackagesPacote de assets◦ Compactado
◦ Compartilhar recursos entre diferentes projetos
![Page 24: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/24.jpg)
Scene ViewPermite visualizar, posicionar e gerenciar objetos no jogo.
Permite alterações com o jogo em execução!
http://docs.unity3d.com/Manual/SceneView.html
![Page 25: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/25.jpg)
Hierarchy ViewExibe todos os objetos na cena atual
http://docs.unity3d.com/Manual/Hierarchy.html
![Page 26: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/26.jpg)
Toolbar
http://docs.unity3d.com/Manual/Toolbar.html
![Page 27: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/27.jpg)
Arquitetura Entity-ComponentTodo objeto na Unity é uma “Entidade”.◦ Permite desacoplamento de código
◦ Você não precisa mexer em código de baixo nível
http://gameprogrammingpatterns.com/component.html
![Page 28: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/28.jpg)
Arquitetura Entity-Component
Componentes◦ Definem “comportamentos” de objetos.
◦ Podem ser programados (scripts).
http://gameprogrammingpatterns.com/component.html
![Page 29: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/29.jpg)
Inspector
Inspector view◦ Permite alterar propriedades de componentes e variáveis
públicas de scripts.
◦ Alterações em tempo de execução!
http://docs.unity3d.com/Manual/Inspector.html
![Page 30: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/30.jpg)
Game ViewJogo rodando. :)
http://docs.unity3d.com/Manual/GameView.html
![Page 31: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/31.jpg)
RigidbodyComo simular gravidade?
![Page 32: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/32.jpg)
CollidersAvião e obstáculos são apenas imagens na tela
Como saber que é um objeto sólido?
Colliders!
![Page 33: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/33.jpg)
Scripts Scripts = Componentes
Como criar? Como adicionar a um objeto.
Hello World!
![Page 34: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/34.jpg)
CallbacksMétodos executados automaticamente pela engine.
Start() – Executa quando um objeto é criado
Update () – Executa uma vez a cada frame
FixedUpdate() – Idem ao Update, deve ser usado para física e entrada.
![Page 35: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/35.jpg)
Vector 3Como representar movimentos?
Vetores!
![Page 36: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/36.jpg)
Rigidbody.velocityAltera a velocidade de um rigidbody com um Vector.
![Page 37: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/37.jpg)
InputKeyCodes
Input.GetKey
![Page 38: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/38.jpg)
Scripts no InspectorVariáveis públicas são exibidas no Inspector.
![Page 39: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/39.jpg)
ObstáculosComo fazer a progressão da cena?
Duas abordagens:◦ Personagem e câmera se movem para frente
◦ Cenário movimenta para trás
![Page 40: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/40.jpg)
PrefabsObjetos “pré-fabricados”.◦ Permite salvar um gameobject e seus componentes.
◦ Gerenciar múltiplos clones
Método Instantiate◦ Permite criar clones de objetos.
![Page 41: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/41.jpg)
Destruir objetos passados?Método Destroy()
Callbacks OnBecameVisible e OnBecameInvisible
![Page 42: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/42.jpg)
Não é a melhor solução...Garbage Collector◦ Pode rodar a qualquer instante
◦ Quedas de framerate...
![Page 43: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/43.jpg)
Solução ideal: Object poolingReutilizar objetos◦ Objeto foi destruído?
◦ Adicionar em uma lista de inativos
◦ Precisa de um novo objeto?◦ Lista de inativos está vazia?
◦ Crie um novo
◦ Não está vazia?
◦ Reutilize
![Page 44: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/44.jpg)
GameoverDetectar colisão!◦ Recarregar jogo.
![Page 45: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/45.jpg)
Unity UIRecurso novo!◦ Unity 4.6 Beta.
Canvas◦ Text
◦ Button
![Page 46: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/46.jpg)
ColisãoCallbacks OnCollisionEnter e OnCollisionExit
Objeto Collision
![Page 47: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/47.jpg)
CenasCenas -> Níveis do jogo
Devem ser salvas e adicionadas ao build.
Application.LoadLevel
![Page 48: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/48.jpg)
Pontuação
Como fazer?
![Page 49: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/49.jpg)
TriggersTriggers◦ Detectar se objeto está em uma determinada “zona”.
![Page 50: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/50.jpg)
Break
![Page 51: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/51.jpg)
3D
![Page 52: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/52.jpg)
3D vs. 2DSão independentes!◦ 2D é recente.
◦ Podem coexistir no mesmo projeto e cena!
![Page 53: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/53.jpg)
Motores físicosIndependentes◦ Rigidbody vs. Rigidbody2D
◦ Collider vs. Collider2D
![Page 54: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/54.jpg)
Standard AssetsAssets padrões da Unity◦ Unity Packages
![Page 55: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/55.jpg)
Antes, não faça isso em casa!Vamos brincar um pouco com física e alguns standard assets.◦ Sem otimização alguma
![Page 56: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/56.jpg)
Unity Terrain
![Page 57: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/57.jpg)
First Person ControllerStandard Asset◦ Implementa movimentação (pulo, andar, etc)
◦ Implementa camera
![Page 58: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/58.jpg)
Brincadeiras com físicaVamos criar uma barreira gigante de caixas e derruba-la. ◦ Otimização nula!
![Page 59: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/59.jpg)
Explosão?Sistema de partículas◦ Shuriken
Explosão do PhysX
![Page 60: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/60.jpg)
PublicaçãoComo gerar executáveis? :)◦ Windows, Linux, Mac
◦ Web◦ Unity Web Player
◦ WebGL (Coming Soon)
◦ Android
◦ etc...
![Page 61: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/61.jpg)
Antes de terminar, Bonus Stage
![Page 62: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/62.jpg)
Como estudar Unity?Unity Learn (http://unity3d.com/pt/learn)
Unity 3D Student (http://www.unity3dstudent.com/)
Unity Cookie (http://cgcookie.com/unity/category/tutorials/)
Digital Tutors (http://www.digitaltutors.com/training/unity-tutorials)
Reddit (http://www.reddit.com/r/unity3D)
![Page 63: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/63.jpg)
Evite Cargo Cult Programming!
![Page 64: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/64.jpg)
Aprenda conceitos gerais!Aprenda a teoria, o que acontece “por baixo”
Livros◦ Introdução ao desenvolvimento de games, Steve
Rabin, vol.2
Sites
◦ Game Developer – Como ser um programador de jogos? http://gamedeveloper.com.br/
◦ Game Programming Patterns -http://gameprogrammingpatterns.com/
![Page 65: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/65.jpg)
Faça jogos!“A melhor forma de aprender a fazer jogos, é fazendo.”
“Você fará pelo menos 10 jogos ruins antes de fazer um realmente bom.”
![Page 66: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/66.jpg)
EventosConferências
Exposições
Game Jams
IGDA
Etc.
![Page 67: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/67.jpg)
Participem!
Reuniões todas as terças, às 16:00 na sala 221 do Titanic.
![Page 68: Introdução ao desenvolvimento de jogos com unity3d](https://reader033.vdocuments.net/reader033/viewer/2022050808/55ac51931a28abe7118b4722/html5/thumbnails/68.jpg)
Dúvidas?