Bem-vindo de volta, meus colegas desenvolvedores de jogos.
Neste vídeo, estamos levando nosso jogo para o próximo nível.
Quando executamos nosso jogo.
Você notará que não só andamos por aí,
mas se tentarmos deixar nosso mapa,
lá vamos nós. Não podemos.
Juro que ainda estou pressionando o dolor.
Ainda estou tentando descer, mas não funciona.
Ainda estou tentando sair.
Isso não funciona. Então, estamos confinados neste pequeno espaço.
Fazemos isso usando corpos rígidos, usando colliders.
E isso é muito bom porque finalmente podemos sentir o peso do nosso jogo.
Então, mesmo que pudéssemos andar,
pudemos ver que podemos fazer qualquer coisa,
mas agora realmente temos peso para o nosso movimento.
Podemos sentir o mundo ao nosso redor.
Com isso dito, não vamos perder mais tempo.
E vamos começar.
O k.
Então, atualmente, quando executamos nosso jogo,
podemos nos mover e tudo isso é ótimo.
Mas, como você pode ver, quando tentamos bater na parede ou algo assim,
apenas nos movemos desgraçados.
E é como se não houvesse nada neste mundo.
Parece vazio, não parece real, mesmo que estejamos nos movendo nele.
Então, como vamos consertar isso?
Vamos usar algo chamado colisor.
Deixe-me mostrar o que é um collider na documentação do Unity,
como você pode ver, sempre referido na documentação do Unity,
você pode chegar lá através do Google.
É super fácil, super eficaz.
Vamos ver o que temos uma classe de colliders baseada em descrição.
Temos caixa, esfera, cápsula,
um colisor de malha, materiais físicos e corpos rígidos.
Algo que aprenderemos em apenas um
objeto com um colisor precisa ser movido.
Durante a jogabilidade, você pode anexar um componente rígido do corpo
e vamos apenas obter o corpo rígido um pouco de pacientes,
você pode ver todas as propriedades que podemos ter,
os limites, o deslocamento de contato, o material.
Temos métodos públicos, como relançar o ponto mais próximo.
Temos mensagens que são extremamente importantes e usaremos
muito Trigger Enter na saída do gatilho no Trigger Stay.
Você pode ler as descrições aqui do que cada método, o que cada propriedade,
o que cada mensagem significa,
o que ela faz, toda a herança,
o que podemos usar, a tag de comparação será muito importante.
Você pode ver que temos muito.
Você não precisa entender cada um deles.
É bom saber que você pode, se você
tiver algo em mente a implementar,
você sempre pode entrar em documentações da Unidade e ver se o que
você está procurando está disponível aqui.
Então, com isso dito,
vamos voltar aqui e vamos em frente e adicionar
um colisor de caixa a uma dessas paredes aqui.
Vamos começar com o inferior.
Então, a maneira como fazemos isso é que vamos clicar com o botão direito do mouse aqui.
Ou vamos para o segundo plano.
Vamos adicionar um componente aqui.
Vamos torná-lo um colisor de caixa 2D,
porque estamos trabalhando neste colisor de caixa é 3D.
Este é 2D.
Nós clicamos nele.
Você pode ver que ele preenche toda a sala imediatamente,
mas não queremos isso.
Na verdade, queremos editar isso,
ou podemos clicar no botão Editar aqui.
Você pode ver que podemos torná-lo um gatilho.
Podemos definir um deslocamento,
podemos definir o tamanho,
para que possamos diminuir isso no eixo y,
ou podemos simplesmente clicar nesses três pontos conectados
aqui e simplesmente movê-lo manualmente.
Então lá vai você.
Então agora temos esse colisor aqui na
parede ou na parte inferior ou o que você quiser chamá-lo, podemos desclicar.
Isso executará o jogo.
E agora nosso jogador,
quando ele se move para baixo,
oh, bem, o que está acontecendo?
O jogador ainda batendo na parede e ele está se movendo para além. Por que isso?
Bem, porque não temos um colisor em nossa camada.
Então, esse será o seu desafio.
Seu desafio é adicionar um colisor ao jogador.
Então, em um collider,
uma cápsula, não precisa ser uma cápsula.
Depende do tamanho e do quadro do seu jogador.
Aquele que realmente obteve pessoalmente,
ou se você estiver usando o mesmo que eu, certifique-se de que é apenas um
objeto pai do jogador, não o corpo.
E altere o tamanho do colisor para o tamanho apropriado do seu jogador.
Então, com essas instruções,
pause o vídeo agora mesmo e vá fazer o desafio.
Certo, bem-vindo de volta.
Então, como você se deu bem com isso?
Vamos adicionar uma cápsula collider 2D.
Lá vamos nós.
Temos a cápsula, a cápsula e nem sequer ao certo como ela é pronunciada.
Então, clicamos aqui.
Você pode ver a pequena linha verde aqui.
Então, vamos derrubar.
Lá vamos nós e fazemos isso quase do tamanho da nossa camada.
Agora, vamos ver se isso funciona.
Se executarmos nosso jogo.
Agora, quando descemos,
ainda estamos nos movendo pelo objeto.
Por que não está funcionando?
Eu deveria ter avisado você sobre isso.
Agora vamos adicionar um Corpo Rígido 2D.
E agora, quando executarmos o jogo,
veremos que batemos na parede.
Mas eu não pressionei nada.
Se eu subir e soltar, cairmos.
Por que isso?
O que está acontecendo?
Bem, porque quando você adiciona um corpo rígido,
você também adiciona gravidade.
Vamos nos aprofundar um pouco mais no que é um corpo rígido.
Portanto, ele controla a posição de um objeto por meio de simulação física.
Então, quando você adiciona um corpo rígido a um objeto de jogo,
você adiciona física a ele.
objeto de corpo rígido será puxado para baixo pela gravidade sem adicionar nenhum código adicional.
E também podemos aplicar nossas próprias forças a eles,
o que quero dizer com eles, é o corpo rígido.
Você também pode entrar em documentações de unidade e aprofundar o que é corpo rígido.
E, de fato, vamos precisar nos aprofundar nisso.
Então, vou entrar aqui.
Documentos de unidade de corpo rígido.
Lá vamos nós.
Vemos os documentos Unity 3D.
E você pode ver a descrição, as propriedades,
os métodos públicos e assim por diante e assim por diante.
Então, vamos voltar e novamente,
podemos ver aqui que podemos mudar a massa, o arrasto angular.
Podemos mudar a forma como a colisão é detectada, discreta, contínua,
mas é preciso um pouco mais de poder de processamento
, o modo de suspensão, as restrições,
nós realmente vamos usá-los em apenas um pouco.
Você verá o porquê.
E podemos mudar isso de dinâmicas duas cinemáticas, estáticas.
E cada um deles é explicado aqui.
Mas a principal diferença,
enquanto explicada em algum lugar aqui,
não tenho certeza de onde você pode ler sobre cada um para se aprofundar nele,
mas saber que a dinâmica significa ser afetado por forças externas.
Cinemático significa que não é afetado.
E meios estáticos são como uma grande rocha.
Ele não se move de forma alguma.
Você pode ver aqui a escala de gravidade.
Vamos configurá-lo para 0, salvar isso, executar o jogo.
E agora você notará que não estamos mais caídos.
Então, agora, quando descemos,
você pode ver que não podemos mais passar por isso.
Mas o que, o quê, o que aconteceu?
E você pode ver que nos movemos,
precisamos adicionar um colisor de caixa.
Mas o que aconteceu aqui e o que é, esse nervosismo?
Então, a primeira coisa que vamos consertar como as coisas invertidas.
Então isso é porque estamos girando.
Você pode ver aqui,
é porque a física calculou que
devemos girá-lo por causa da cápsula aqui.
Então, congelaremos a rotação ao redor do eixo z enquanto Z,
porque isso mostra se clicamos na ferramenta girar aqui ou simplesmente acertar o tipo.
Podemos ver quando giramos,
é o eixo z que nos gira e podemos vê-lo claramente quando saímos de 2D,
você pode clicar nisso à direita aqui, nós saímos.
Você notará que o eixo z, e você pode vê-lo.
Lá vamos nós.
É em torno do eixo z que estamos girando.
Então vamos parar o para o,
definiremos isso para 0,
congelaremos no Z.
E agora, quando executarmos nosso jogo,
descemos. E lá vamos nós.
Nós não viramos mais se passarmos da esquerda para a direita,
mas ainda temos esse nervosismo.
E o que é esse nervosismo?
De onde vem isso?
Bem, é uma questão de código.
Podemos ver aqui que estamos movendo o jogador usando sua transformação, essa posição.
Então, temos duas forças de colisão.
Temos a posição transformada tentando passar pela andorinha,
mas temos a física dos dois coliders tentando afastar o jogador.
Então isso está criando esse nervosismo.
Como corrigimos isso?
Bem, vamos começar a mover o jogador,
não usando sua posição de transformação,
mas usando sua velocidade.
E a velocidade está disponível no corpo rígido.
Se você achar isso em algum lugar aqui, não tenho certeza do que é.
Vamos ver.
Velocidade.
Lá vai você.
Podemos adicionar velocidade aqui,
velocidade angular, a velocidade normal.
Podemos mudá-lo aqui.
Então, vamos fazer isso.
Se formos e você souber o que,
vamos adicioná-lo aqui.
Criaremos um campo serializado.
Esta será uma variável do tipo corpo rígido 2D,
e vamos chamá-lo de corpo rígido do jogador.
Salve isso. Ah, e mais uma coisa que você notou,
e eu esqueci de te dizer isso.
É a forma como nomeamos nossa variável.
A primeira palavra deve sempre ter a primeira letra não maiúscula,
enquanto todas as palavras subseqüentes serão maiúsculas.
Por que isso?
Vamos dar um exemplo daqui.
Você notará que o jogador não está em maiúsculas.
O corpo rígido é pelo B para o corpo não.
Então, se salvarmos isso,
vamos procurar no inspetor.
Você notará aqui, a variável,
a forma como está escrita será o corpo rígido do jogador com corpo rígido como uma única palavra.
Se voltarmos, faremos com que isso seja maiúscula.
Nós salvamos isso.
Voltamos para o inspetor,
você notará que agora o B está em maiúsculas e é uma palavra separada.
Então, toda vez que capitalizamos uma das palavras, ela se torna separada.
Mas não queremos isso.
Queremos isso como um único.
Você pode ver o mesmo exemplo e a velocidade de movimento.
Quando voltarmos, lá vamos nós.
Então, acabamos de criar uma referência ao corpo rígido do jogador,
mas não o adicionamos porque você pode ver agora que o corpo rígido do jogador,
e não há como fazemos isso.
Simplesmente clicamos no corpo rígido aqui e o arrastamos para cima.
Então agora você pode ver,
como o nome sugere,
é o corpo rígido na camada de dunas.
Nós salvamos isso de volta em nosso jogo.
E aqui vamos usar em vez do delta de posição de transformação e tudo isso,
vou apenas comentar essa saída, vamos excluí-lo,
mas eu só quero ter tudo isso na sua frente para
você saiba o processo do que é acontecendo.
Então agora pegamos o corpo rígido dos jogadores,
acessamos a velocidade nele.
E será igual à entrada do movimento vezes a velocidade do movimento.
E porque estamos usando a velocidade,
isso não exigirá nenhum tempo.DeltaTime.
Nós salvamos isso.
Voltamos aqui.
Vamos mover esse cara um pouco.
Então, agora, quando executamos nosso jogo, nos movimentamos.
E se tentarmos nos mover pela parede, lá vai você.
Você pode ver que não temos mais o nervosismo
porque temos os dois motores de física funcionando.
Bem, não o mecanismo de física 2, 1 trabalhando nas
duas bibliotecas por causa do corpo rígido.
E, finalmente, vamos adicionar mais alguns colliders ao plano de fundo.
Então, vou adicionar um box collider 2D.
Vou tornar isso um pouco menor.
E agora nunca é recomendável adicionar vários planadores de caixa no mesmo objeto do jogo, mas,
por enquanto, faremos uma exceção.
Isso raramente acontecerá.
Então lá vai você.
Vamos adicionar um colisor de caixa assim.
Vamos adicionar outro.
E este estará para o lado.
Então, não saímos,
vamos torná-lo um pouco maior.
E vamos adicionar o último colisor de caixa,
e este será o do outro lado.
Lá vamos nós. Nós salvamos tudo isso.
Nós executamos nosso jogo.
E agora caminhamos para baixo.
Não podemos andar para a esquerda, não podemos.
Caminhamos para a direita, não podemos.
E se tentarmos subir,
também não podemos, mas há um pequeno problema.
Você pode ver que ainda temos espaço aqui para caminhar até.
Então, o que vou fazer é deixar
os jogadores colisores um pouco menores no topo.
Então, vamos fazer isso por aqui.
Podemos até mudar isso de uma cápsula para outra coisa e torná-lo assim.
Opa.
Onde está?
Nós mudamos a posição,
então a movemos no X. Sim, lá vamos nós.
Nós executamos nosso jogo.
E podemos ver que meio que nos movemos para cima.
Ainda temos esse pouco de espaço.
Isso não é um problema enorme.
Podemos até fazer B em vez de uma cápsula,
fazer um colisor de caixa ou outra coisa.
Mas você pode ver que tudo funciona bem e elegante com isso dito,
certifique-se de confirmar suas alterações.
E no próximo vídeo estará apontando nossa arma usando
a direção ou onde nosso mouse está apontando porque atualmente,
apenas ter essa arma não está fazendo muito.
Vejo você no próximo.