Escolar Documentos
Profissional Documentos
Cultura Documentos
ApostilaUnity3dv033 PDF
ApostilaUnity3dv033 PDF
Uma introduo
Autor: Thiago Campos Viana
Unity3D
Uma introduo
So Carlos, SP Brasil
thiagocamposviana@gmail.com
Voc pode:
http://creativecommons.org/licenses/by-sa/3.0/legalcode
Contedo
Lista de Imagens ............................................................................................................... 3
Lista de cdigos ................................................................................................................ 3
1 Introduo ...................................................................................................................... 3
1.1 O que o Unity 3D ................................................................................................. 3
1.2 Unity3D no Brasil ................................................................................................... 4
1.3 Exemplos de jogos .................................................................................................. 5
1.4 Um aviso ................................................................................................................. 7
1.5 Programas auxiliares............................................................................................... 7
1.6 Instalando o Unity no Windows ............................................................................. 8
2 Principais conceitos ..................................................................................................... 17
2.1 O ambiente do Unity3D........................................................................................ 17
2.1.1 Viso de Projeto ......................................................................................... 18
2.1.2 Hierarquia .................................................................................................... 19
2.1.3 Menu de Topo ............................................................................................ 20
2.1.4 Viso da Cena ............................................................................................ 21
2.1.5 Posicionamento de objetos ...................................................................... 21
2.1.6 Scene Gizmo .............................................................................................. 22
2.1.7 Barra de controle da cena ........................................................................ 23
2.1.8 Viso de jogo .............................................................................................. 23
2.1.9 Play Mode ................................................................................................... 24
2.1.10 Barra de controle da viso de jogo ....................................................... 24
2.1.11 Inspetor ..................................................................................................... 25
2.1.12 Barra de Status ........................................................................................ 27
2.1.13 Console ..................................................................................................... 27
2.2. Sistema de coordenadas 3D ................................................................................. 28
2.2.1. O plano cartesiano ........................................................................................ 28
2.2.2. Coordenadas locais e globais ........................................................................ 29
2.2.3. Vetores .......................................................................................................... 30
2.2.4. Quaternies e rotaes .................................................................................. 31
2.2.5. Renderizao ................................................................................................ 31
2.2.6. Cmeras ........................................................................................................ 31
2.2.7. Representao de formas .............................................................................. 32
2.2.8. Materiais ....................................................................................................... 32
2.3. Fsica.................................................................................................................... 32
2.3.1. Corpos rgidos .............................................................................................. 32
2.3.2. Deteco de coliso ...................................................................................... 33
2.3 Concluso ............................................................................................................. 33
3 Introduo ao Java Script ............................................................................................ 34
3.1 Seu primeiro programa ......................................................................................... 34
3.2 Variveis e tipos de dados .................................................................................... 39
3.3 Declarao de variveis e palavras reservadas ..................................................... 42
3.4 Operadores ............................................................................................................ 43
3.5 Comandos condicionais ........................................................................................ 46
3.6 Objetos, propriedades e mtodos .......................................................................... 50
3.7 Comentrios .......................................................................................................... 52
3.8 Isso no tudo ...................................................................................................... 53
4 Terrenos ....................................................................................................................... 54
1
4.1 Utilizando Terrenos .............................................................................................. 54
4.1.1 Criando um novo Terreno......................................................................... 54
4.1.2 Navegando pelo terreno ..................................................................................... 56
4.1.3 Editando o Terreno ............................................................................................ 56
2
Lista de Imagens
Imagem 1 - Super Vlei Brasil (Aquiris) ..................................................................... 4
Imagem 2 - Rally Touareg (Edgy) ............................................................................... 5
Imagem 3 - Rexona Race............................................................................................. 5
Imagem 4 - Fusion Fall ( Web MMORPG ) ............................................................... 6
Imagem 5 - JumpStart para Nintendo Wii.................................................................. 6
Imagem 6 - Zombieville (iPhone) ................................................................................ 7
Imagem 7 - Tela inicial do Unity ................................................................................ 18
Imagem 8 - Menu de Topo ......................................................................................... 20
Imagem 9 - Viso da Cena......................................................................................... 21
Imagem 10 - Viso de jogo ........................................................................................ 23
Imagem 11 - Estatstica do jogo ................................................................................ 24
Imagem 12 - Console .................................................................................................. 28
Lista de cdigos
Cdigo 1 - Script inicial ............................................................................................... 37
Cdigo 2 Exemplo Ola ............................................................................................. 37
Cdigo 3 Exemplo gira cubo................................................................................... 39
Cdigo 4 Exemplo declarao de varivel ........................................................... 40
Cdigo 5 Exemplo string ......................................................................................... 41
Cdigo 6 Exemplo if ................................................................................................. 46
Cdigo 7 Exemplo else ............................................................................................ 48
Cdigo 8 Exemplo while .......................................................................................... 49
Cdigo 9 Exemplo for .............................................................................................. 49
Cdigo 10 Exemplo break ....................................................................................... 50
Cdigo 11 Exemplo break ....................................................................................... 50
Cdigo 12 Exemplo break ....................................................................................... 52
Cdigo 13 Exemplo break ....................................................................................... 52
3
Captulo 1: Introduo
Captulo
1
1 Introduo
B
em vindo rea de desenvolvimento de jogos de jogos com o Unity3D!
Em primeiro lugar gostaria de me apresentar, meu nome Thiago
Campos Viana (thiagocamposviana@gmail.com) e deixar claro que esta
apostila foi criada de um hobbista para hobbistas. No sou um desenvolvedor
de jogos profissional, tenho mais experincia com desenvolvimento web, mais
especificamente com o CMS eZ publish, porm adoro a rea de jogos e
gostaria de compartilhar o pouco que sei sobre esta ferramenta de
desenvolvimento que possui uma verso gratuita, a Unity3D, e como no se
encontra apostilas em portugus sobre esta ferramenta, resolvi criar esta
apostila.
3
Captulo 1: Introduo
4
Captulo 1: Introduo
5
Captulo 1: Introduo
Existe um plano da empresa criar uma licena para que se possa publicar os
jogos tambm para o Xbox 360, assim, se voc criar um jogo que faa
sucesso, voc tem a possibilidade de publicar para diversas outras
plataformas.
6
Captulo 1: Introduo
1.4 Um aviso
7
Captulo 1: Introduo
Clique em Next.
8
Captulo 1: Introduo
9
Captulo 1: Introduo
Clique em Next.
10
Captulo 1: Introduo
11
Captulo 1: Introduo
12
Captulo 1: Introduo
Clique em Register.
13
Captulo 1: Introduo
14
Captulo 1: Introduo
Pronto! Agora voc poder utilizar a verso gratuita do Unity por tempo
indeterminado, porm a verso pro por apenas 30 dias.
15
Captulo 1: Introduo
16
Captulo 2: Principais conceitos
Captulo
2
2 Principais conceitos
17
Captulo 2: Principais conceitos
Hierarquia
Inspetor
Cena / Jogo
Projeto
18
Captulo 2: Principais conceitos
As cenas do jogo tambm ficam nessa pasta. Cada cena representa um level
do jogo. O Unity carrega por padro a cena Islands.unity, para criar uma nova
aperte ctrl+n ou v na Barra de Ferramentas->File->New Scene. Para salvar a
cena aperte ctrl+s ou v na Barra de Ferramentas->File->Save Scene.
2.1.2 Hierarquia
19
Captulo 2: Principais conceitos
Voc pode expandir ou contrair o objeto pai para ver quais so seus filhos sem
afetar com isso o jogo.
20
Captulo 2: Principais conceitos
A viso da cena o lugar onde voc pode organizar a disposio dos objetos
na cena do jogo. Voc pode selecionar e mudar de posio os jogadores, a
cmera, os inimigos e todos os outros GameObjects, alm de poder mudar a
escala deles, ou seja, o tamanho desses objetos. Esse editor de cena uma
das ferramentas mais importantes do Unity, ento voc deve aprender a mexer
com ele. Para selecionar um objeto basta clicar nele na viso de cena ou na
viso de hierarquia, para focar o objeto basta apertar a tecla f na viso de
cena.
21
Captulo 2: Principais conceitos
Viso em perspectiva.
23
Captulo 2: Principais conceitos
Use estes botes par controlar a viso de jogo. Aperte o play para iniciar o
jogo, se apertar play novamente o jogo encerrado, para pausar o jogo aperte
pause.
24
Captulo 2: Principais conceitos
2.1.11 Inspetor
25
Captulo 2: Principais conceitos
26
Captulo 2: Principais conceitos
2.1.13 Console
27
Captulo 2: Principais conceitos
Imagem 12 - Console
28
Captulo 2: Principais conceitos
O plano cartesiano 2D
29
Captulo 2: Principais conceitos
2.2.3. Vetores
Vetores so segmentos de reta usados para representar direo (reta suporte do
segmento orientado), intensidade (valor numrico) e sentido (orientao do segmento de
reta) no plano cartesiano. A figura 4 mostra a diferena entre ponto e vetor. Vetores,
assim como pontos, no se limitam as duas dimenses e podem ser representados no
espao 3D. Atravs do uso de vetores possvel atribuir representar alm da posio de
um objeto no espao, a sua direo.
30
Captulo 2: Principais conceitos
2.2.5. Renderizao
Renderizao o ato de criar imagens 2D dada uma descrio geomtrica de um mundo
tridimensional e uma cmera virtual que especifica a perspectiva que o mundo est
sendo visto.
2.2.6. Cmeras
Cmeras em jogos servem para representar o comportamento dos olhos em um sistema
em trs dimenses. Atravs dela so determinados quais objetos devem aparecer na tela
e como eles devem ser mostrados. Elas podem ser posicionadas em qualquer lugar no
espao, possuem uma direo e um campo de viso, ou Field of Vision (FoV). Esse
campo de viso pode ser interpretado como uma pirmide invertida com origem no
ponto de origem da cmera e com direo determinada pela direo da cmera, assim,
os pontos mostrados na tela so os que esto dentro dessa pirmide.
Quando limitamos a distncia do campo de viso, estamos especificando uma distncia
mxima que um objeto deve estar do ponto de origem da cmera para que ele seja
mostrado na tela, desde que ele esteja dentro do campo de viso da cmera. Tambm
possvel especificar uma distncia mnima que os objetos devero estar da cmera para
que eles sejam mostrados na tela.
As figuras 5 e 6 ilustram o funcionamento de uma cmera, tudo o que est dentro do
espao delimitado pelo near plane e pelo far plane sero renderizados.
31
Captulo 2: Principais conceitos
A cmera
2.2.8. Materiais
Materiais servem para definir a aparncia de um modelo aps renderizados. Materiais
so cores ou texturas, que em conjunto com um script de renderizao, conhecido como
shader, determina a aparncia de um objeto quando visualizado na tela.
2.3. Fsica
Nesta seo sero descritos o que so corpos rgidos e deteco de coliso.
Gravidade;
Velocidade;
Atrito.
32
Captulo 2: Principais conceitos
2.3 Concluso
33
Captulo 3: Introduo ao Java Script
Captulo
A partir deste ponto, assume-se que o leitor est familiarizado com a interface
do Unity.
Aparecer uma caixa de dialogo onde voc poder escolher o local onde seu
projeto ser criado em seu computador e os pacotes contendo um conjunto de
Assets a serem importados para o projeto durante a criao do projeto.
34
Captulo 3: Introduo ao Java Script
Salve a cena, ctrl+s, escolhe um nome para ela, por exemplo, level1.
Crie um Cubo, Barra de Ferramentas->GameObject->Create Other-
>Cube.
Com o Cubo Selecionado aperte f na viso de cena.
Selecione a cmera na viso de hierarquia e v em Barra de
Ferramentas->GameObject->Move To View.
35
Captulo 3: Introduo ao Java Script
Mude a posio da cmera at que ela focalize o cubo, nesse caso clique na
translate tool e mude a posio da cmera pelo eixo z, azul, aperte o play para
ver como ficaria a cena durante o jogo.
Quando voc apertar o play no ver apenas uma tela azul, ver um quadrado
preto no centro da tela. Isso significa que voc j aprendeu o bsico da
interface do Unity, agora estamos pronto para comear a aprender um pouco
de Java Script.
36
Captulo 3: Introduo ao Java Script
function Update () {
function Update () {
print("Ola");
37
Captulo 3: Introduo ao Java Script
A primeira parte que consiste em posicionar a cmera para que ela focalize o
Cubo intuitiva, funciona como na vida real, onde quando se deseja tirar uma
foto, necessrio posicionar a cmera em um determinado local e mirar ela em
um objeto para que este objeto aparea na foto. Foi o que fizemos. Voc
poderia utilizar as outras ferramentas de posicionamento, tais como a rotate
tool para rotacionar a cmera em conjunto com a translate tool para que o
objeto fosse visto de um outro ngulo.
38
Captulo 3: Introduo ao Java Script
function Update () {
Aperte play e perceba que o cubo comea a girar ao redor do eixo y! Ou seja, a
funo transform.Rotate(0, 5*Time.deltaTime, 0) fez com que ao invs do
programa mostrar um texto na barra de status, faz o cubo girar. Agora hora
de entender como funciona a linguagem de programao Java Script, que ser
responsvel por controlar todos os elementos dos jogos feitos com o Unity.
x=5;
var x = 5;
var y = x+1;
39
Captulo 3: Introduo ao Java Script
var x = 5;
function Update () {
var y = x+1;
print(y);
40
Captulo 3: Introduo ao Java Script
O Java Script possui uma srie de tipos bsicos e cada um serve para alguma
coisa, um deles o tipo String que serve para trabalhar com palavras.
Por exemplo, para declarar uma varivel do tipo String e atribuir a ela a
mensagem Ola, podemos fazer desse modo:
function Update () {
print(mensagem);
Aperte play e veja que o a funo print exibe na barra de status o valor da
mensagem, ou seja, Minha primeira string.
Como voc pode perceber, a funo print serve para testar o programa, ela
poder mostrar o valor de qualquer varivel que voc declarar. A seguir
veremos os tipos de variveis que o Java Script possui, se quiser testar cada
tipo, basta alterar o cdigo para que a funo print imprima o valor de sua
varivel, por exemplo, voc pode usar print(n), onde n seria o nome da
varivel do tipo nmero, voc especificar outro nome para sua varivel, mas
lembre-se de corrigir a funo print.
Cada um deles serve para uma coisa. Voc no precisa especificar o tipo de
sua varivel, geralmente voc s vai especificar quando voc deseja restringir
certas operaes para trabalham com um determinado tipo ou usar uma funo
que trabalhar com uma caracterstica que apenas aquele tipo possui, por
exemplo se voc quer usar nmeros inteiros em sua conta, voc dever usar o
tipo int ou algum outro que represente apenas nmero inteiros, como o short
que para inteiros pequenos.
Um dos tipos complexos que voc utilizar muito o tipo Array, que representa
um conjunto de variveis. Como nas matrizes e vetores das aulas de
matemtica.
var ano;
42
Captulo 3: Introduo ao Java Script
as float static
boolean for string
break if super
byte in switch
case int this
char long true
class new typeof
continue null uint
default private ulong
double protected ushort
else public virtual
enum return void
false sbyte while
var continue;
3.4 Operadores
Variveis podem ser utilizadas para realizar operaes, para isso existem os
operadores, os quais j vimos a alguns deles nas aulas de matemtica e isso
facilita saber para que servem, um exemplo o operador + que realiza adio:
var x = 2 + 4;
var n1 = 2;
var n2 = 4;
var x = n1 + n2;
43
Captulo 3: Introduo ao Java Script
O operador mais tambm tem uma funo especial com variveis do tipo string,
ele permite juntar duas strings em uma s:
Faz com que a varivel palavra tenha o valor de Bom dia. Tambm podemos
fazer:
var p1 = Bom ;
var p2 = dia;
var palavra = p1 + p2;
44
Captulo 3: Introduo ao Java Script
Exemplo Resultado
4 < 5 && 4 > 5 falso, pois se uma das expresses for falsa, o resultado
ser falso, como 4 > 5 falso, ento essa expresso
retornaria false.
4 < 5 && 4 != 5 verdadeiro, pois 4 menor que 5 e 4 diferente de 5.
Exemplo Resultado
4 < 5 || 4 > 5 verdadeiro, pois se uma das expresses for verdadeira,
o resultado ser verdadeiro, e como 4 < 5 verdadeiro,
essa expresso retornaria true.
4 > 5 || 4 == 5 falso pois as duas expresses so falsas.
45
Captulo 3: Introduo ao Java Script
Comando if (se):
Sintaxe:
if ( condio )
{
Ao1;
Ao2;
....
AoN;
if (condio) Ao;
Exemplo:
var x = 5;
function Update () {
if ( x==5 ){
print(Verdade);
Cdigo 6 Exemplo if
46
Captulo 3: Introduo ao Java Script
Sintaxe:
if ( condio )
{
Ao1;
Ao2;
....
AoN;
else
Ao1;
Ao2;
....
AoN;
if (condio) Ao;
else Ao2;
Exemplo
var x = 5;
function Update () {
if ( x>100 ){
print(Verdade);
47
Captulo 3: Introduo ao Java Script
else
print(Mentira);
Sintaxe:
while ( condio )
{
Ao1;
Ao2;
....
AoN;
}
Exemplo
var x = 0;
function Update () {
while ( x<100 ){
x++;
48
Captulo 3: Introduo ao Java Script
Sintaxe:
{
Ao1;
Ao2;
....
AoN;
Exemplo:
function Update () {
function Update () {
print(x);
49
Captulo 3: Introduo ao Java Script
if ( x ==50) break;
Todo jogo criado pelo Unity composto por objetos, por hora basta saber que o
Unity cria objetos durante a execuo do jogo, por exemplo, quando o jogo
iniciado o Unity cria o objeto Time que possui informaes sobre o tempo de
jogo. Modelos, a cmera, terrenos, etc. Tambm so considerados objetos,
como na vida real, dizemos que tudo que existe so objetos, incluindo ns
mesmos. Todo objeto tem propriedades, ou seja atributos, por exemplo, um
homem tem olhos. O objeto Time tem o atributo deltaTime que retorna a
diferena de tempo entre uma atualizao e outra do programa.
<Objeto>.<Atributo>;
Time.deltaTime;
Exemplo:
var x:float = 0;
function Update () {
x = Time.deltaTime;
print(x);
50
Captulo 3: Introduo ao Java Script
<Objeto>.Funo();
print(Mathf.Sqrt(10));
Por exemplo, para criar uma funo que multiplica um nmero pelo outro e
imprime o valor na tela faramos o seguinte:
print(resultado);
51
Captulo 3: Introduo ao Java Script
function Update () {
multiplica(10,20);
Voc tambm pode utilizar funes para atribuir valores a variveis, para isso
voc deve especificar que tipo de dado a funo retorna e especificar dentro
dela o valor retornado com um comando return, repare nas mudanas do
cdigo 12 para o cdigo 13:
return resultado;
function Update () {
var x = multiplica(6,7);
print(x);
3.7 Comentrios
52
Captulo 3: Introduo ao Java Script
Outra forma o comentrio de vrias linhas que comea com /* e termina com
*/, exemplo:
/*
Este comentrio tem vrias linhas
A gente escreve, escreve, escreve
E quando v j tem comentrio suficiente
Encerra os comentrios
*/
53
Captulo 4: Terrenos
Captulo
4
4 Terrenos
Uma das vantagens de se utilizar um motor de jogo a possibilidade de
realizar vrios trabalhos com ferramentas grficas, podendo visualizar o que
est fazendo. O editor de level do Unity possui uma ferramenta para edio de
terrenos que permite aos desenvolvedores paisagens ricas em detalhes de um
modo simples e rpido comparado com o uso de modeladores 3d, tais como
Blender e 3D Studio Max, para a realizao dessa tarefa.
54
Captulo 4: Terrenos
55
Captulo 4: Terrenos
56