7º CCTEC - 2013 - Minicurso

Construção de jogos com o
motor Unity3D

Eduardo Bonfandini
Unity3D

Quem conhece a Unity3d?
http://portuguese.unity3d.com/
Objetivos
•
•
•
•
•

Demonstrar a Unity3d
Informar suas capacidades
Ensinar o uso básico da ferramenta
Criar motivação para o uso.
Se divertir.
Apresentação
de vídeos
Tópicos gerais do minicurso
1.
2.
3.
4.
5.

Introdução
Básico
Script
Compilando
Outras coisinhas legais.
PARTE 1
Introdução
http://unity3d.com
•
•
•
•
•

Rica em funcionalidades.
Um motor (engine).
É um ambiente de desenvolvimento.
Engine e Ide 100% integrados.
Desenvolvido para criação de conteúdo 3D
interativos.
• Provê “na caixa” uma listagem completa, para
alcançar conteúdo de alta qualidade e alta
performance.
http://unity3d.com
•
•
•
•
•

Pública para multi-plataformas.
Reduz tempo de desenvolvimento,
Reduze esforço e custo para fazer jogos.
Comunidade ativa

Ótima documentação
• Fácil
Multi plataforma
•
•
•
•
•
•
•
•
•

Pc
Mac
Web
Chrome
Wii
PS3
Xbox 360
Android
iPhone e iPad
Multi plataforma
• Versão 4:
• Linux
• Flash
• Editor:
• Windows
• Mac
Rica em funcionalidades.
•
•
•
•
•

Códigos sem dor (Js, C#, Boo)
Controle preciso de qualidade
Previews instantâneos
100 shaders prontinhos possibilidade de criação
Sombras em tempo real ou confeitadas (baked)
Rica em funcionalidades.
•
•
•
•
•

Linear Space Lighting HDR
Realtime Shadows
Sun Shafts & Lens Effects
Ambient Occlusion
Lightmapping
Rica em funcionalidades.
• Interação com praticamente todos
modeladores
• Blender, 3dStudio, Maya, SketchUp
Suporte a arquivos
Terrenos
•
•
•
•
•
•

Terrenos:
Sculpt Like a Master
Trees, Bushes, Rocks, Grass
Detail Texture Painting
Lightmaps Integrated
Tree Creator
Exemplos
Física
•
•
•
•

NVIDIA® PhysX®
Cloth
Soft Bodies
Rigidbodies

•
•
•
•

Ragdolls
Joints
Cars
Materials
Som (F-mod)
•
•
•
•
•
•
•

3D ou 2D
Poder do Fmod
Filtros
High/Low pass
Distorção
Echo
Reverb
http://www.fmod.org/
Código
•
•
•
•
•
•
•
•
•

Javascript (UnityScript)
C#
BOO ( Like python)
Integrado com IDE’s
Modifica objetos
Modifica editor
Novas funcionalidades
Código multi-plataforma
Código especifico
Internet

• Estados
• Tempo real
• Chamdas remotas

• Conexão com servidores
• Web Browser
• Conectividade web
Rica em funcionalidades.
• Prefabs
• Asset manager

• Asset store
• Customização
Partículas
• Partículas para todos os gostos
• Particle 2d
Mão na massa
PARTE 2
Básicos
Interface geral

Editor

Preview
Inspector

Cena

Projeto
Conceitos
•
•
•
•
•

Game Object
Create Other
Componentes
Colliders
Camera
PROJETO 1
MINI PROJETO COISAS AZUIS
NO EDITOR
Prefabs
•
•
•
•
•

Prefabs são legais
Conteúdo compartilhado
Otimização
Mecha um e altere todos (ou não)
Aparecem no editor em azul
JAVASCRIPT
• UnityScript = Bom, bonito e barato
• Similar ao JS do browser
• Um objeto pode ter diversos scripts e eles
podem se comunicar
Uma variável é uma variável
• Seja no script, seja no editor
Esqueça OO clássico
•
•
•
•
•

Orientação a objetos é legal
Coisas diferentes, conceitos diferentes
Script modulares, cada um com sua tarefa
Veja cada script como uma classe
Veja um script em um objeto como uma
instancia
Objetos/Variáveis
•
•
•
•
•
•
•
•
•

gameobject
Transform
Ridigbody
Collider
audio
...
...
...
Use a ide para o autocomplete
Métodos
•
•
•
•
•

Start
Update
FixedUpdate
OnCollisionEnter
http://docs.unity3d.
com/Documentation/ScriptReference/Collider
.OnCollisionEnter.html
• OnCollisionStay
• OnCollisionOut
• E MUITO MAIS! ...... (hehehe)
Criar caixa ao clique
function Update ()
{
if ( Input.GetMouseButton(0))
{
var selected = Random.Range(0,objects.Length*100) /
100;
//Debug.Log(selected);
var box = objects[selected];
var boxClone = GameObject.Instantiate(box,box.
transform.position,Quaternion.identity);
}
...
Mover a câmera
var horizontal = Input.GetAxis ("Horizontal");
if ( horizontal > 0 )
{
transform.localPosition.x +=1;
}
else if ( horizontal < 0 )
{
transform.localPosition.x -=1;
}
Compilando
Não esquece de adicionar as cenas
Texturas por plataforma
Configurações
Projeto 2
Terreno
Terreno
5 minute project
Terrain + Asset Store
Belezinha?
PROJETO 3
Playground
Scene 1
Scene 2
Chão (plane, texture, bumpmap)
Manha de Gimp 1
• Tornar encaixável – Juntas perfeitas
Caixa (component,rigidbody)
Caixa
Luzes
•
•
•
•

Direcional
Ponto
Holofote ( SpotLight )
Area
Bola ( physics material)
Árvore (cylinder)
Personagens e Scripts
• Character controller
• PushBodies (script)
• http://docs.unity3d.
com/Documentation/ScriptReference/MonoB
ehaviour.OnControllerColliderHit.html
• MouseGrab (tag)
• http://answers.unity3d.
com/questions/168060/how-do-you-pick-upobjects.html
PARTE FINAL
Tópicos para discussão
Dúvidas, sugestões e
reclamações?
Tópicos para discussão
•
•
•
•
•
•

Skybox
IsTrigger
Partículas
Asset Store
SVN (Version control = Meta files)
Plane simples
Fim?
•
•
•
•
•
•
•

Física “avançada” (pêndulo, tecidos)
Terrenos
Ragdool
Modelos 3d
Scripts do Editor
Baked Lights
Animação 2d
Fim?
•
•
•
•
•
•

Game Design
Level design
Character design
Sketchs
Layouts
Prototipagem

Construção de jogos com o motor unity3d (2013)