Olá. Bem-vindo a esta lição sobre Unidade. Nestas lições, você aprenderá como usar entradas para controlar o jogador no Unity. No Unity Hub, abra o projeto Platformer. Abra a cena do Nível 1. Se a paleta de blocos ainda estiver aberta, você poderá fechá-la. Vamos criar nosso player pré-fabricado e aprender como controlá-lo usando as entradas padrão do Unity. No painel do projeto, abra a pasta Pixel Adventure 1 no Pasta de ativos. Abra Ativos. Personagens principais. E em seguida, abra a pasta Virtual Guy. Selecione o ator Executar. Você pode ver no inspetor que esta é uma faixa animada de sprites, 32 pixels de altura. Confirme se o modo sprite está definido como Múltiplo. E defina os pixels por unidade para 32. Certifique-se de clicar em Aplicar. Clique no triângulo à direita de Executar. Você pode ver todos os sprites animados em uma sequência. Vamos selecionar todos esses sprites com Shift. Clique no primeiro. Shift clique no último. Em seguida, arraste esta seleção para a hierarquia. Um solicitante aparecerá. Vá para seus Ativos. Sua pasta de ativos principais. Animações. Chamaremos esta corrida. Agora selecione Executar. Na hierarquia, pressione F2. E renomeie isso para Player. No inspetor, altere a camada de classificação para Primeiro plano. Isto é muito importante. Abra a pasta Pré-fabricados. Arraste o player para dentro. O ícone fica azul. E agora temos uma pré-fabricada para o nosso player. No painel de cena, mova o jogador para a esquerda. Selecione Player na hierarquia. No painel de cena, pressione W para mover. E clique em um X e mova o player para a esquerda. Salve a cena. Agora pressione Play. O jogador está dando um loop e executando o movimento, mas não vai em qualquer lugar. Ele também está flutuando acima do solo. A forma como iremos movimentar este jogador, bem como habilitar detecção de colisão é usando o sistema de física 2D do Unity. Pare de jogar. Com o jogador selecionado, no inspetor, clique em Adicionar componente e selecione Rigidbody 2D. Isso adiciona física ao jogador, mas também precisamos definir um área de colisão ao redor do jogador. Clique em Adicionar componente novamente. E procure por Caixa. E queremos adicionar um Box Collider 2D. Certifique-se de adicionar apenas componentes 2D. Clique com o botão direito no painel de cena. E clique em F para enquadrar seu player. No inspetor, clique em Editar Collider. Você verá uma caixa delimitadora ao redor do player. Clique nos pontos em cada lado da caixa para circundar o jogador. Clique em Play e vamos ver o que acontece. O jogador agora cai com a gravidade, mas está passando o chão. Precisamos adicionar um colisor especial ao solo. Pare de jogar. Gire a grade aberta. Selecione Primeiro plano. No inspetor, clique em Adicionar componente e pesquise Tile. Precisamos selecionar o Tile Map Collider 2D, que é um especial tipo de colisor. Vamos apertar o play novamente. Agora o jogador pousa e permanece no chão. Este é um grande começo. Agora precisamos adicionar algum código a este player, para poder usar o teclado para controlar seu movimento. Abra a pasta de scripts. Clique com o botão direito e crie um novo script C Sharp. E chame-o de PlayerControl. Lembre-se sempre de nomear imediatamente. Verifique se o nome do seu script corresponde à classe pública no inspetor. Selecione o jogador na hierarquia, e arraste este script para o player. Se você não tiver espaço suficiente no inspetor, poderá girar para baixo e desmonte alguns dos painéis. Abra o script. Clique com o cursor após a primeira chave, e pressione Enter para abrir espaço. Como este é um movimento baseado na física, precisamos definir um corpo rígido e definir uma variável de velocidade. Então, vou digitar corpo rígido privado 2D e nomearemos esta variável RB. Pressione Enter novamente para abrir mais espaço para a próxima linha, e digite public float. Chamaremos essa variável de moveSpeed, e daremos a ele um valor inicial de 4. Não se esqueça da letra F após o número 4, pois este é um variável flutuante. Público nos permite ajustar esta variável no editor. Pressione Enter novamente para adicionar algum espaço. Clique dentro do método start, e o tipo RB é igual a getComponent. Queremos getComponent com colchetes, e o colchete é encontrado no seu teclado. Se você apertar shift vírgula, vamos digitar corpo rígido 2D e no final vamos vou adicionar parênteses, e um ponto e vírgula. Isso define o nome da nossa variável de corpo rígido, RB, para reagir com o componente de corpo rígido que adicionamos ao player. Isso nos permite enviar comandos para a variável RB, como velocidade, o que fará com que nosso jogador se mova em vários instruções. Salve o código e minimize o Visual Studio. Antes de continuarmos o código do player, precisamos entender como o Unity tem as teclas do teclado mapeadas como entradas padrão. Abra Editar, Configurações do Projeto, na coluna da esquerda, selecione o Gerenciador de Entrada. À direita, você verá uma lista de eixos para os diferentes tipos de entrada. Gire os eixos abertos, você pode inserir tipos, como mouse e teclado. Gire para abrir Horizontal, anote o nome Horizontal. E começa com H maiúsculo. Precisamos digitar isso exatamente no código. Mais abaixo, você pode ver um botão negativo e positivo. Um botão negativo retorna o valor de menos 1 e um botão positivo retorna mais 1 Esquerda significa seta para a esquerda no teclado, direita é uma seta para a direita. Você também pode pressionar as teclas A ou D para as mesmas ações. Então, basicamente, o valor horizontal mudaria se você pressionasse A, D, para as teclas de seta para a esquerda ou para a direita. Feche o painel, abra a pasta Scripts. Clique duas vezes no script Player Control, no Visual Studio, vamos adicionar um método especial de atualização que funciona melhor com movimentos baseados na física. Clique na linha após o método “Iniciar”. Pressione Enter para criar uma sala e digite Void, Atualização fixa. Observe que o IntelliSense definirá automaticamente os parênteses e chaves para você. Dentro das chaves, vamos digitar Float moveDirection, esta é uma variável criada em tempo real. é igual, input.getAxisRaw, parênteses e precisamos de aspas e, se você se lembra, Horizontal é escrito com H maiúsculo, precisamos escrever corretamente, caso contrário não funcionará. e não se esqueça do ponto e vírgula. Isso cria uma variável instantaneamente, que chamamos de moveDirection contém um valor da entrada Horizontal, vamos pressionar Enter para a nova linha. e digite rb.velocity=new vector2, parentheses, moveDirection, que é uma de nossas variáveis. Vamos multiplicar isso por moveSpeed, colocar uma vírgula e terminar com rb.velocity.y. Isso é velocidade para cima e para baixo na direção Y. A velocidade para um jogo 2D é um vetor2, significando movimento na direção X e Y. O jogador viajará na direção X, com base em um resultado positivo ou negativo direção do movimento, multiplicada pela velocidade do movimento. O segundo valor após a vírgula é, o Y ou o valor para cima e para baixo, que agora permanecerá em zero. Salve o script e minimize o Visual Studio. Jogue o nível e agora, se você pressionar a tecla A ou D ou a seta para a esquerda ou para a direita, poderá mover o jogador para frente e para trás. Esta é uma boa velocidade para o jogo e parece que estamos conseguindo algum progresso. Salve a cena. Na próxima lição, aprenderemos como instale o novo sistema de entrada no Unity. Obrigado por assistir.