Movimento do Cacto e do Chão
Last updated
Last updated
Neste tutorial iremos adicionar os obstáculos, além de adicionar movimentação dos obstáculos e do chão.
Inicialmente vá até a Unity, pois iremos separar as imagens dos obstáculos pré adicionadas, para isto.
Vá até
Project
> Clique na pastaAssets
> Selecione a pastaSprites
> SelecioneCactosFinos
.
Após executar os passos acima, será necessário separar os cactos que estão juntos na imagem.
Selecione
CactosFinos
> Vá até a guiaInspector
> Desça atéSprite Mode
> Selecione a opçãoMultiple
> Desça e clique emApply
> Selecione a opçãoSprite Editor
.
Uma tela com 6 cactos será aberta, clique em
Slice
> Altere oType
de Automatic para Grid By Cell Count > No campoColumn & Row
altere o valor deC
que estará como 1 para 3 > Clique emSlice
Isto fara com que nossa imagem seja divida em 3 partes iguais.
Voltando para tela inicial da Unity verifique se a divisão da imagem foi feita corretamente em Sprites. Expandindo
CactosFinos
verifique se as imagens (CactosFinos_0, CactosFinos_1 e CactosFinos_2) foram criadas. Clique emCactosFinos_0
e arraste atéSampleScene
.
Após executar este passo, perceba que o cacto foi levado até a nossa cena, porém a escala das imagens estão diferentes. Nosso Dino está muito maior que cacto. Será necessário fazer a alteração da escala do Cacto.
As dimensões da imagem do nosso Dino são 761x94, e as dimensões da imagem do cacto recém adicionado são 34x35. Fazendo uma conta rápida, dividindo a altura do nosso Dino pela altura do cacto (94/35=2,68), podemos ver que o Dino é quase 3 vezes maior, então iremos alterar os valores da escala do cacto para 2,68.
Selecione
CactosFinos_0
> Vá até a guiaInspector
> EmTransform
desça até a opçãoScale
e altere os valores de X,Y e Z para 2.68.
Antes de iniciar nosso código iremos fazer uma pequena alteração em nosso chão, deixando ele mais alinhado com o cacto e com o Dino.
Vá até a guia
Hierarchy
> clique emChão
e vá até nossaScene
> Use a teclaW
para usar o modo de movimentação e alinhe o Chão com os pés do Dino.
Se observarmos o game original, podemos tirar duas conclusões. A primeira delas é que o cenário está se movimentando, fazendo com que o Dino tenha apenas que pular os obstáculos. E a segunda, é que o Dino se movimenta junto com a câmera pulando os obstáculos e vendo mais partes do mapa conforme ele avança. Nas duas situações o game irá funcionar, porém em nosso game iremos usar a forma que o os obstáculos se movimentam.
Vá até Unity > Na guia
Hierarchy
selecioneCactosFinos_0
> Vá até a guiaInspector
e desça atéAdd Component
> Dê o nome do script de "Movimentar"> TecleEnter
duas vezes.
Sempre que um Script
novo é criado pelo Add Component
é fica localizado dentro da pasta Project/Assets. Para que fique organizado, clique no script recém criado e arraste para cima da pasta Scripts
.
Clique duas vezes no
Script
recém criado (Movimentar). Iremos iniciar a criação do nosso script de movimentação.
O que nós queremos fazer em nosso Script é que nosso obstáculo se movimente, porém ainda não sabemos qual é a direção e ela será definida na Unity(Inspector).
Inicialmente iremos adicionar uma variável publica, pois queremos que ele se movimente para uma direção(Horizontal/Vertical). Para isto usaremos a seguinte variável:
iremos adicionar também uma variável publica que definirá a velocidade em que nosso obstáculo se movimenta.
A princípio não usaremos a função Start
, então apague as linhas 10,11,12,13,14,15,16 e o comentário que está na linha 17. Iremos utilizar apenas a função Update
. Certifique-se que a função Update
está na linha 11.
Vá até a linha 11 e antes de
void Update()
adicioneprivate
que define qual é modificador de acessos e de variáveis. Verifique se oprivate
está escrito com letra minúsculas. Salve as alterações feitas comCtrl + S
.
Iremos utilizar as seguintes funções:
transform: Guarda as informações de posição do objeto.
translate: Movimenta o objeto em uma direção.
direcao: Direção do movimento.
velocidade: Velocidade do movimento.
Time.deltaTime: Nos trás o tempo absoluto de frame a frame.
Desta forma temos o código completo de movimentação do nosso cacto. Salve (Ctrl +S) e volte para Unity.
Já na Unity espere compilar os dados e verifique se o script está funcionando corretamente, caso ocorra algum erro (apresentado no console), verifique se existe algum erro de digitação em nosso script.
Vá até
Inspector
e desça atéMovimentação
iremos adicionar os valores para que nosso cacto se movimente. Com oPlay
desativado, altere o valor de X para -1. O -1 fará com o cacto se mova para esquerda. E altere a velocidade para 3.
Dê play na cena e verifique a movimentação do Cacto. Caso ele esteja muito perto do Dino, selecione
CactosFinos_0
> Vá até aScene
e arraste o cacto levemente para direita. Desta forma você irá pode verificar melhor a movimentação do cacto.
Voltando a analisar o jogo original, podemos notar que o chão se move junto com os obstáculos. E para fazer com que o chão se movimente também, iremos utilizar o mesmo script que criamos para o cacto.
Vá até
SampleScene
selecione Chão > Desça atéProject
e abra a pastaScripts
> Selecione o scriptMovimentar
> Arraste até o lado esquerdo deAdd Component
e solte.Com o chão selecionado, desça até
Movimentação
iremos adicionar os valores para que nosso chão se movimente. Com oPlay
desativado, altere o valor de X para -1. O -1 fará com o chão se mova para esquerda. E altere a velocidade para 3.
Salve a cena e faça os últimos testes para garantir que tudo está funcionando como esperado.
Agora que o código de movimentação do cacto está pronto, suba as modificações no GitHub
através de um Commit
e um Push
, para que elas fiquem salvas na nuvem.