Professional Documents
Culture Documents
para mudar o pivot basta de uma img ,obj � s� clicar nela e clicar
em Sprite Editor
Luzes
-Tem como aplicar sim fontes de luz em jogos 2D e faz diferen�a
directional
-vai iluminar tudo independente da posi�ao que a luz esteja
o que importa nessa luz � a rota��o e ela que vai deternimar a quantidade
luz recebida
elas tem suas propriedades
POINT LIGHT
Ilumina em todas as dire��es e tem um range
enquanto a directional light ilumina tudo com o sol a Point Light
� como se fosse uma lanpada, depende de sua posicao para iluminar
os objetos
SPOT LIGHT
cria cone de luz com angulo e alcance
aposicao e rota�ao sao muito importantes
SPRITES
LAYERS
-layers de objetos(vc clica nele, vai l� em layer e escolhe
Add Layer
a� vc pode nomear o primeiro que poder digitar
e pode criar um segundo e terceiro
e para quer serve isso????
Vc escolhe a camada e diz que ela ora precisa ser eliminada a luz
ora n
indo em culling mas e marcando ou desmarcando layer
vc pode copiar objetos e falar que cada um
estt� com uma layer ativa
CRIA�AO DE PREFABS
-se arrastar para as pastas j� � um prefab
l� do hierarchy para o project
se vc clicar no sprite aparece um campo prefab
e � s� arrastar para a cena para criar outro
se vc modificar algum ddas copias do prefab e
ir l� na aba prefab e aplicar Apply todos serao
modificados
pode ser feito indo no projeto->botao direito->prefab e jogar em
cima
PARALLAX SCROLL
scroll que d� nocao de profundidade
tem mais de um objetos cada um em uma velocidade
mas distante, mais lento, mais proximo mais rapido
duplica o quad
e coloca no modo 3d e coloca um um poucos mais na frente q outro
como vc dublica, eles usam o mesmo script a� � s� trocar a velocidade de
cada um
INPUT
INPUT DE TECLADO
Input.GetKeyUP(KeyCode.RightArrow)
s� vai acontecer alguma coisa quano soltar a tecla de seta para
direita
Input.GetKeyUp(KeyCode.RightArrow) soltando
Input.GetKeyDown(KeyCode.RightArrow) pressionado
Input.GetKey(KeyCode.RightArrow) para movimenta�ao de personagem
se vc ficar pressionado d� varias respostas
INPUT TECLADO 2
ao inv� de usar if
vc usa os Axes
Edit->Project Settings->Input
e vai aparecer v�rios prontos
float H = Input.GetAxis("Lados");
float V = Input.GetAxis("Vertical");
transform.Translate(new Vector3(H * Time.deltaTime, V * Time.deltaTime, 0));
MOUSE INPUT
tem Axes: Mouse X, Mouse Y,MOuse ScrollWheel,
Fire1(mouse 0 ,joystick button 0= botao esq),
Fire2(mouse 1 ,joystick button 1 = botao dir)
INPUT DE JOYSTICK
tem varios tipos de joystick, tem playstation, xbox
tem mapeamentos dos controles na unity os repectivos valores
COLISORES
para adicionar um � s� clicar em um objeto e add component
pshsics 2d e colider � a linha verde de delimita
mas tem como editar � so ir no edit Collider no proprio obj
RIGIDBODY
d� vida a nossos eventos fisicos
tem q add rigidbody2d
linear drag-for�a contra gravidade
tem um check box para simular
gravity scale -for�a da gravidade
constrais-restrinde o movimento
if(Input.GetKeyDown(KeyCode.Space))
bola.AddForce(new Vector2(0, forca * Time.deltaTime), ForceMode2D.Impulse);
//usado para dar pulos for�a,se apertar varias vezes ele funciona v�rias
vezes quem q podar isso para dar um pulo, pulo duplo
obs:o inspector � s� para testar depois tem de trocar no script
TAGS
utilizar tags para dzer o que � cada objeto e gerir eventos
para criar tag clique no obj
va na aba inspector e tag->add tag-> +
this.gameObject.CompareTag("bola")
//nos diz se obj q estamos usando o scrpt � essa tag
void Update () {
if(duplo>0)
{
if(Input.GetKeyDown(KeyCode.Space))
{
bola.AddRelativeForce(new Vector2(0, forca * Time.deltaTime), ForceMode2D.Impulse);
duplo--;
}
}
}
TIROS
pegamos o sprint de uma arma
mas como temos q falar onde a bala sai
temos de criar um objeto vazio Create Empty
mas ele fica invisivel se clicarmos fora
entao clicamos nele e vamos no cubo do inspector e
criamos uma especie de rotulo
if(Input.GetKeyDown(KeyCode.Space))
{
Instantiate(balas, new Vector3(cano.transform.position.x,
cano.transform.position.y, cano.transform.position.z), Quaternion.identity);
}//instantiate cria objetos
//Quaternion d� para usar mas d� problema quando rot a arma
TRIGGER(gatilhos)
vc cria um gameobject vazio e marca trigger no inspector da� ele nao
nao colidira fisicamente
d� pra acionar armadilhas
COLETAR ITENS
para fazer a coleta de itens tbm se usa o trigger
pq vc nao quer que seu personagem colida com ele
//dentro de move Pato
AUDIO
fez o codigo
- public AudioSource musica;
if(Input.GetKeyDown(KeyCode.A))
{
musica.Play();
//musica.Stop();
//musica.Pause();
}
[proximo exemplo-funcional]
tempo -= Time.deltaTime;
if(tempo<=0)
{
Destroy(this.gameObject);
}
}
}
GERENCIADOR DE AUDIO
caminho dif�cil
come�ando
-cria-se um gameobject vazio chamado Audio_G
e um script para ele chamado Gerenciador
o c�digo awake abaixo nos diz que se inst nao estiver referenciando
para o this que � objeto em que vamos colocar o c�digo
� para destroir o obj
Gerenciador.inst.PlayAudio(puloSom);
a� vc joga o audio no scrit acessando bola
e agora tem o barulho do som de pulo
e d� para fazer com v�rios arquivos de audio
muito bom, gerenciador � mara
DISTANCE joint2D
component-physics2D ->tem todas as articula��es
FIXED JOINT2D
efeito de trampolim ou de ponte
no exemplo ele add uma tabua com rigidbody2d e fixedjoint2d
da� tem o
Damping Ratio-� como se fosse o amortecimento, transiente
Frequency -se colocar a ancora na ponta d� para ver que quanto
maior a frequencia mais peso ele guenta
BreakForce de quebra ele vai cair se estiver no ar
Break Torque de quebra
FRICTIONPOINT2D
-objetos que vc bate neles e afundam e vai descendo a cada pulo
que vc pula em cima dela e elea gira deacordo com a for�a q vc colo
ca ali
HING JOINT
fazer efeito de corda e corrente
ele colocou uma corrente
adicionou box collider e rigidbody2d e diminuiu a massa para
0.5 eadicionou um hing joint ne;la e conectou o hing joint a uma madeira
ele ancorou os dois pontos juntos e na madeira o da prox
corrente jogou na propria mais em cima e linkou no hingi
RELATIVE JOINT
faz q dois objetos fiquem a uma determinada distancia a um deter
minado angulo
SLIDER JOINT
ele faz que um objeto fica deslizando de um lado para o outro de cima
para baixo
objeto vai se mover respeitando essa faixa verde
SPRING JOINT@D
ligados meio que q fosse por uma mola
TARGET JOINT@D
especie de mola
nao se conecta com outros gameobj
WHeel JOINT 2D
EFFECTS
AREA EFFECTORS 2D
consegue simular for�a
tipo se o bola atingir aquela �rea ser� empurrada com mais for�a
ele coloca imagens de setas e adiciona box collider,
e ele aumenta a �rea para que possoa refletir o efeito que ele quer
e aciona o Trigger e User by Effector
add nela o area effector
TEm a mask de colisao que diz se a colisao vai servir para todo mundo
se vc colocar a for�a para cima basta mudar ao force angle
90
Force Magnitude � a a intensidade
Force Variation-parecer ais realista
FOrce target pode escolher entre rigibody e Collider
aonde rigidbody n haverr� rotacao
BUOYANCY EFFECTOR 2D
ele cria um cenario
e coloca uma �gua no meio, adiciona nela um colisor
e add um boyancy effector
definiu q vai ser usado como trigger e used by effector
tem op�ao de mask
tem a parte da densidade
a linha verde � aonde os objetos finais ficarao ao cair nelas
a densidade mergulha mais sobre a linha o corpo
linear drag se diminuiir ele arrasta mais rapidamente e o inverso
o resultado inverso se vc colocar muit baixo at� passa vai para o infinito
rs
Se aumentar a surface ele pula,nao d� muito o efeito de �gua
mas para contrabalancear essse aumento vc pode aumentar o linear drag tbm
-Com Flow d� para fazer que a �gua tenha uma correnteza
vc pode colocar varia�ao para ficar o mais proximo do real
se colocar angulo de 180, vai para esquerda
POINT EFFECTOR
d� para simular uma explosao ou gravidade de um planetinha
cria game object vazio e chama de parede, adiciona um colisor nele
e esticou ele, para nao deixar os objetos nao voarem para longe
e colocou um monte de objetos e colocou uma bombinha no meio
com corpo colisor e aumentar o raio do colisor
pq ela ser� a �rea de efeito, impacto
habilitar trigger e used by effector no collider e adcinona o point
effector
a for�a pode ser positiva ou negativa para aproximar e para distanciar objetos
varia�ao d for�a parecer real
Distance Scale para aumentar a distancia de aplica�ao
force source para escolher com qual quer trabalhar
se trab com collider pto de origem no ponto � definado como ponto a
tual do colisor, ou com ponto atual do corpo rigido
PLATAFORM EFFECTOR
tem como andar sobre objeto putiagundo sem deslizar, tem de usar
material
tem o bounce de ficar pulando em um component
SURFACE EFFECTOR
uma for�a � aplicada sobre a base
d� para fazer que pule tbm ,suba a montada tanto para direita como esquerda
CONSTANTE FORCE2D
aplica uma forca contante
mastem for�a relativa
aplica torque constante tbm
UI
TEXT
o canvas � como se tivesse algo sobreposto ao visor da camera
dar para alinha colocar cor, feito ,alinhamento
se rich text estuver ativado dar para usar algumas tags de html
se desmarcar rich text vira texto puro
Best Fit � para assumir um tamanho legal
Min Size e Max controla o tamanho da informa�ao internamente
aqueles triangulos vc puxa ele e deixa nas extremidades o
component ui text para prender eles ali
IMAGE
serve para muita coisa
serve para dizer qual o tipo de objeto comoletado como o desenho de
uma moeda ,colocando uma sprite
-dar para colocar por exemplo colocar a vida de um personagem
pode mexer a tonalidade para chegar em uma cor interessante
-em Image Type vc consegue mexer em alguns apsectos da imagem
como a Sliced, indo l� e colocando bordas pelo sprite editor
se vc usar tiled ele repete
se usar fill e mexer em fill amount d� para fazer aquelas
esferas de vida
codigo
//dentro de Start
magnetImg.fillAmount=0.5f;
RAWIMAGE
nesse exemplo ele cria um codigo para acessar essa imagem e fazer um
scroll
//codigo
public RawImage rIMG;
BOTAO 01
o botao em hierarqui ele � um botao e um texto
d� para mexer na transparenia em A em color mas nao
� legal mexer nas configurac�es image
e sim nas de button que tem tudo iss
aonde vc vai mexer nas cores dos estados do botao
em Sprite Swap-vc trocaria de imagens
tem um checkbox que tem preserve aspect ratio
UI BOTAO 2
TOGGLE
(caixinhas q pode assinalar tipo checkbox)
tem a animacao dos botoes
Is on- se j� vai marcado
TOGGLE 02
utilizando c�digos com o toggle
SLIDER
muito ultil para fazer transi�oes de valores predeterminados
d� para falar se ele estara interativo ou n
voce pode definir a dire�ao e sentido
tem como definir valor minimo e m�ximo
tem como dizer se vai mexer apenas com numeros inteiros
se clicar no slider e abri ro background pode-se trocar o fundo,cor
pode-se mexer na bolinha ,cor
SCROLLBAR
usado para manipular imagens, dizer o q vc ver� ou n
podemos mudar a dire�ao
value � a posi�ao dentro dele
mudar size, tamanho
number of steps, sao os estados dentro da barra
tem como trocar a cor ,imagem
cria imagem joga texto nela e add na imagem scroll rect para usar o scroll bar
o conteudo do rect � o texto
vc tem jogar seu ecroll bar na vertical
se vc coloca 1 step fica muito mais suave
mas nao pode deixar esse texto restante a mostra, mas ser� deixado
mais para frente quando se falar de mascara
DROP DOWN
j� sai com imagens, cores ,transi��o, op�oes d� para vc colocar
e tirar op�oes em options pode mexer elas arrastando em option
tem as op�os de objetos internos do dropdown
-obr:com essa op�ao � possivel mostar alguma sprite na tela
paraca cada umas op�oes precisa ter uma
identificacao que sao feitas por um numero que est� no
campo value e ele come�a do zero se tem 3 op�oes
0 1 2
//codigo
INPUT FIELD
para colocar-digitar texto
tem como fazer modifica�oes em imagem cor
e tem duas formas de itvar o codio
quando o valor muda
e depois de quando vc terminou
tem como colocar ele apensa como leitura da� nada aconteceria
no exemplo dele depois dele editar ele vai vai mudar ele para ser
de apenas leitura
PANEL
recurso simples, mas serve para fazer menus bacanas
serve para colocar imagens de fundo
SCROLL VIEW
aonde ficas os botoes das fazes e aonde tem os itens para
pode ser comprados
e � dentro do content que ser� adcionados os objetos que serao
apresentados dentro do scroll view e que vao poder correr da esquerda para
direita de cima para baixo deacordo com as limita�oes q eu vou impor
o contente � como se fosse uma caixa invisivel
EVENTS
ele coloca uma sprite ,desenho sem nada
e adiciona um event trigger diz ele para manipular a iimagem
e nele vc pode adicionar um event type como
pointer enter, pointer Exit...
MASCARA E EFEITO
mascara � uma img, vc vai e colore com outra cor d� um efeito de borda
vc coloca o texto como filho da mascara mas vc tem de adicionar um mask a image
e automaticamente o texto ir� sumir
e tem a op�ao de apresentar ou nao o objeto a maskara
ui e effects para criar efeitos
vc da shadowsombra, outline(controle sobre linha de borda)
LAYOUT
vc adiciona um painel e adiciona a ele layout horizontal se
for criar menu horizontal e adciona os botoes como filho
d�i tem opcao de alinhas os filhos e tbm esquerda ,dri, distancia entre
Tudo para alinha direitinho
gridlayout � tudo junto
BARRA DE VIDA
se colocar abaixo na hierarqui ele fica por cima-ordem
TEMPORIZADOR
public float tempo=10.0f;
public Text txt;
public Image img;
void Update () {
if(tempo>0){
tempo -= Time.deltaTime;
}
else{
tempo=0;
}
PO��o
EVENTOS DE ANIMA�AO
No event system
tem um campo chamado firt selected para falar q inicializa selecionado
ESCLARECENDO DUVIDAS
O UPDATE serve para atualizar o jogo a cada frame, significa que
todo codigo dentro dele vai ser executado a cada frame do jogo
jogo 60 fps vai rodar 60 vezes por segundo
nao � recomendado colocar codigos demorados dentro dele como
de fisica poispode afetar diretamente o nosso fps
FIXEDUPDATE � executado o tempo todo,� sempre executado num tempo
fixo
ANIMA��O INTERNA
3 anima�oes
-que d� para fazer dentro da unity
-feita em programa externo(anima�oes de coisas simples, camera, objs)
com programa Spriter 2D(anim�ao d personagens) por causa do uso
dos bones fica mais bonitoS
INTRODU��O AO PHOTOSHOP
Janela->tempo de anima��o
ROTACIONANDO MOEDA
cria cilulo, na camada vc clica no botao direito rasterizae
seleciona as duas e clica na ferramenta de movimenta�aoe
clica no segundo desenho de barra para centralizar
C�DIGO DO VIL�O 1
vc coloca um segundo collider para fazer o campo de visao do
inimigo para persegu�-lo
distancia = Vector2.Distance(this.transform.position, Hero.transform.position);
//calcula distancia entre vetores;
if((Hero.transform.position.x>this.transform.position.x)&&!face)
C�DIGO DO VIL�O 2
SISTEMAS DE PARTICULAS
SISTEMA DE PARTICULAS
COLOR by SPEED
a cor da partila pode ser ajustada deacordo com sua velocidade � intere
ssante vc usar com force over lifetime fica um efeito mto bacana
SIZE by SPEED
� legal
d� para diminuir nos eixos
ROTATION BY SPEED
NOISE
d� um visual legal
COLISION
vamos conseguir adicionar colisao as nossas particulas
colision vamos usar 2d
dampen � quando de energia vai perder apos colisao
bounce tipo de pulo que afeta particulas
lifetime loss- perda do lifetime
radiusscale para tamanhos dos limites do collider
collides With com quem vai se colidir
TEXTURE SHEET ANIMATION
d� para colocar anima�ao a particula
tile � a posi�ao dela
frame over Time � como os frames aumenta a medida que
o tempo avan�a
tem o flip u e v
LIGTS
� pesado usado mais para console
light � um prefab, tem de criar jogar na cena e jogar em light
ratio � a taxa que vai ter ilumina�ao
random � ramdomico aleatorio ou periodicamente
Use Particle Color a cor final da luz sera modulada
pela cor da particula
Maximum Light, numero maximo de luzes
TRAILS
efeitos de trilhas
em trail tem como colocar um material,em renderer - trail material
ratio-porpor�ao de particluas que tem trilha [0,1]
Texture modo- tile -e um monte de trancejada a outra op�ao � a esticada
die with particles morre com as particulas- para efeitos de impacto
Inherit particle color, faz a trilha ter a mesma cor da particula
color over lifetime d� para fazer altera�ao na co dos rastro
width over trail, mexe na largura do rastro
EXEMPLO MANDALA
se vc coloca statspeed igual a zero d� para ver, o aspecto se
est� ficando e legal e talz
EXEMPLO DE EXPLOSAO
para fazer explosao tem que ir em emission e ir em burst
e usar zero em rate over time
3D + 2D
programs de modelagem
-wings3d
-blender
-sketchUp(pago) diz ser bem mais facil modelar
WINGS 3D
SCKETCHUP
BLENDER 01
BLENDER 02
2D + 3D
tem duas formas de misturar 3d com 2d forma facil e complexa
facil objetos 2d na frente objetos 3d atras para dar um efeito de profundidade
mais realistas possiveis
SPRITEMASK
efeito de transi�ao legal
imagem so apare dentrou ou fora da imagem estrela por exemplo
TileMAP
2d objct-tilemap
window tile pallete
meio q vc pinta o seu cenario 2d, muito pratico
para jogos run simples
tilemap collider 2d
ATUALIZANDO A UNITY
UNITY REMOTE
using UnityEngine.UI;
void Update(){
if(Input.touchCount>0)
{
toque =Input.GetTouch(0);
switch(toque.phase)
{
case TouchPhase.Began:
txt.text="Began";
break;
case TouchPhase.Ended:
txt.text="Ended";
break;
case TouchPhase.Moved:
txt.text="Moved";
break;
case TouchPhase.Stationary:
txt.text="Stationary";
break;
case TouchPhase.Canceled:
txt.text="Canceled";
break;
}
}
}
if(Input.touchCount>0)
{
toque=Input.GetTouch(0);
if(toque.phase==TouchPhase.Began)
{
if(toque.position.x>(Screen.width/2))
{
txt.text="Direita";
}else{
txt.text=�squerda";
}
}
}
Input Accelerometer
transform.Translate(Input.acceleration.x,Input.acceleration.y,0)
Line Render
Effects->Line render
cria o gameobject
Line Render 2
ele pega o primeiro ponto p1 onde est� o line render e joga o c�digo
na cena tem outros 2 ptos
void SetupLine()
{
lineFront.SetPosition(0,lineFront.transform.position);
lineFront.SetPosition(0,lineBack.transform.position);
}
EFEITO ESTILINGUE 02
void Start(){
leftCatapultRay=new Ray (lineFront.transform.position,Vector3.zero);
}
catapultToBird=transform.position-lineFront.transform.position;
leftCatapultRay.direction=catapultToBird;
para passar l� no public basta jogar os objetos com o linerenderer
dentro do spa�o
void LineUpdate()
{
catapultToBird=transform.position-lineFront.transform.position;
leftCatapultRay.direction=catapultToBird;
pointL=leftCatapultRay.GetPoint(catapultToBird.magnitude+passaroCol.radius);
//GetPoint returns a point at distance units along the ray;
lineFront.SetPosition(1,pointL);
lineback.SetPosition(1,pointL);
}
EFEITO ESTILINGUE 03
para a fisica
ele adiciona o spring joint 2d
void Start(){
spring=GetCOmponent<SpringJoint2D>();
passaroRB = GetComponent<Rigidbody2D>();
}
passaroRB.isKinematic=false;
void SpringEffect()
{
if(spring != null)
{
if(passaroRB.isKinematic==false)
{
//sqrMaginitude � o retorno do raiz quadrado de um vetor
if(prevVel.sqrMagnitude>passaroRB.velocity.sqrMagnitude)
{
lineFront.enable=false;
lineBack.enable=false;
Destroy(spring);//para nao ficar aquele vai e volta da mola
passaroRB.velocity=prevVel;
}
}
}
}
[SerializeField]
void Update(){
Vector3 posCam = transform.position;
posCam.x=passaro.position.x;
posCam.x=Mathf.Clamp(posCam.x,objE.position.x,objD.position.x);
transform.position=posCam;
}
MORTE PASSARO
//ele coloca a morte dele de acordo com uma velocidade,por exemplo 0.5
void MataPassaro()
{
if(passaroRB.velocity.magnitude<0.5f)
{
StartCoroutine(TempoMorte());
}
}
IEnumerator TempoMorte()
{
yield return new WaitForSeconds(3);//espera 3 segunds para morrer
Destroy (gameobject);
}