Transcrições
1. Introdução e estrutura do curso: Meu nome é Michael Moore, fundador do Double M Game Dev. E meu objetivo é fazer de você o melhor desenvolvedor de jogos da maneira mais divertida possível. Eu ajudei centenas de aspirantes a desenvolvedores de jogos alcançaram seus objetivos de criar jogo justo. E quero fazer o mesmo por você. O que eu aprendi é que pode ser muito difícil saber por onde começar quando se trata desenvolvimento de
jogos e quais os passos a tomar para ir do iniciante ao intermediário ao profissional, não só no desenvolvimento de jogos, mas em programação e aprender a ir. E eu posso dizer com absoluta confiança, este curso torna mais fácil para qualquer iniciante com 0 experiência de codificação entrar e aprender a fazer grandes coisas. O que é ainda mais surpreendente é que este curso é feito usando a versão mais recente do Unity 20-20 foi o mais recente conteúdo possível e técnicas usadas e desenvolvimento de jogos modernos, Eu tenho realizado centenas de pessoas criar jogos do mundo real, e eu Quero que sejas uma dessas pessoas. Então, como vamos fazer isso, a estrutura do curso? Então, a primeira seção, na
qual estamos atualmente, será a produção e o xarope, onde apresentarei a vocês uma unidade se vocês forem novos, e apresentar-vos ao Visual Studio e por que irão usá-la, na
qual estamos atualmente, será a produção e o xarope,
onde apresentarei a vocês uma unidade se vocês forem novos,
e apresentar-vos ao Visual Studio e por que irão usá-la,
também criar nosso primeiro código e nosso primeiro script, o que é muito emocionante. A segunda seção será o Cubo de Jogo mágico, basicamente cobrirá o básico C-sharp e unidade. Falaremos sobre o básico de C-sharp e as ferramentas que precisaremos para o nosso Golding mais tarde. E os fundamentos da unidade e tudo o que precisamos
entender desde colisões a corpos rígidos, à física, imunidade e assim por diante. Agora, a terceira seção é onde as coisas ficarão muito interessantes. E é o nosso projeto que é a conquista de Castela para o, e na seção três, estaremos montando nosso mundo. Vamos criar nossos conjuntos de azulejos. Nós vamos estar criando nosso mundo, adicionando colisões para deixar o mundo e adicionando nosso jogador, mas não tão rápido primo na seção quatro, nós vamos estar adicionando nosso conquistador e nós podemos ter, nós podemos introduzir nossa conquista e d, Seção Três Botão seção quatro. Nós vamos dar a ele as habilidades para Shawn, para correr, para ter diferentes animações e assim por diante. Agora, seção cinco é onde as coisas ficam um pouco assustadoras porque estamos adicionando inimigos e bombas. Então agora o nosso jogador como não mais seguro, ele terá que lutar contra os inimigos e ele terá que
evitar solavancos ao longo do caminho enquanto ele tenta conquistar a Gaza. E na seção seis, começaremos a controlar nossos jogos. Todos ser adicionando, uma pontuação, será adicionando as vidas, será adicionando jogo de loja de vários níveis e tudo o que acontece com ele será realmente também adicionar um monte de efeitos sonoros e tornar o nosso tema muito mais legal. E, finalmente, na seção sete, teremos a seção óssea será onde nós
ajustamos as coisas um pouco e só por diversão,
tornaremos nosso jogo um pouco mais emocionante e mais divertido. Você também terá a chance de flexionar seus músculos de desenvolvedor de jogos, porque em cada vídeo haverá um mini desafio para você completar. E mesmo que você não consiga descobrir como fazer isso, não se preocupe com isso. Estarei lá para ajudá-los a tentar novamente e completar o desafio com tudo. E nosso ganho será configurável. Então você pode ajustar, brincar e dar ao jogo e individual S sensação especial sobre você estará colocando sua própria criatividade nele e realmente tornando-o seu próprio. Estou tão animado para começar e espero que você também esteja. Este é o momento perfeito para começar a aprender a codificar, especialmente em tempos como estes. Então mergulhando comigo e eu vou ajudá-lo em cada passo do seu júri de desenvolvimento de jogos. E vejo-te no próximo vídeo.
2. Seção 1: como baixar Unity e Visual Studio: Bem-vindos de volta a todos. Então, neste vídeo estamos simplesmente indo para ser baixado na unidade, como instalar nossa versão do Unity e configurar tudo para começar a criar jogos. Então vamos começar. A primeira coisa que você precisa fazer é ir e para qualquer navegador que você está usando. Estou usando o Google Chrome no momento. Isso não importa. Basta ir em frente ao Google e digitar o hub de unidade de download, e você deve obter este resultado de pesquisa. Então, basta ir e clicar no hub de download da unidade. Deve ser o primeiro link que estaria no site Unity 3D.com. E ele irá levá-lo a esta página aqui, e ele irá pedir-lhe para baixar o hub de unidade. Agora, o que é o centro da unidade? Bem, unidade hub é um lugar onde podemos adicionar diferentes versões do Unity. E nós também podemos ter todo, todo,
todo o nosso projeto representado de forma muito ordenada e muito cuidadosa, que é muito útil e muito melhor do que a maneira como usamos o Unity antes. Então, basta clicar em Baixar hub unidade e você deve obter a instalação que está bem aqui, que é a configuração hub unidade. Então, clique duas vezes sobre isso. Ele iniciará uma instalação. É bastante fácil. Basta clicar em concordar e instalá-lo. E onde quer que a pasta de destino que você tem, eu já tenho unidade hub, então eu não vou aborrecê-lo com o processo de download. Irá pedir-lhe que concorde com algo que é bastante fácil. Então vá em frente e instale o hub Unity. Oh, ok, então agora que você tem o centro de união e o estábulo, você deve pegar esta janela bem aqui. E a primeira coisa que você precisa fazer porque eu já estou conectado, então você precisa criar uma conta. Estou usando meu e-mail do Google, que é muito útil e muito mais fácil. E aqui você pode ver que nós temos todos os nossos projetos, não atualmente, nós não temos nenhum projeto ainda, mas nós teremos muito em breve. Aqui você tem guias diferentes para aprender e para a comunidade, que você pode ir e conferir e ver o que há. Mas o que vamos nos concentrar agora está indo para instalado. Como podem ver, já tenho uma versão do Unity, que é 2020.1.21. Então talvez você seja do futuro e tenha uma versão melhor ou mais, ou uma versão mais recente. E para adicionar uma nova versão, basta
clicar aqui no aplicativo. Então, quando você clica em Adicionar, ele lhe dá diferentes opções para baixar a unidade. Agora, como você pode ver, você tem lançamentos recomendados, você tem versões oficiais e você tem pré-lançamento. Agora, o que você deve escolher? Bem, pessoalmente eu, eu gosto de escolher os lançamentos oficiais porque eles geralmente são o menos buggy. Há a versão recomendada que também não é ruim. E há os comunicados de imprensa pré-lançamento. E agora comunicados de imprensa nem sempre são buggy ruim, mas às vezes você pode encontrar não muito bons desempenhos durante o jogo ou durante a criação do jogo. Eles não são tão comuns, mas eu pessoalmente prefiro os lançamentos oficiais. Então vá em frente e escolha um deles. Vamos escolher o lançamento oficial de 2020.1.10. E vamos clicar em Avançar. Agora, isso deve levá-lo para outros módulos para sua janela de instalação. E o que temos aqui é um monte de complementos e usos para a unidade. Então, por exemplo, você tem cinto Android, que irá ajudá-lo a construir jogos para Android, você tem linha próxima suporte construído e Mac e assim por diante e assim por diante. Você também tem a documentação que eu recomendo que você baixe. E você tem o idioma de volta, que se você tem algum tipo de idioma diferente, chinês ou coreano, eu não tenho certeza do que são. Você também pode verificar um deles e baixá-lo. Mas o mais importante é que você precisa verificar essa ferramenta de desenvolvedor, que é o Microsoft Visual Studio Community 1019. Talvez você tenha uma versão mais recente. Portanto, isto é absolutamente uma obrigação. Vamos usar o Visual Studio para codificar todos os nossos jogos. Então vá em frente, clique neles e clique em Avançar. E o download deve começar aqui mesmo enquanto você está tendo uma caixa semelhante a esta e com uma pequena barra azul aqui em cima esperando para terminar o download. Então agora vou apresentá-los ao seu desafio, e este é o seu desafio para hoje. Então você precisa baixar o Unity e o Visual Studio. Então, primeiro de tudo, vá em frente e baixe o hub de unidade. Então a unidade de download é a versão mais recente. E certifique-se de baixar o Visual Studio com a unidade. Então vá em frente e faça o desafio, e te vejo no próximo vídeo.
3. Como usar este curso: Bem-vindo de volta, Meus desenvolvedores de jogos favoritos. E este vídeo, na verdade, e não neste vídeo. Criei este vídeo para que possamos maximizar o potencial de aprender com este curso. Então eu quero você, eu quero guiá-lo através de alguns passos que podemos usar para
espremer completamente toda a energia
de aprendizagem do curso que você está fazendo atualmente porque você já, você já está gastando Seu tempo aqui. Então, por que não maximizar? Então, a primeira coisa que vamos entender é como as perguntas e respostas funcionam. Então, enquanto você está assistindo os vídeos, você está olhando através deles, talvez algo surja que não deve entender completamente. Então o que você pode fazer é ir em frente e deslizar para as discussões aqui mesmo. E você pode ver que você tem várias opções. Você pode iniciar uma conversa, fazer uma pergunta ou simplesmente compartilhar um projeto. Então aqui, você pode me fazer qualquer pergunta que quiser. Nenhuma pergunta é de limite. Mas há um pequeno passo que você precisa fazer antes de me fazer uma pergunta. E isto é, vá em frente e faça sua própria pesquisa. Por que te peço para fazeres isso? Bem, porque às vezes quando você se depara um problema e você vai em frente e procura uma solução você mesmo, e então você encontra ou não. E quando você volta e me faz a pergunta, é muito mais fácil de entender. Por que é isso? Porque você já passou por algumas sugestões, talvez nenhuma delas fosse adequada. Mas à medida que você avança encontrando a solução para o seu problema, você ganhou muito conhecimento. E quando vieres ter comigo, quando perguntares ao Michael e passarmos juntos a encontrar a solução, vais entender como tudo clica e, mais tarde, quando encontrares o mesmo problema ou talvez
vires isto problema para outro aluno. Você pode ajudá-los e é muito mais fácil. E finalmente, sempre que encontrar uma solução para a sua pergunta na sua pergunta e adicionar um prefixo de sal a ela porque outros alunos podem ter o mesmo problema e eles encontrarão uma solução para o seu problema se virem o prefixo resolvido Atrás dela. E finalmente, antes de eu partir, você só quer dizer uma coisa que não há questão de limite. Não há perguntas estúpidas, não
há perguntas estúpidas. Há apenas desenvolvedores de jogos não profissionais. Ninguém nasceu profissional. Todos nós temos que aprender através de tentativa e erro. Você não acreditaria como aspas, minhas perguntas eram estúpidas. Porque eu, o, eu sou, eu não nasci um profissional em unidade levou anos de prática, tentativa e erro ou fazer perguntas, pesquisar coisas no Google. Então isso é um processo. Não se preocupe, não tenha medo, não fique inseguro sobre algumas das perguntas que você pode querer fazer. Seja corajoso o suficiente para procurar uma solução se você não encontrar uma, não se preocupar, apenas deixe uma pergunta. Eu sempre, sempre respondo a todos os meus alunos e nós sempre mergulhamos o mais fundo necessário para encontrar uma solução para qualquer problema. E agora vamos falar sobre o servidor Discord. E é aqui que você pode aprofundar a comunidade que criamos aqui no desenvolvimento de jogos WMD. Então você pode ir para o link na descrição
deste vídeo ou você pode visitar meu perfil e encontrar o link em algum lugar lá. E recomendo que se junte à discórdia. Por quê? Porque a maior parte do tempo pode levar algumas horas para responder com base em onde você é. Então talvez nós vivemos em diferentes fusos horários. Talvez quando você me fizer a pergunta, é meia-noite e você precisa de uma solução para que eu possa estar dormindo, talvez
eu não consiga chegar ao meu computador. Então, é muito benéfico para você se juntar ao canal da discórdia que criamos. E deixe-me mostrar-lhe o canal da discórdia aqui. Este é o início do nosso canal de discórdia. Você pode ver que temos a comunidade geral. Nós temos o chat C-sharp, nós temos o chat de design do jogo, nós temos o show fora do seu jogo. Temos as questões gerais de desenvolvimento do jogo. E você pode ver que nós ainda não temos nada
aqui porque é bem novo enquanto eu estou gravando isso. Mas mais tarde, quando você entrar aqui, você vai notar que há uma enorme comunidade de pessoas esperando para ajudá-lo e talvez pessoas esperando para obter ajuda de você. E é muito benéfico tentar resolver a questão dos outros. Você não acreditaria o quanto aprendi ajudando outras pessoas. E você pode ver aqui que temos vários cursos. Estes são todos os cursos que duplom gamma game dev tem ou eu criei. E podemos ver também podemos compartilhar memes e aqui temos discussões gerais sobre jogos, jogos
AAA, eu não sei o que você gosta de jogar. Podemos discuti-los aqui e no canal social ou categoria, e assim por diante. Então eu recomendo que você se junte ao nosso servidor da discórdia. É muito divertido. Vamos nos divertir muito lá. E é isso. Isso é tudo o que eu queria dizer sobre o servidor Discord. Em seguida, vamos falar sobre os slides de desafio, e este é o slide de seus desafios. Então, sempre que você vir o slide, você precisa pausar o vídeo e fazer o desafio nele. É uma maneira muito melhor de aprender. E fazer é sempre melhor do que assistir e meu livro. Então, sempre que você vir a tela de desafio, saiba que é uma ótima oportunidade para sair e tentar enfrentar a tarefa em mãos. E a razão pela qual eu criei esses desafios é para você obter máximo de benefícios das pontuações que puder. Eu pessoalmente tentei mais de 10 núcleos onde o instrutor simplesmente passa pelos movimentos. E no final do curso, eu criei um jogo, era o instrutor, mas eu não aprendi nada e eu senti que eu nunca
seria capaz de replicar qualquer um dos desafios. Dar a você a oportunidade de tentar, cometer um erro, e ficar preso tentando resolver o problema. E mesmo que você não consiga descobrir, se você não tem idéia de como fazer o desafio, tente mesmo, mesmo que você não consiga completar o desafio. Quando eu completar o desafio, depois que você tentar, ele ficará enraizado no seu cérebro. E da próxima vez que você ver o problema, você vai se lembrar dos erros que cometeu e como não os cometer. Mais uma vez, confie em mim, este é o melhor para aprender e vamos mantê-lo ativo enquanto trabalhamos juntos durante o jogo. Então, a próxima coisa que quero falar é sobre a estrutura central. Então, seção 1, vamos começar introduzindo tudo e configurando. Então eu vou, Estamos atualmente na Seção 1. Estamos introduzindo a unidade e o Visual Studio se você nunca fez isso antes. Então eu vou levá-lo através do processo de download de tudo. Vamos falar sobre como usar as pontuações, é
claro, como estamos fazendo agora. E vamos explicar o que é o controle de versão. O controle de versão é uma ferramenta muito poderosa nas mãos de desenvolvedores de jogos
profissionais e qualquer tipo de programadores lá fora. E também criará nosso primeiro código no Unity 3D. Na seção dois, estamos começando nosso primeiro pequeno projeto e vai ser o cubo mágico 3D. Aqui é onde vamos apresentar as noções básicas de C-sharp e Unity 3D. Vamos criar um par de objetos de jogo. Criaremos formas, adicionaremos corpos rígidos. Vamos falar sobre o que são corpos rígidos. Vamos falar sobre o que são colisões e quais colisões em cada objeto de jogo faz. Vamos falar sobre o básico de C Sharp. Então isso, nesta seção, se você já está familiarizado como Unity3D tipo de funciona e como C-sharp funciona, então você pode querer a próxima seção imediatamente. Se você precisa construir uma base em C-Sharp, e este é o melhor lugar vamos falar sobre se condições, vamos falar sobre matrizes, vamos mergulhar em loops. Vamos falar sobre tudo o que você precisaria para continuar o curso e passar para a terceira seção,
que é o foguete encadernado espaço 3D. E estamos começando a criar nosso grande projeto. E estamos começando criando nosso foguete. Então vamos construir nosso foguete a partir de diferentes materiais e nosso jogo, vamos começar com as formas, adicionar corpo rígido e vai começar a se mover. Nosso foguete, em primeiro lugar, vai empurrá-lo e então vamos trabalhar na rotação do nosso foguete. Vamos então passar para a Seção 4, porque é claro, nosso foguete precisa de um espaço para voar, uma entidade precisa de obstáculos. Então vamos falar sobre design de nível. Vamos começar a criar nossos primeiros níveis e vamos adicionar a eles uma colisão e vamos começar a detectar que tipo de obstáculos estamos atingindo? E eles são bons obstáculos? Ou eles podem ser combustível. Talvez haja coisas em que precisamos pousar, então falaremos sobre tudo isso. E na quinta seção, estamos começando a falar sobre fluxo de nível. E o que eu quero dizer com nível de fluxo? Bem, é claro que no nível de design não vamos ter apenas um único nível, vamos criar vários níveis e precisamos de uma maneira de passar por esses níveis. Então é aqui que o fluxo de nível entra. Vamos acrescentar, vamos usar nosso conhecimento em C-Sharp, a fim integrar em nossos níveis e começar a progredir através deles. Então começaremos nosso trabalho no projeto avançado de foguetes. Então agora temos compreensão básica dos níveis. Estamos nos movendo através deles. Temos o nosso foguete, mas precisamos de mais, precisamos de mais talento. Precisamos adicionar mais energia ao nosso foguete. E é aqui que o projeto avançado do foguete virá. E vamos falar sobre efeitos de partículas. Vamos falar sobre a adição de mais áudio. Vamos aprofundar o projeto de foguetes e torná-lo muito mais interessante. Na sétima seção, começaremos a usar o design de nível avançado. Vamos falar mais sobre como os níveis funcionam. Vamos adicionar obstáculos em movimento. Vamos começar a realmente fazer o nosso nível respirar. Vamos adicionar diferentes tipos de idosos. Mudaremos a iluminação. E finalmente na seção óssea, e eu não incluí isso como uma seção principal. Essa é uma seção bônus porque já temos todos os elementos centrais configurados e nossas primeiras sete seções. Então, mas a parte de polimento é realmente adicionar mais arte em nosso ganho. Então vamos, em primeiro lugar, desligar o nosso óleo. Então, Seção 6, vamos criar uma barra de saúde para o nosso foguete, mas ele está preso lá e não está se movendo. seção de bônus será polir isso removendo o Health Bot e apenas fazendo com que apareça quando precisarmos, então estaremos criando um menu principal porque não é uma parte crucial do nosso jogo, mas também é muito divertido. E vamos adicionar, e vamos fazer o nosso jogo parecer muito mais profissional. Então eu só quero deixar você com essa mensagem. Se você colocar no trabalho nas pontuações e se você tentar o seu melhor fazendo os desafios, seguindo com muito cuidado os passos, você vai sair das pontuações muito mais aprendendo. Então não vamos perder mais tempo. E vamos começar.
4. Como trabalhar na interface Unity: Ok, então bem-vindos de volta a outro vídeo. Vamos ver o que é unidade? Então, a unidade é um desenvolvimento de motor de jogo multiplataforma desenvolvido pela Unity Technologies. Usaremos o Unity para desenvolver o nosso jogo. Então, o que significa multiplataforma? Isso significa que podemos usá-lo em diferentes plataformas. E é um motor de jogo. E que motor de jogo
é, é um ambiente para nós desenvolver jogos e adicionar física e adicionar coisas diferentes para criar o nosso jogo. Então vamos verificar como Unity realmente
se parece e eu vou explicar algumas coisas sobre ele. Então esta é a Unidade. Primeiro de tudo, temos esta barra de ferramentas bem aqui acima de tudo. E isso fornece acesso aos recursos de trabalho mais essenciais. À esquerda, nós, ele contém as ferramentas básicas para manipular a exibição de cena e os objetos de jogo dentro dela. No centro temos o jogo, pausa e o botão de controle stub. E os botões à direita dão acesso ao Unity Collaborate, Unity Cloud Service e à conta Unity, e não vai se dedicar muito a isso. No lado direito desses, temos o menu da unidade de visibilidade da camada. E nós temos o editor, que fornece alguns layouts alternativos para a janela do editor e permite que você salve seus próprios layouts personalizados. Então, se você não tem o mesmo layout que eu, você pode simplesmente clicar aqui no layout e você pode escolher o layout padrão. E este é o jogador padrão que temos. São os projetos aqui, inspetor e tudo mais. A próxima coisa que vamos falar sobre a janela da hierarquia aqui. É uma representação hierárquica de cada objeto de jogo e nossa cena. Então, cada item na cena tem uma entrada na hierarquia. Assim, as duas janelas são inerentemente ligadas. A próxima hierarquia revela a estrutura de como objetos de jogo anexados uns aos outros. Aqui temos a cena da amostra. E se clicarmos nisso, temos a câmera principal embaixo. E se adicionarmos outro objeto de jogo, ele também aparecerá aqui. E aqui está o inspetor, como você pode ver à direita. Este é o inspetor de janelas e ele dá, ele permite que você visualize e edite todas as propriedades do objeto de jogo selecionado atualmente. Portanto, não selecione um objeto de jogo, nós não vemos nada. Quando clicamos na câmera principal, temos essas janelas diferentes aqui, e os layouts e o conteúdo do contador da janela do inspetor mudam cada vez que você seleciona objetos de jogo diferentes ou agora não temos um objeto de jogo diferente. Então vamos nos contentar com a câmera. Próximo. Então temos esta vista de cena bem aqui. E a exibição de cena permite que você visualize,
navegue e edite a exibição de cena vista. Posso mostrar-lhe uma perspectiva 3D ou uma perspectiva 2D dependendo do tipo de projeto que você está usando. Assim, em pontuações será usando a visão do projeto 2D, mas você também pode escrever aqui coletar no para o botão e ele vai 3D. Como você pode ver, temos essa visão 3D, mas não precisaremos, ela simplesmente entrará no modo 2D. E, finalmente, quero falar sobre a janela do projeto aqui, que exibe sua biblioteca e ativos que estão disponíveis para uso em seu projeto. Então, quando você importar ativos para o seu projeto, eles aparecerão aqui. Então, por exemplo, por enquanto não temos nenhum ativo, teria apenas a pasta de cenas. E dentro da pasta de cenas, temos esta pasta de exemplo. Então esta é uma rápida visão geral da unidade e do que todos esses painéis e gadgets são. Iremos, é claro, aprofundar-nos mais neles à medida que passarmos pelo curso. Mas agora eu quero falar sobre o, algo muito importante e que é o Visual Studio. Então, o que é o Visual Studio? Visual Studio é um Microsoft Visual Studio. Ele é bem usado, é desenvolvido pela Microsoft e é um IDE. E o IDE é um ambiente de desenvolvimento integrado. E o que ele faz, na verdade, se você me perguntar no Visual Studio, vai nos ajudar a escrever o código usado para manipular objetos de jogo no Unity usando algo chamado scripts. Então, como usar o Unity com o Visual Studio? Então precisamos de uma maneira para a unidade e o Visual Studio para se comunicar. Mas eles não fazem isso simplesmente. Precisamos adicionar algo a ele chamado o arquivo dot cs, e que são nossos scripts. E esses scripts, nós realmente pegamos esses scripts, nós os anexamos a objetos de jogo. E usar esses scripts será capaz de adicionar comportamento a diferentes tipos de objetos de jogo. E veremos isso muito, muito em breve. Então, vamos ao Visual Studio e ver do que se trata. Este é o Visual Studio. E talvez a primeira vez que você abrir, você terá painéis diferentes aqui à direita, e janelas diferentes aqui à esquerda. Sinta-se livre para fechar todos eles. E não se preocupe com o que acontece a seguir. Claro, você não terá isso na primeira vez que iniciar o Visual Studio, mas verá isso em breve. E vou apresentar-lhe algumas linhas de códigos bem aqui. Então vamos ampliar só um pouco. E aqui no topo você pode ver que estamos usando coleções de sistemas. Estamos usando coleções de selos genéricos coleção. E o mais importante, estamos usando o motor Unity. O que são todos esses? Enquanto esses são chamados namespaces. E basicamente, estas são bibliotecas que nos dão a oportunidade de usar diferentes tipos de casaco. Assim, por exemplo, motor Unity, que adicionamos tentou aqui, nos
permite usar o método de início punho e o método de atualização e motores
diferentes para criar jogos e torná-lo muito mais fácil. E nós simplesmente escrevemos aqui usando o motor Unity. E isso nos poupa muito ouro e nos dá toda a biblioteca para usar. Em seguida, temos o nome da classe pública. E este é o,
na verdade, o ClassName, que deve estar bem aqui. Será o script que falamos e será anexado a um objeto de jogo. E ele vai abranger todo o código que vai mudar o comportamento do nosso objeto de jogo e jogo de parede lateral e comportamento
mono é uma classe base e é realmente estes dois significam que ele herda do comportamento mono, que lhe permite usar diferentes tipos de manipulações e motor e física e assim por diante e assim por diante. E a próxima coisa que temos é o início e acima é algo chamado de comentários. Ou sempre que você escrever código e adicionar essas duas linhas aqui, ele irá comentar as coisas e comentários realmente não são executados. E o GOP, o casaco, o casaco, o código e eles estão perfeitamente seguros. Então é o começo. Iniciar é chamado antes da primeira atualização de quadro. Assim que o nosso jogo começa, o método de início e o escopo de um método vamos começar a executar. A próxima coisa que temos a atualização, e a atualização é chamada uma vez por quadro. Então, cada quadro que temos em nosso jogo, a atualização é chamada. Então start é normalmente usado para dar as propriedades iniciais ou configurações para determinados objetos. E a atualização é usada para objetos que talvez estejam se movendo ou alterando cada quadro. Então, se tivermos um carro, por exemplo, e começar, podemos dar-lhe a cor, o nome, a velocidade em que ele pode ir. Uma atualização estará movendo o carro, estará fazendo o salto de carbono estará fazendo o carro ir mais rápido, talvez aumentar sua velocidade. Então você tem a idéia básica do Visual Studio, e agora é hora do seu desafio. E o teu desafio é ir fazer mira em massa. Então abra a unidade, crie um projeto. E se você não sabe como criar um projeto, faremos isso no próximo vídeo. E quando terminar, depois de fazer massa de feno, vá para o próximo vídeo, faremos nosso primeiro casaco e começaremos. Vemo-nos no próximo vídeo.
5. Escrevendo seu Primeiro código em C#: Bem-vindos de volta, meus colegas desenvolvedores de jogos. Neste vídeo, vamos criar nosso primeiro código e nossos primeiros objetos de jogo. Então, como você pode ver aqui, temos um objeto de jogo chamado Hello World em nosso coração e nossa hierarquia. Está presente aqui mesmo na nossa cena, embora não a vejamos muito bem. E nós temos o roteiro bem aqui anexado a ele. Nós também criamos os critérios de script em nosso projeto. E na consola. Se clicarmos no jogo, nós realmente recebemos uma mensagem que exibe Hello Michele, que sou eu. Mas, no seu caso,
vai mostrar o seu nome. Estou muito entusiasmado com este vídeo porque é o nosso primeiro mergulho no mundo da Unity. Espero que tenham gostado do vídeo e vejo-te daqui a pouco. K. Então a primeira coisa que vamos fazer é abrir o centro da Unidade. E atualmente você não tem projetos aqui, o que vai mudar em apenas a primeira coisa que vamos fazer é clicar em novo aqui. E precisaremos escolher um modelo para o nosso jogo. Então vamos criar um jogo 2D, não um 3D. E estas são opções diferentes também para diferentes tipos de projeto. Em seguida, vamos precisar adicionar um nome de projeto. Sinta-se livre para nomeá-lo. O que você quiser será chamá-lo por agora o projeto Hello World. E certifique-se de escolher um local para seus projetos do Unity. Então, vamos clicar neste aqui e vamos voltar e salvá-lo dentro dos projetos Unity. Então selecione a pasta e agora temos um local para o nosso jogo. Você precisa fazer. Tudo o que você precisa fazer agora é clicar no concreto. Então clique em Criar e Unity começará a criar seu projeto. E não vou aborrecê-lo com a espera aqui. Vou usar a magia da edição e vamos simplesmente saltar para o projeto. Vejo-te daqui a pouco. Bem-vindo de volta. Espero que o seu projeto também tenha terminado a configuração. Então esta é a nossa cena. Se você não tem esse tipo de visto, como eu disse,
você sempre pode ir para o layout e escolher o layout padrão. E teremos o mesmo layout, nós dois. Então, antes de começar, vamos em primeiro lugar em algo chamado Console. E como podem ver, mesmo antes de começarmos qualquer coisa, temos esta janela do console bem aqui. E o que isso faz é nos mostrar as mensagens. E vamos usar essa janela do console para ver as coisas que serão impressas do nosso código. E se você não tem, você pode simplesmente subir aqui e janela, clique nele. E logo acima aqui, você pode ver no geral terá o console, então clique nele, uma janela deve aparecer e você pode encaixá-lo onde quiser. Vou encaixá-lo bem aqui ao lado de projetos. Em outra coisa que eu quero falar é no,
onde quer que você salvou o seu projeto, Eu o salvei em D, projetos
Unity e HelloWorld. Então, como você pode ver, temos pastas diferentes aqui. Temos os bens. Manter nossas cenas e tudo o que criamos e projetos. Você pode ver os ativos e ativos do projeto aqui. Também temos a biblioteca que cria automaticamente toda vez que entramos em um projeto, temos logs, temos pacotes, temos configurações do projeto, tudo embora
todos esses sejam detalhes que não vão entrar em muito. E a pasta temporária, que discutiremos mais tarde no cubo mágico para o jogo. Então vamos voltar para a Unidade. E aqui vamos criar a nossa saia. Então vamos clicar com o botão direito aqui. E vamos para criar e criar. Nós podemos realmente criar várias coisas, como você pode ver, vamos fazer algumas delas em nosso projeto, mas por enquanto vamos simplesmente criar um script C-sharp. Então clique nisso. E antes de fazer qualquer coisa, então agora não faça nada, deixe tudo. Você precisará se certificar de que, sempre que você nomear um script, você o fará com precisão, pois isso causará um erro mais tarde se você quiser tentar renomear seu script. Portanto, certifique-se de nomeá-lo corretamente desde o início. Então vamos nomear este mundo hello sem quaisquer espaços e clique em Enter quando você tiver certeza de que você decidiu sobre o nome do script. Então clique em Enter e eu vou lhe dizer o porquê em apenas um pouco. Como podem ver, temos algo bem aqui no inspetor. E isso levou um pouco de tempo e é porque o Unity precisa compilar o código aqui mesmo. E você pode realmente ver o código no inspetor. E por que eu disse que é tão crucial ter certeza de que o nome do script aqui é definido antes de clicar em enter como porque ele vai ser o nome da nossa classe. Então, se você mudar o nome do nosso script aqui, marque o sobrenome não mudará. E haverá um erro em que a unidade ou o Visual Studio não
será capaz de encontrar o script correto no projeto e isso causará erros. Então, para evitar isso, simplesmente se certifica de que você nomeia seu script corretamente e precisamente desde o início. Agora, o que devemos fazer a seguir? É muito simples. Você simplesmente clica duas vezes em Hello World e o Visual Studio deve abrir. E como você pode ver aqui, isso é o que descrevemos alguns talvez no vídeo anterior. Então, o que vamos fazer aqui? Vamos simplesmente imprimir algo para o nosso console e vamos fazer isso dentro do estoque. Então vamos em frente e imprimir. Então, como você pode ver imediatamente, Visual Studio, nosso grande amigo começa a nos ajudar e ele dá uma sugestão para o que queremos usar, ou nós escrevemos a impressão e isso nos dá a sugestão. E agora você pode simplesmente clicar em Tab e ele vai terminá-lo para você. E agora abrimos nossos colchetes e podemos ver que o Visual Studio nos ajuda novamente. E isso nos diz que precisamos adicionar uma mensagem de objeto dentro daqui. E essa mensagem de objeto vai ser uma string. Falamos sobre cordas mais tarde. Mas por enquanto, string é uma cadeia de caracteres que colocamos dentro dessas duas aspas bem aqui. Então vamos em frente e adicionar essas duas citações um novamente. E agora escrevemos dentro dessas duas citações, Olá mundo. Então, isso é suficiente? Bem, na verdade, não, porque se você ver bem aqui, nós temos a linha vermelha rabiscada. E se passarmos por cima
dele, diz-nos que espera um símbolo, que é este. E cada linha de código em C afiado, você tem que adicionar este ponto-e-vírgula bem aqui. Então guarde isso. E agora, como colocamos dentro do início, assim que iniciarmos nosso jogo, essa mensagem deve ser impressa no console. Então vamos tentar isso. Voltamos para a Unidade e vamos para o console. Mas se clicarmos no jogo, como você pode ver, nada está sendo exibido em nossa tela. Por que é isso? Como não é suficiente apenas criar um script, você realmente precisa anexá-lo a um objeto. Então vamos criar um objeto. E da forma como fazemos isso, simplesmente
entramos em nossa hierarquia. Clique com o botão direito aqui. Podemos criar um objeto de jogo vazio. Clique nisso. E agora temos um objeto de jogo que ir em frente, podemos alterar o nome desse objeto de jogo. Vamos chamá-lo. Vamos chamá-lo de objeto Hello World. Clique em Enter, e abaixo você pode ver que temos a transformação. E esta transformação nos diz a posição do nosso objeto de jogo no mundo. E aqui temos as ferramentas para manipular. Então, se você clicar no banco, podemos realmente colocar o objeto para cima ou arrastar o objeto para baixo, levá-lo para a esquerda ou para a direita e colocá-lo em qualquer lugar que quisermos. E atualmente não podemos ver que não temos nada para representar ou objeto de jogo. Nós simplesmente temos suas ordenadas e ele é transformado. Então vamos anexar o script deste objeto de jogo. Para fazer isso, basta clicar no script e arrastá-lo para a hierarquia e para o objeto Hello world. Então, se você clicar em Olá objeto de trabalho aqui, você pode ver que ele tem um script logo abaixo da transformação anexada a ele. E agora, se clicarmos em jogar no console, podemos ver que temos Olá mundo. Parabéns, você acabou de escrever seu primeiro código e acabou de usar seu primeiro objeto de jogo para exibir algo no console. Vá rake. E agora é hora do seu desafio. E seu desafio vai imprimir o seu próprio. Obrigado. Então, em vez de Olá Mundo, você precisará imprimir seu próprio nome. Então mude Helloworld para Olá. E em vez desses três pontos, é
claro que vai ser o seu próprio nome. Vou te dar algumas dicas. Então adicione seu nome e tamanho dos pontos. Salve o Visual Studio. Lembre-se sempre de salvar Visual Studio que usando o controle como ir para a unidade e clique em jogar e verificar o seu console. Então certifique-se de que funciona. Pause o vídeo agora mesmo e vá fazer o desafio. Ow, kay, bem-vindo de volta. Como você se enganou com isso? Espero que tenha tentado o seu melhor e esse desafio. Vamos para o Visual Studio. E em vez do mundo, vou apagar isso e vou colocar o meu próprio nome, que é Michel. Então olá Michelle. E vamos apenas adicionar uma exclamação ou três pontos de exclamação para o efeito dramático. E para ter certeza de que você salvou seu projeto, eu vou suportar um script. Quando você olha para cima bem aqui, você pode ver que ele tem um pequeno asterix, tão rigoroso quanto cordas anexadas a ele. E para salvar que você clica, e isso significa que ele não foi salvo. Então, alguns segurar Controle, S, clique no controle. Como você pode ver que o asteriscado como Trixie desaparece, e isso significa que o script foi salvo, volte para Unity. E você pode ver que há um asterisco bem aqui, também ao lado da cena da amostra. Então guarde isso. E agora, se formos para o console, você pode ver aqui que temos este botão limpo. Ou você clica para baixo? Você pode ver que podemos clicar em Play. Você pode remover isso. Sinta-se livre. Isso não importa. Vamos apenas removê-lo para ver as mudanças que aconteceram agora se clicarmos no jogo, teremos Olá Michelle,
ou olá, qualquer que seja o seu nome como meus colegas estudantes. E isso é tudo tão claro que, que se esforçam novamente, clique no jogo. E olá Michele. Olá, meus desenvolvedores de jogos favoritos. Espero que tenha gostado do vídeo e te vejo no próximo.
6. Seção 2: Magic Game Cube 2D: Olá a todos. Neste vídeo vamos falar sobre controle de versão. Então o que é, como ele funciona e por que precisamos dele, também
vai baixar árvore fonte, que é esta, uma interface gráfica de usuário que vai nos ajudar e tornar a vida muito mais fácil? Nosso objetivo é chegar a um ponto em que tenhamos tudo preparado e pronto para ir. Então não vamos perder mais tempo e vamos entrar. Controle de versão. É difícil de aprender, é ainda mais difícil de ensinar. Mas não posso dizer o quão importante é que você aprenda a habilidade. E especialmente se você estiver olhando para se tornar um desenvolvedor de jogos profissional. Então, o que é? O que é o controle de versão? Bem, basicamente é um sistema que é responsável por gerenciar mudanças em seus programas de computador. Então, de qualquer forma, controle de versão é uma maneira de gravarmos a história do nosso projeto. Precisávamos controlar a versão do nosso projeto e ter um backup para cada um deles. O que significa que nos ajuda a dar passos arriscados em nosso projeto e evitar quebrar todo o projeto. Por que usá-lo? Bem, vamos usá-lo para lembrar versões
anteriores do nosso jogo e ter mais flexibilidade para experimentar. É especialmente útil quando se trata de criar jogos, porque o desenvolvimento de jogos requer muita experimentação. O que vamos usar é um sistema de controle de versão chamado Get. Há outras maneiras, mas esta funcionará perfeitamente para nós. E finalmente, usaremos uma interface gráfica que torna nossa vida mais fácil, que é chamada de árvore fonte. Também podemos ter um cavalo online, mas não vamos ser anfitriões apenas por agora. Agora, a primeira coisa que você precisa fazer, você precisa ir em frente e baixar a árvore de código-fonte. Basta escrever a fonte três ou ir para a fonte três, ABC.com, ou escrever o download da árvore de origem no Google. E você deveria vir até esta página aqui. Você pode baixar para Windows e também está disponível para o seu Mac OS. Quando você terminar de baixar, você, você deve ter este arquivo de instalação bem aqui. Basta clicar duas vezes sobre ele e iniciar a instalação. E quando você chegar, você deve chegar a este ponto bem aqui, onde você tem a fonte três instalada. Então, basta clicar em Concordo aqui. E, em seguida, ele deve levá-lo para o próximo slide ou janela, que é ou para criar uma conta. Então você usa uma conta existente ou
pode ir ao meu adolescente e criar uma conta. Agora, se você já tem uma conta do Google, você deseja se conectar a ela. Basta clicar em Usar existente pode contar e criado usando o Google, ou você pode ir e criar uma nova minha conta adolescente pessoalmente, Eu fiz um usando o Google Gmail. É muito mais fácil e eles não enviam e-mails para você. A próxima coisa que você precisa. Entre em conectar a uma conta que, como
dissemos, vamos pular por enquanto. E, finalmente, ao instalar, pode chegar a esta questão aqui onde não pode encontrar ou localizar o get. Então, se você não tiver o get já instalado, basta clicar em baixar uma versão incorporada do Git e baixá-lo para você. E, finalmente, como passo final, pode pedir-lhe o Mercurial, que não usaremos. Não há nenhum dano no download. Ele, apenas não será usá-lo neste curso. Então basta clicar, eu não quero nenhum Mercurial. Oh, ok, então quando você terminar a instalação, uma janela como esta deve aparecer mais para você. Se você não tem esta janela, você deve clicar em Criar aqui, e esta janela irá aparecer para você. Então aqui é onde criamos nosso repositório, que é a parte mais importante de todo
o repositório de sistemas de controle de versão é o backup do nosso projeto. Então, se você clicar aqui em navegar, você pode realmente encontrar o caminho de destino. Então, se formos para navegar, clicar em D, e olhar para nossos projetos Unity, você pode ver que temos apenas um projeto aqui, que é Olá mundo que fizemos na seção anterior. Então, o que vamos fazer agora é precisamos ir para o hub do
Unity e precisamos criar um novo projeto. E este novo projeto, você está simplesmente clique aqui na nova escolha 2-D. E este será o projeto da nossa seção atual, que é mágica q, k, ou Magic Game Cube. Ok, você pode dar o nome que quiser. Mas o mais importante é que você se lembre do local. Portanto, lembre-se da localização do seu projeto para acessá-lo através da árvore de código-fonte. Vá em frente e clique em Criar. E agora vamos esperar pelo projeto Unity. Gaye, bem-vindo de volta apenas pule todo
o processo de instalação usando a magia da edição. E agora estamos de volta ao Unity e temos a configuração do nosso projeto, que é Magic Game Cube. E agora o que precisamos fazer é criar um repositório para ele. Então volte para a árvore de código-fonte, clique em procurar e procure o projeto. Você deve se lembrar quando, onde você colocou e se você entrar em seus projetos do Unity ou onde quer que você o salvou, você deve ter feito. Agora, Magic Game Cube, basta clicar nele e clicar em selecionar pasta. Agora, como você vê o nome do repositório como o cubo do jogo de Magic. E você tem a opção aqui para escolher Git ou Mercurial. Nós vamos escolher pegar. E aqui é onde você pode criar um repositório na conta. Como já dissemos, não vamos receber nada. Então simplesmente desmarque, obtenha e clique em Criar. Ok, ele vai pedir problemas com o diretório de destino. Não se preocupe com isso. Basta clicar em Sim. Queremos continuar. Excelente. Agora, como podem ver, temos coisas estranhas por aqui e não temos certeza do que está acontecendo. Temos esses ativos, essas bibliotecas e assim por diante, e uma longa lista de coisas que são chamadas de arquivos no palco. Não precisa se preocupar com isso agora. Basta ir em frente baixar a fonte três e instalá-lo. E este é realmente o seu desafio, que é download e configurações ou S3. Então vá em frente e baixe a árvore de código-fonte. Vá em frente e instale e configure tudo. E vejo-te no próximo vídeo.
7. Configurando o arquivo .gitignore: Bem-vindos de volta a todos. Neste vídeo vamos estar ignorando alguns arquivos. E vamos aprender como obter todos os arquivos que precisamos para ignorá-lo e colocá-lo em uma pasta chamada Git ignore. Também adicionaremos um cubo. Sim, não, na verdade é um quadrado mágico, mas vamos chamar este cubo mágico, vamos adicioná-lo à nossa cena, e vamos criar o nosso primeiro compromisso. Então vamos começar. Agora, se clicarmos em nosso projeto, ele se abre muito rápido, relativamente rápido. E enquanto nós, tudo bem, agora está aberto. E se formos ao nosso arquivo fonte, podemos ver que temos esse arquivo temporário aqui e temos esse arquivo de biblioteca bem aqui. Então vamos em frente e fechar o projeto. Para mais perto, podemos ver que a pasta temporária desaparece. E se você excluir a pasta da biblioteca, você ainda pode abrir o projeto e Unity realmente reconstrói a biblioteca. Você pode tentar isso em casa. Não se preocupe, é completamente seguro. biblioteca contém informações armazenadas em cache que ajudam o Unity a abrir o projeto mais rapidamente. Mas o problema é que não precisamos salvar essa biblioteca em nosso repositório. Como você pode ver aqui, temos um monte de arquivos encenados estão armando arquivos no estado que estão atualmente fluindo da biblioteca e eles são inúteis. Então o que queremos fazer é ignorá-los sempre que preparamos nossos arquivos. Então, para fazer isso, basta clicar com o botão direito do mouse em qualquer um deles. E você pode ver que temos essa opção de ignorar bem aqui. Se você clicar nele, temos que ignorar o nome exato do arquivo. Ignore todos os arquivos com essa extensão. Ou podemos ignorar tudo debaixo de uma biblioteca, e é disso que precisamos. Então, basta clicar neste botão e clicar em OK. E agora toda a nossa biblioteca, tudo sob Biblioteca é ignorado. E se você rolar até o topo, você pode ver que temos uma pasta aqui, uma nova pasta que este ponto git ignora o que é chamado gitignore. E você pode realmente clicar duas vezes sobre isso e ele será aberto em um bloco de notas, você pode realmente acessar as informações. E aqui você pode ver que temos biblioteca. E este arquivo gitignore contém tudo o que será ignorado sempre que criarmos nosso repositório. Agora, outra coisa que precisamos levar em conta é que estaremos ignorando muitos outros arquivos que são inúteis e só ocupam mais espaço e nosso repositório. E como encontramos todos esses arquivos? Bem, felizmente, temos algo que é chamado de ponto git ignore arquivo que alguém criou já sabe o que deveríamos estar ignorando. E você pode encontrar isso. Se você simplesmente entrar no Google e aqui, 5p e Git ignoram a unidade e esses resultados de pesquisa devem aparecer. Basta clicar no que está no GitHub e deve ser o mais recente. Deve levar-te a uma janela que é igual a esta. Então role para baixo e aqui você pode ver tudo o que precisamos para ignorar e adicionado ao nosso arquivo dot ignore. Então, simplesmente destaque tudo nisso. Selecione Tudo, clique em Copiar ou simplesmente Control-C. Volte para o nosso bloco de notas de ignorado ensinado, selecione tudo e cole. E agora temos r dot ignore arquivo configurado. Basta salvar isso, estavam usando o controle S. E agora tudo no ponto ignorar arquivo foi salvo. Vamos sair disso. E agora se clicarmos em Git ignorar, podemos ver que todos os nossos arquivos foram salvos. Vamos passar rapidamente pelos degraus novamente. Então, a primeira coisa que você precisa fazer é encontrar um arquivo aqui em Biblioteca e clique com o botão direito sobre ele, vá para ignorar, e clique em, Ignore tudo abaixo. Mas aqui deve ser a Biblioteca. Quando acabar com isso, vá ao Google, procure pelo Git, ignore a unidade. Clique no primeiro resultado da pesquisa que é do GitHub. Muito melhor. Entre no GitHub e você deve encontrar este arquivo. Simplesmente copie tudo isso. Volte para a árvore fonte, selecione o arquivo gitignore aqui e cole tudo dentro dele e você deve ser feito. A próxima coisa que vamos fazer é criar nosso primeiro complet. Então, como fazemos isso? Entre em nossos arquivos no palco, que devem estar aqui, e clique no palco. Tudo isso vai esperar um pouco. E agora todos os nossos arquivos estão encenados. Para continuar, precisamos nomear este commit. E como cortesia ao nosso projeto, sempre
começamos com o nosso commit inicial, nomeando-o. Comentário inicial um pouco anticlimático. Mas sempre que você quiser nomear um commit, ele deve refletir o que você deve refletir as alterações que você fez em seu projeto. Então, clique em Confirmar. E agora nós temos esses ramos aqui, e nós temos o ramo mestre, e este é o nosso compromisso inicial. Excelente. Agora temos um backup para o nosso projeto. Portanto, independentemente das mudanças que
fizermos em nosso projeto, podemos sempre voltar ao nosso compromisso inicial. E se quebramos o projeto, podemos simplesmente corrigi-lo com o clique de um botão do mouse. Então, a próxima coisa é o seu desafio. Seu desafio é configurar o arquivo dot git ignore. Então você precisa criar seu primeiro projeto 2D no hub Unity. Você precisa criar um repositório e uma árvore de origem para o projeto. Você precisa ignorar todas as pastas da biblioteca e criar seu primeiro comentário. Então vá em frente e faça isso. E vejo-te daqui a pouco. Ok, então bem-vindo de volta. Aqui entraremos no nosso cubo mágico, um projeto. Vamos em frente e entrar nisso. Espere que abra. Deve abrir bem rápido. Ok, então vamos em frente e fazer algo bem aqui, vamos simplesmente entrar em nossos ativos aqui em cima e talvez nós vamos criar algo. Vamos ver o que devemos criar sprites de CO2. E vamos simplesmente criar um quadrado. Vamos chamar este quadrado de taco mágico. E agora vamos simplesmente arrastá-lo para a nossa cena. E agora temos um cubo mágico no meio da nossa cena. Se clicarmos em w, que mudança, muda a uma das chaves aqui, podemos simplesmente levantar isso e resolver
na posição 0 ou ir em frente e redefinir a transformação e configurá-la aqui mesmo. Controle S para salvar tudo. E agora, se você voltar e árvore de origem, você pode ver que temos alterações não confirmadas. Então clique em alterações não confirmadas. Você pode ver um arquivo no palco que
temos algo que adicionamos um cubo gerenciador de ativos PNG aquie.me é algo que a unidade usa e foi adicionado e fizemos algumas alterações na cena do ativo, cena de exemplo. Então encenar tudo. E agora podemos clicar aqui em cometer no canto superior esquerdo. Vamos chamar isso de “A deixa mágica”. Clique em Confirmar. E agora tudo salvou voltar ao mestre. E você pode ver que nós temos um commit inicial e nós
adicionamos o cubo mágico. Excelente trabalho. Eu sei que isso pode não ser muito legal, mas confie em mim, esta é uma habilidade fundamental para quando você se tornar um desenvolvedor de jogos profissional. E verei você no próximo vídeo.
8. Print usando Debug.Log(): Bem-vindos de volta a todos para outro vídeo incrível. Neste vídeo vamos imprimir coisas em nosso console, mas não usando print, mas usando debug dot clock, que nos permitirá adicionar avisos e erros. E faremos isso usando um script que criamos em nosso projeto. Vamos adicioná-lo ao nosso cubo mágico. Então, como você pode ver um inspetor, nós temos este script anexado a ele agora e estaremos criando algum código que é muito assustador, mas não muito. E finalmente estará comprometendo nosso projeto. Então vamos começar. Ok, então a primeira coisa que você precisa é esta janela do console. Se você não vê-lo ainda, você pode simplesmente ir para a janela e ir para o nosso considerando que, por isso é, em geral, console. Basta clicar nele e você deve obter esta janela do console. Estará aqui em algum lugar. Você pode simplesmente encaixar ao lado do nosso projeto. Ok, ótimo. Se olharem de perto, podem ver que temos um colapso claro e claro. Tão claro o que ele faz é limpar todo o nosso console. Eu verifiquei tudo bem após jogar. Temos colorido, o que significa que quando sofremos todas as mensagens que são iguais, é simplesmente coletar, recolhe-los em uma única mensagem. E aqui à direita, podemos ver que temos três botões que podemos verificar e desmarcar. Uma delas é mensagens, a do meio são os avisos. E à direita temos os erros. São as mensagens mais assustadoras que conseguimos. Ok, ótimo. Então, em seguida, vamos criar nosso script C-sharp. Você já está familiarizado com isso. Então vá para o nosso projeto, clique com o botão direito. Vá para Criar e clique em C afiado script. Sempre que quiser nomear algo assim, certifique-se de nomeá-lo corretamente na primeira vez que falamos sobre isso. Então, qual o nome que vamos dar? Vamos simplesmente nomear este Q. Clique em enter. Agora temos o guião do cubo. Excelente. Então podemos abrir o submarino clicando duas vezes nele. E o Visual Studio irá compilar, esperando por ele. A qualquer momento, carregando soluções. E devemos ter tudo dentro. Oh, ok, ótimo. Então, como você pode ver, nós já temos algum código e aqui nós não queremos nos preocupar com isso. O que vamos fazer é entrar no nosso método inicial. E lá dentro vamos imprimir para o nosso console. Agora, se você passou pela primeira seção, você pode perceber que usamos impressão, mas agora vamos usar depuração. E, como sempre, o Visual Studio é extremamente útil. Então DBA Debug, clique em Tab, ele vai terminá-lo para você. Dot log e abra os colchetes. E como, como eu disse. Anteriormente usamos impressão, mas agora estamos usando t Bach. Por que é isso? Bem, a depuração nos dá mais flexibilidade e controle. E tecnicamente é manteiga, e nos dá melhores hábitos para codificação futura. Então, qual é a mensagem que vamos escrever aqui? A mensagem será olá, pessoal. Cada um. Estou imprimindo do Debug. Ok. Coloque esse ponto-e-vírgula lá, e agora nós o salvamos, coloca um Control-S, volte para a unidade. Mas agora, se clicarmos no jogo, não
devemos ver nada. E por que isso? Nós só vemos r quadrado e a cena, mas nada está imprimindo para o console. Isso é porque não anexamos nosso roteiro a nada. Então vamos em frente e anexá-lo ao nosso cubo mágico. Guarde isso. E agora, quando clicamos no jogo e entramos no console, devemos ter Olá a todos. Estou imprimindo para depurar. Excelente. Ok. Agora é hora do seu desafio. E você precisará adicionar algumas linhas. Então, a primeira coisa, você precisa adicionar duas mensagens que são exibidas no console batalhando também, o jogador para pressionar uma determinada tecla de seta. Em seguida, você precisará adicionar uma mensagem de aviso. E, finalmente, você precisará adicionar uma mensagem de log de erro. E hora. Eu vou ser um pouco útil com você aqui. Se entrarmos no Visual Studio, vou te dar uma mão. Então, se clicarmos em log de ponto de depuração, podemos ver que temos erro de log e aviso de log. Então vá em frente e resolva esse desafio. Bem-vinda de volta. Como você fez isso? Não é um desafio muito difícil, mas pode ser complicado se você está apenas começando. Então vamos criar nosso log de pontos de depuração. E vamos mudar isso aqui, vamos dizer ao jogador. Se você pressionar a seta para cima, você vai pular. E abaixo estamos certos. Se você pressionar a seta para a direita, você moverá O, k. e agora vamos precisar criar um aviso. Então vamos em frente e fazer aquele aviso do relógio de conversa. E simplesmente quando você abre os colchetes, você pode clicar em qualquer coisa. Se você pressionar o espaço, nada acontece. E, finalmente, nosso erro, que será o erro de log de pontos de depuração. E dentro dele, o que devemos escrever? Se você quebrar o teclado, nada acontece. Você só chora. Caso. Guarde essa tecla, teclado, teclado, tudo bem, nada acontece. Você só chora, poupa isso, volta para a Unidade. Tudo deve ser compilado e se clicarmos no jogo, olá, ok, ótimo. Então, se você pressionar a seta para cima, você vai pular. Se você pressionar a seta para a direita você está mover. E temos um aviso de que se você pressionar o espaço, nada acontecerá e um erro. Se você quebrar o teclado, nada acontece. Você só chora. Ótimo, espero que tenha gostado disso. E um último passo. Clique no jogo, salve tudo, vá para a fonte três porque temos alterações não confirmadas. Eu não acho que vou fazer isso em todos os vídeos, mas você deve saber que sempre que fazemos mudanças em nosso jogo, devemos sempre cometer DM estágio tudo. Clique em Commit aqui no canto esquerdo. E o que devemos chamar a isto? Vamos chamar isso de adicionar um script com o volume,
o ponto em massa Log Insight. Ok, ótimo. Comprometa isso. E nós o temos em nosso ramo principal. E vejo-te no próximo vídeo.
9. Variáveis 101: Bem-vindos de volta a outro vídeo. Hoje vamos aprender sobre variáveis. Então vamos aprender quais são as variáveis. Aprenderemos como declaramos essas variáveis. E vamos aprender como essas variáveis tornam nosso código mais flexível. Então, como você pode ver aqui, nós temos alguns tipos diferentes de mensagens porque nós
integramos essas variáveis em todo o backlog. E aqui em nosso código vemos que temos três novas variáveis. Um é inteiro e o segundo é uma string. E nós também temos um lope. E adicionamos essas variáveis em nosso log de pontos de depuração. Então não vamos perder tempo e vamos começar. Então variáveis, o que são variáveis? Bem, podemos pensar em variáveis como caixas. Você tem uma caixa que chamamos de vidas, e queremos colocar alguma informação ou algo dentro dessa caixa para segurá-la. Então colocamos um três dentro dele. E o que é que três enquanto é um número inteiro. Como escrevemos isso em código? Bem, temos uma maneira de escrever. É um N2, o que significa que um inteiro vive igual a três. Mas o que isso significa? Bem, em primeiro lugar, temos o tipo da variável. Temos o tipo aqui é inteiro. Temos o nome da nossa variável, que é Vidas. E por, embora seja uma tradição comum de codificação, se você quiser, de nomear a variável onde a primeira letra nunca será b maiúscula, e todas as outras palavras dentro do nome da variável serão maiúsculas. E, finalmente, temos os dados e os dados devem refletir o tipo que damos a eles. Então, que outros tipos temos? Temos variáveis flutuantes, por exemplo, se quisermos falar sobre velocidade e velocidade pode ser 4.8. E a maneira como escrevemos à medida que escrevemos a velocidade de flutuação e 4,8 F, sempre que queremos fazer uma variável flutuante, adicionamos ao fim dela. E depois temos Booleano. E como você pode ver aqui, nós o nomeamos é que nós somos a primeira palavra de não é maiúscula, enquanto a segunda é maiúscula. E o bool ou um booleano pode ser verdadeiro ou falso. E nós também temos uma variável String. E string valiosa significa que tem, é uma cadeia de caracteres. Ou, por exemplo, aqui temos a caixa chamada meu nome, como você pode ver também, a segunda palavra é maiúscula. Escrevemos o nome da corda igual a Michelle, que sou eu. E colocamos dentro de uma caixa, e agora temos uma variável de espalhamento. Ok, ótimo. Então, como é que vamos traduzir isso para o nosso código pessoal? Nós vamos fazer isso, bem, o que realmente acontece é que objetos de valor tornam nosso código mais flexível. Eles nos ajudam. Manipule o código de uma maneira melhor. Vamos demonstrar isso. Vamos voltar. Vamos voltar e para o nosso Visual Studio, e vamos em frente e criar um valioso. Então, primeiro, se criarmos uma variável dentro do início aqui, só
podemos usá-la dentro do início, mas se escrevermos fora do nosso método start, podemos usá-la em qualquer lugar que desejarmos em nosso código. Então vamos fazer isso primeiro. Então, qual variável devemos usar? Bem, vamos criar uma variável inteira. Então, digamos que temos um inteiro, nomeará esse número inteiro de vezes, e atribuiremos um valor de, digamos, cinco. Certo, guarde isso. E como você pode ver, é preto e branco ou é um pouco transparente. Isso significa que ainda não usamos e agora vamos usá-lo. Então, se formos em frente e depurar log de pontos, ele diz que se você pressionar a seta para a direita, você vai se mover. Então vamos em frente e adicionar algo a ele. Para adicionar uma variável, simplesmente
fazemos o seguinte. Clique no espaço, feche o colchete ou a pequena coluna aqui. E então escrevemos mais, escrevemos número e Visual Studio. Como sempre, este é o nosso melhor e nos ajuda a simplesmente clicar na guia em acabamentos, e nós salvamos isso. E agora temos uma variável dentro de nossa depuração. Vamos ver o que acontece e os visuais. Quero dizer, em Unity. Vamos ir em frente e limpar tudo isso e clicar no jogo. E como você pode ver aqui em nossa mensagem, se você pressionar a seta para a direita cinco, você vai se mover. Deveríamos ter adicionado cinco vezes, mas você entendeu. Então agora vamos adicionar uma variável de string. Então vamos em frente e clique aqui. String irá nomear este nome do KI. E nossa string será, digamos espaço, espaço, espaço. E agora queremos adicioná-lo ao aviso, por exemplo. Então, em vez de escrever espaço aqui, vai simplesmente abrir isso e fechá-lo do outro lado, certo? Mais e nome da chave. E depois outra vantagem. E agora temos uma variável de string dentro do nosso aviso de log. Se guardarmos isso, voltamos para a Unidade. E quando clicamos no jogo, devemos ver aqui que é espaço. Bem, isso não foi muito útil porque não sabemos se funciona. Então vamos mudar isso do espaço dois. E vamos fazer isso também ou capitalizado, salvar isso, voltar para a Unidade. Clique no jogo e isso deve mudar para entrar. E ele fez. Então você pode começar a ver como flexível usando variável torna nosso código. Então, em vez de ir e procurar por cada nome único, podemos simplesmente adicionar uma variável e alterá-la a partir do topo e todos os usos subsequentes dela e nosso código mudará. Então, e agora? Bem, eu acho que você sabe, porque é hora de seu desafio e seu desafio é criar sua própria variável. Então você precisa criar uma variável do tipo string e usá-lo dentro do, dentro do debug.org, que já fizemos. Então vá em frente e faça sua própria variável. Nós estamos indo para criar uma variável do tipo inteiro e usá-lo em um dos avisos. E, finalmente, vamos criar um flutuador e usá-lo dentro dos logs de erro. Então pausar o vídeo agora mesmo e ir, tentar e fazer o seu melhor. Não te preocupes em estragar as coisas. É por isso que temos controle de versão. Te vejo em um segundo. Ow, kay, bem-vindo de volta. Então, como você conseguiu foi que não deveria ser muito difícil. Então vamos em frente. Criamos nossa string, criamos nosso inteiro. Agora é hora de nossas variáveis flutuantes. Então vamos em frente e criar um carro alegórico. O que devemos chamar a isto? Vamos chamar isso a uma velocidade, vamos simplesmente chamar isso de velocidade. Velocidade de quebra. E nós vamos fazer este valor 4 ou o peso vai fazer este 6.94. Oh, ok, ótimo. E cometi um erro aqui. Deve ser 6,94. Ok, então vamos em frente e adicioná-lo aqui e nosso erro de registro de pontos de depuração. Então, se você quebrar o teclado, isso vai olhar aqui a uma velocidade de, vamos simplesmente adicionar isso. E o que devemos escrever aqui? Velocidade de quebra. Clique em outra vantagem. E agora, se voltarmos ao Unity, coletar no Play, ele deve nos dizer que se você quebrar o teclado a uma velocidade de 6,94, nada acontece. Você só chora. Espero que tenha gostado do vídeo. Eu sei que as variáveis e as mensagens no log de depuração não fazem muito sentido agora, mas você verá isso mais tarde. Será muito importante. Vemo-nos no próximo vídeo.
10. Como responder à entrada do jogador: Bem-vindos de volta, meus colegas desenvolvedores de jogos. Neste vídeo, vamos estar respondendo à entrada do nosso jogador. E isso vai acontecer. Como bem clicar no jogo agora não vemos mensagens de
inimigos até que pressionemos a seta para cima. Ele dá, dá-nos uma mensagem que nos diz para cima tecla de seta foi pressionada. E se pressionarmos a seta para a esquerda nos diz riso, ok, foi pressionado, seta para a
direita e a seta para baixo, e nós fizemos isso usando, usando alguma regra de código mágico. Muito assustador, mas não se preocupe com isso. Vou levar-te passo a passo. E, de fato, neste vídeo, você vai fazer isso, não eu. Então vamos começar. Oh, ok, então como o título deste vídeo sugere, nós vamos ter a opinião do nosso jogador. E para isso usaremos, por exemplo, a seta para cima, a seta para a direita ou a seta para a esquerda. E baseado nisso, vamos imprimir algo no nosso console. Mas neste vídeo, vamos fazer algo diferente. Porque o meu objetivo neste curso não é apenas mostrar-lhe como criar um jogo. Quero que venha um especialista em resolver problemas. Então, neste vídeo, eu vou dizer a vocês o problema que temos. E eu vou levá-lo passo a passo sobre como eu costumo resolver meus problemas. Então a primeira coisa que vamos fazer é pensar sobre o problema. Então o principal problema é que precisamos obter a entrada do
nosso jogador de uma certa tecla que ele pressionou. Ele ou ela, claro, pressiona. Então as palavras-chave para procurar nossa entrada e chave. E sempre que enfrentamos algo que não sabemos, unidade tem um ótimo site de documentação. Então podemos realmente pesquisar no Google. Então vamos ao Google e simplesmente escrevemos entrada. Unity terá todos esses resultados de busca. Mas o que estamos procurando é a documentação que está programando a unidade de entrada da API. Clique nisso. Leva-nos a esta documentação. Então vemos que temos entrada, temos a escritura. Você sempre pode ler toda a documentação,
mas, claro, conduzi-lo, lê-lo mais tarde. Você não precisa ser específico em cada detalhe, apenas um olhar para ver o que ele tem. Então, enquanto rolamos para baixo e sabemos que precisamos de uma tecla que nos diga qual tecla o jogador pressionou. Podemos ver que temos vários métodos estáticos aqui. E um deles é chamado get C0, que retorna um verdadeiro enquanto o usuário mantém pressionada a chave identificada. Agora, como dissemos, nosso problema é, não consiste em um jogador segurando dolorido. Nós só queremos devolver algo ou obter uma resposta da peça, de nós, do jogo. Sempre que um jogador clica ou pressiona um botão não é pressionado. Então, se lermos abaixo, podemos ver isso. Retornar true durante o quadro para o usuário começa pressionando a tecla identificada pelo nome. Isto parece algo que poderíamos usar. Então, nós clicamos em get keydown e ele nos leva ainda para i outra documentação Unity. E aqui é onde começamos a ler nossa descrição, que diz que ele retorna um verdadeiro durante o quadro, o usuário começa a pressionar o para baixo identificado pelo nome, cursor. Isto é o que você precisa. E mesmo que você esteja se você não sabe como realmente codificá-lo, se você rolar um pouco para baixo, você pode ver que temos vários exemplos disso. E aqui temos este exemplo incrível que nos diz que eles estão realmente colocando isso obter Qi Dao dentro da Atualização e usando algo estranho, que é um se com alguns parênteses e eu não sei o que é isso. É tão estranho, é tão difícil. Não vamos incomodar nossas cabeças com, vamos simplesmente copiar isso. Então vamos copiar isto. E é claro que vamos explicar se as condições mais tarde. E voltamos ao nosso Visual Studio. E como eles nos disseram no exemplo, vamos colá-lo dentro da atualização. Oh, ok, ótimo. Então, um pequeno x, eu faço uma pequena explicação do que estamos realmente fazendo aqui. Então, se a condição funciona, como diz, se alguma coisa dentro deste lugar aqui, dentro desses dois colchetes for verdadeira, vamos executar qualquer código dentro desses dois colchetes. Não se preocupe se as condições, se você for novo para elas, as
explicarão mais detalhadamente em vídeos posteriores. Mas por enquanto, cole isso dentro da atualização, salve-o, e vamos voltar ao Unity. Clique no jogo. Agora pressionamos a barra de espaço. A tecla de espaço foi pressionada, pressionada, pressionada e pressionada. Oh, ok, taxa de garotas. Mas como dissemos, não estamos à procura do espaço. Na verdade, estamos procurando a seta chave. Então, como vamos fazer isso? Bem, esperamos que o nosso bom amigo Visual Studio ajude e isso ajudará. Então, se clicar duas vezes aqui no espaço e excluí-lo, e excluir o pequeno ponto. E se clicarmos novamente, como vemos, isso nos dá
muitas, muitas opções. Então, o que estamos procurando? Estamos à procura da seta para cima. Então vamos escrever Arrow. E voilá. Ele nos dá todas as opções que podemos usar. E um deles é a seta para cima. Então, basta clicar na guia e agora ele deve funcionar quando pressionamos a seta para cima. Então vamos remover isso e, na verdade, em vez de espaço, escrevemos seta. Oh, não, não. Desculpe-me. Então guarde isso. Vamos voltar para a Unidade. Oh, volte para Unity, limpe tudo isso e clique no jogo. Aguarde a compilação. E agora, se pressionarmos a seta para cima, devemos levantar-nos. A tecla de seta foi pressionada. Oh, ok, ótimo. Mais uma coisa que quero fazer. Vamos comentar tudo isso. E a maneira como fazemos isso é com duas barras invertidas assim como temos comentários aqui. Só para não atrapalharem. E agora é hora do seu desafio. E seu desafio é terminar o resto. O que quero dizer com terminou o resto? Bem, agora você tem que terminar. Se o jogador empurrar a seta para baixo. Se o jogador empurrar a seta para a esquerda. E um pequeno desafio extra para aqueles de vocês que estão muito motivados se o jogador empurrar a barra de espaço, mesmo que já tenhamos feito isso, eu quero ver como você faz isso. Então pausar o vídeo agora e continuar com o desafio de gaye. Bem-vindo de volta. Como você se saiu com isso? Então vamos simplesmente ir em frente e copiar isso. Não há vergonha em copiar e colar código, mesmo que seja melhor encontrar uma maneira melhor de fazer isso. Então, o que vamos usar? E aqui estaremos usando a seta da cabeça para baixo. E nós vamos copiar isso também e economizar o máximo de tempo possível para cima, seta para baixo. E aqui vamos usar a seta para a esquerda. Também copie isso. E só para ser ainda extra, o nerd vai fazer um para a seta direita. Seta direita. Copie isso. E aqui estamos simplesmente seta para a direita. Vamos fazer com que esta letra maiúscula guarde isso. E agora, se voltarmos para Unity e clicarmos no jogo, tudo isso deve ficar claro. E agora, se pressionarmos a seta para cima, levantamos a tecla de seta foi pressionada. Seta esquerda, tecla de seta esquerda foi pressionada para a direita e para baixo. Tudo está funcionando bem. E antes de irmos, não te esqueças de fazer as nossas mudanças. Não se preocupe se eu tiver algumas mudanças extras aqui. São apenas experimentos. Então encenar tudo. Clique em Commit e vamos escrever aqui, adicionou um par de entradas de camada. Ok, então comente que tudo está funcionando bem. É uma hora de mestres, e te vejo no próximo vídeo.
11. Adição de corpos rígidos e pinças: Bem-vindos de volta, meus amigos, a um outro vídeo. E esta usará corpos rígidos e usaremos colisadores de caixas. O que, como vamos usá-los? Vamos usá-los adicionando componentes. E por que vamos usá-los? Bem, porque agora nossos cubos não são apenas imagens, eles realmente caem. E não só caem, mas são pegos usando plataformas que criamos. Então, não vamos perder mais tempo, e vamos começar. Então agora, se clicarmos no jogo, nosso Cubo não fará nada interessante. E o que queríamos era pelo menos fazê-lo. Então, como fazemos este cubo cair? E, portanto, como adicionamos gravidade a ele e tornamos um objeto físico real? Fazemos isso usando um corpo rígido. E o que é um corpo rígido? O controle rígido do corpo nos permite
controlar a posição de um objeto através de simulação física. Não, é um punhado. São palavras grandes. Mas se você for a uma unidade há documentações que eu deixei para você e os recursos que você pode realmente ler tudo sobre corpos rígidos. E objeto corpo rígido será puxado para baixo pela gravidade sem adicionar qualquer código, que é incrível e exatamente o que precisamos. Então, se voltarmos para a Unidade, podemos entrar no nosso cubo mágico. E se olharmos aqui à direita para o nosso inspetor, podemos ver que temos uma transformação, temos um renderizador de sprite, e temos o cubo. Então transformar nos diz a posição que r cubo está em. O renderizador de sprite realmente renderiza nosso cubo. Então, se desligarmos, colocar, ele vai embora, ligá-lo novamente, ele volta, e o cubo é o nosso script. Então vamos fazer todos estes menores. E temos aqui este botão que nos permite adicionar componentes. Então, se você clicar em adicionar componentes, podemos realmente procurar por corpo rígido. E temos dois corpos rígidos. Um é o corpo rígido, que é usado para o mundo 3D. E o corpo rígido que vamos precisar, que é Rigid Body 2D. Clique no corpo rígido para d. E agora podemos ver que
temos um monte de opções e informações e restrições e tipo de corpo e massa. Não se preocupe com tudo isso. Não vamos usar todos eles. Mas se você estiver interessado e quiser aprofundar o objeto de corpos rígidos, você pode ler tudo sobre eles na documentação do Unity. Uma coisa que vou olhar é o tipo de corpo moribundo, que temos dinâmico, cinemático e estático. Agora, mais tarde vamos nos aprofundar ainda mais nestes três. Mas, por enquanto, o que você precisa entender é que a dinâmica é quando nosso corpo é submetido inteiramente ao mundo da física ao seu redor. Cinemático como quando nosso corpo não é afetado pela gravidade, mas pode ser afetado por outras forças e estática como um objeto que não se move em tudo, aconteça o que acontecer com ele. Então precisamos que o cubo r seja quatro agora, dinâmico. Então nós adicionamos um corpo encalhado. Vamos guardar isso. E vamos clicar no jogo e ver o que acontece. Se clicarmos no jogo, qual é o seu cinto D ou o nosso cubo mágico vai para baixo e as folhas são vistas e nós não temos idéia de onde ele foi. Vai para Arno, o que é chamado lá embaixo, talvez ajuda ou qualquer coisa. Mas desaparece. Então, como vamos aguentar? Porque, por enquanto, não é essa magia. Faremos isso usando colisadores. E o que nossos colisões, O que é um colisor? Um colisor torna possível que objetos interajam e, portanto, colidam uns com os outros. Então, sempre que o nosso Collider
ou, ou sempre que o nosso corpo tem um colide e ele toca um outro corpo que tem um colisor. Eles vão colidir e parar uns aos outros. Vamos usá-lo para capturar objetos que estão caindo,
estão caindo por causa da gravidade. Então vamos usar este colisor para pegar o objeto que temos. Então vamos voltar para Unity e fechar este corpo rígido e adicionar outro componente. E podemos procurar pelo colisor. E como podem ver, temos imediatamente toneladas de opções. Temos colisadores de caixa, temos colisores de caixa para a
cápsula, cápsula para o
círculo, círculo para o Então, porque estamos usando R cubo ou quadrado, estará usando um Box Collider 2D, que é ultra simples. E como você pode ver, nós também temos toneladas e toneladas de opções. Você pode ler tudo sobre eles. Eu, é claro, levantado e os recursos. Mas uma coisa em que precisamos nos concentrar é que isso é gatilho, e isso será útil mais tarde no curso. Mas, por enquanto, vamos ampliar e ver o que temos. Podemos ver o nosso colisor de caixas. É verde. É uma linha verde ao redor da nossa caixa, mas não podemos vê-la agora. A maneira de ver isso é se clicarmos aqui no colisor de edição. E nós podemos realmente fazer este colisor maior, torná-lo desta forma, e desta forma, e realmente fazê-lo lá fora. Então este é o colisor é, aqui é na verdade onde nosso objeto estará colidindo com objetos. Então vamos redefinir tudo isso. E vamos ver o que acontece se clicarmos no jogo. Tão excitante. E então, nada acontece. Por que é isso? É porque você tem um desafio e seu desafio é pegar a queda de um cubo. Não te preocupes, não te vou deixar sozinha. Porque antes de tudo, você precisa criar outro cubo e dimensioná-lo para o tamanho da plataforma. O que eu quero dizer com isso? Bem, você precisa fazer a nossa plataforma deste lado aqui todo o caminho até o outro lado, a fim de pegar nossa fila. Então isso é contínuo com o,
Assim, criar um outro cubo e torná-lo uma plataforma e um corpo rígido. E não se esqueça de mudar o corpo rígido tipo dois, estático. E finalmente adicionar um colisor à nossa plataforma e pegar nosso cubo. Então, pausar o vídeo agora mesmo, dar-lhe toda a sua atenção, dar-lhe a sua concentração total. E não se preocupe em cometer erros, porque os erros são a melhor parte da aprendizagem. Você. Ou você faz algo bem. Ou você faz errado e aprende com isso. Então tome o seu tempo e faça o desafio. Ok, bem-vindo de volta. Como você se saiu com isso? Espero que você não tenha ficado apenas olhando para a tela por uns cinco segundos até o vídeo continuar. Certo, então agora pegamos nosso cubo mágico e o que faremos é duplicá-lo. E podemos duplicá-lo de duas maneiras. Podemos clicar com o botão direito aqui e fazer duplicação de CO2, o que criará um outro cubo de jogo. Ou podemos simplesmente clicar no Controle D. e agora temos outro cubo. Se levarmos aqui para baixo, vamos fazer este cubo um pouco maior. E a maneira como vamos fazer isso é dimensionando-o. Então aqui temos a escala na direção x e temos escala na direção y e no zed. Mas porque é terça-feira em uma escala de qualquer maneira. Então vamos trazer o Y 21 de volta. E vamos aumentar a escala x até que ela se encaixe entre os dois lados do nosso jogo. Agora temos uma plataforma, e vamos diferenciar um pouco entre elas. Então vamos tornar esta plataforma um pouco mais escura. Podemos alterar a cor em nosso renderizador de sprite. Aqui temos a cor. E se clicarmos nele, podemos torná-lo um pouco cinza ou preto ish. Então vamos torná-lo preto e vamos fazer a praça aqui. Vamos torná-lo o, mantê-lo branco ou torná-lo um pouco cinza. Vamos ver, talvez vamos apenas mantê-lo branco e vamos mudar o fundo. Ooh, muito divertido. Então, podemos ir para a câmera e realmente mudar a cor de fundo, que fará cinza o caso parece grande o suficiente. E vamos baixar esse cubo mágico na verdade, vamos mudar seu nome para a plataforma. Oops, certo? Plataforma. E agora temos nossa plataforma que está abaixando isso. E estas são as bordas da nossa câmera. Se guardarmos isso, esqueci-me de uma coisa e ainda bem que me lembrei. Nós clicamos na plataforma e não se esqueça de fazer esta estática ou então ele vai simplesmente cair, cair em qualquer coisa para baixo é. Clique no jogo. E espero que sim, aguente. Incrível. Esperava que gostasse do vídeo. Espero que tenhas feito tudo e cometido tudo o que fizemos. Tão comprometida. Adicione. Bem, na verdade fiz o meu cubo mágico cair e segurou-o com uma plataforma usando corpo rígido e colisões. Essa taxa de garotas. Então encenar todos os comentários, e eu vou vê-lo no próximo vídeo.
12. Adição de magia ao nosso cubo: Bem-vindos de volta a um novo vídeo. E como anunciado neste vídeo, quando clicamos em jogar, nosso q se torna mágico. Como é que isso? Bem, se pressionarmos, ele salta. Se pressionarmos para a esquerda, ele vai para a esquerda. Se pressionarmos direita vai para a direita. E se formos para cima, para cima, para cima, podemos realmente pressionar para baixo, para baixo, para baixo, para baixo, para baixo, e fazê-lo voltar mais rápido para a Terra. Então vamos começar. Ok, então a primeira coisa que vamos fazer é precisamos de uma referência ao nosso corpo rígido. O que quero dizer com uma referência ao nosso corpo rígido e por que precisamos dele? Então, referência a um corpo rígido significa que vamos escrever
aqui em público e não se preocupe com público explicará isso mais tarde. Mas, por enquanto, público significa que qualquer um pode usá-lo. Tão público, corpo rígido, é uma variável de tipo, corpo rígido. E chamaremos isso de meu Corpo Rígido 2D. Certo, guarde isso. Agora, como vamos nos dizer que é o corpo rígido no objeto atual? Bem, se voltarmos para a Unidade, limpe essas mensagens, avisos irritantes. E se clicarmos em q aqui mesmo no inspetor, podemos ver que agora temos um slot vazio para um corpo rígido. Então, se clicarmos no pequeno círculo à direita, podemos ver que temos o taco mágico ou o corpo rígido da plataforma. Então vamos em frente e clique no corpo rígido em nossa fila. Clique duas vezes sobre isso e diga isso. Uma coisa que eu notei é que se clicarmos na nossa plataforma, oh, na verdade, nós fizemos bife para eles. Não devemos adicionar o corpo rígido. Na verdade, devemos remover o cubo. Então, vamos remover o componente cubo da plataforma porque não precisamos mover isso. Algo que deveríamos ter feito no vídeo anterior. Mas isso não é problema. Volte ao cubo e agora adicionamos um corpo rígido que é mágico QP. Excelente. Então guarde isso. Agora temos uma referência ao nosso cubo. A próxima coisa que vamos fazer é adicionar velocidade ao nosso corpo rígido. Então, se você passou pela documentação
do corpo rígido em unidade, na documentação da Unidade, eu acho que você notou ou talvez não, mas há um componente ou como chamamos propriedade e meu corpo rígido que podemos usar para manipular a velocidade. Então agora nossas teclas de seta não imprimem mais coisas no console. Nossas setas agora manipulam a velocidade de nosso corpo rígido. Então vamos fazer isso. Então, a fim de acessar a velocidade, vamos escrever meu corpo rígido 2D, que agora temos uma referência para velocidade de ponto. Velocidade. Agora, se olharmos sobre a velocidade, vemos e realmente Visual Studio nos diz que é um vetor para o que é um vetor também? Bem, um vetor é um vetor no espaço. Então isso significa que tem a coordenada x e a coordenada y. Agora você deve estar bem familiarizado com as coordenadas X e Y da escola. Não é uma matemática muito difícil, mas deveria ser. Agora, eu vou, claro, deixar alguns recursos no vídeo anexado a este vídeo onde você pode verificar tudo sobre ferramentas vetoriais. Não se preocupe com isso. É muito simples criar um vetor dois, só
precisamos escrever um novo vetor dois e abrir os colchetes. Nada muito extravagante. E dentro desses colchetes podemos realmente
passar por vários parâmetros que este vetor dois pode tomar. E é preciso um flutuador x, flutuar y. Então, como queremos movê-lo? No nosso caso, estamos pressionando a seta para cima. Isso significa que queremos que a caixa se mova para cima e não se mova para qualquer site para site. Então, como fazemos isso? Nós simplesmente escrevemos 0 f na direção x e dez F na direção y. Então pode adicionar significa que é um fluxo porque nossos parâmetros nos disseram que o corpo rígido leva carros alegóricos. Então vamos em frente e continuar a seta para baixo. Agora, mesmo que Down Arrow, eu não acho que nós vamos precisar dele, mas por práticas, prática, razões de prática, nós vamos adicionar isso e sendo isso é baixo, em vez de dez, f vai fazer este menos dez. Então guarde isso. Vamos para a Unidade e ver se algo realmente funcionou. Então clique no jogo. cubo R cai no chão e se pressionarmos a seta para cima, ele realmente salta e depois cai. Então para cima, para cima e depois para baixo, para baixo ele cai mais rápido. Excelente trabalho. E agora você sabe que horas são. É hora do seu desafio. Completa a magia. Então você tem que terminar de adicionar velocidade usando a seta para a esquerda, e então você precisa terminar de adicionar velocidade usando a seta para a direita. Então pausar o vídeo agora mesmo. Vá em frente e faça isso. Desafio. Bem-vinda de volta. Como você se saiu com isso? Espero que tudo tenha corrido bem. É muito fácil simplesmente copiar isso. E agora, quando
adicionamos à esquerda, teremos 0 na direção y e adicionaremos menos, digamos dez. Vamos ficar com eles. E no caso da seta para a direita, irá adicionar dez AF na direção de direções x e 0 na direção y. Voltar para a Unidade pode faltar em jogo. E agora uma imprensa livre na seta para a esquerda. Devemos mover a seta para a esquerda ou para a direita, para
cima, para cima, para cima, para baixo, para baixo. Tudo funciona perfeitamente bem. Passo final, como sempre, não
acho que vou continuar fazendo isso, mas por agora só para ter o hábito de fazer isso. Então, ativos, como devemos chamar isso? Bem, fiz meu cubo mover para a esquerda, para cima, para baixo, e para a direita com base nas setas, colocar um ponto de exclamação. Então comente que eu vou vê-lo no próximo vídeo.
13. Usando Se, Else Se, Sese Se,: Bem-vindos de volta a outro vídeo. Como o título sugere, vamos aprender sobre se as condições e vamos aprender como podemos manipulá-las. Então, se clicarmos em jogo aqui para a caixa se move para a esquerda, nosso console imprime que são cubos fora dos limites para a esquerda. E se nos movermos para a direita, diz-nos que os nossos cubos estão fora dos limites para o lado direito. E a melhor parte é que se saltarmos, diz-nos que os nossos cubos para fora do meu estão ligados ao lado superior. Então, como vamos fazer isso usando declarações se? Então coloque seus limites de concentração e vamos começar. Então, antes de começarmos, vamos falar sobre se as condições são, por que as usamos e sua estrutura. Então condicionais, se declarações, eles são, como o nome sugere, eles são chamados que executamos apenas sob certas condições. Então esta é a estrutura de uma condição if. Nós já usamos isso antes e nossas setas em entradas de jogadores. Então, se alguma condição que precisa ser verdadeira for verdadeira, executamos qualquer código que esteja dentro desses colchetes. Então, se colocarmos um booleano, como já dissemos, um booleano pode ser falso ou pode ser verdade. Então, se esse booleano for verdadeiro, executamos o código que está dentro dos colchetes. Agora, se esta afirmação acontecer de não ser verdade, vamos simplesmente evitar ou nem sequer considerado o digno, se, nem mesmo considerar o código dentro da declaração if. Mas se adicionarmos outra, se e como o nome sugere, é se a condição superior não, não é verdade, verificamos se há uma segunda condição, que é alguma outra condição que é verdadeira. E se essa declaração ou condição for verdadeira, executamos o código dentro desses colchetes. E se ambas as declarações são falsas, então finalmente usamos algo chamado Else. E isso não tem que ser, nada tem que ser verdade para que o escopo seja executado apenas em toda parte. Se as condições acima devem ser falsas. E nós já usamos este outro caso condição antes. Nós o usamos em nosso código quando tentamos pegar a chave do jogador. Então, como é que isto funciona exactamente? Vamos ampliar um pouco. Então entrada, esta entrada, que é uma classe e unidade, usa a função ou método, get key down. Então, se você passar o mouse sobre a tecla adivinhada para baixo, você pode ver que é um booleano e ele retorna um verdadeiro durante o quadro, o usuário começa a pressionar para baixo. Então, sempre que o nosso jogador pressiona a seta para cima , como já usamos, como dissemos, disse aqui. E nós fizemos isso usando código de chave, que é uma outra função em Unity, ponto para cima seta. Se ele pressionar isto, a seta para cima. Ele diz à tecla get que esta, durante este quadro, a tecla de seta para cima foi pressionada e retorna true. Isso faz com que a nossa deixa, que faz este código bem aqui Executar e move o nosso cubo. E o mesmo é verdadeiro sempre que usamos as outras declarações if. Então agora o que vamos fazer é criar a nossa própria condição “se”. E vamos fazer isso no nosso caso para o jogo. Então, por enquanto, se clicarmos no jogo e removermos nosso cubo de lado a lado, sempre que ele sai dos limites, ele cai da nossa plataforma. E o que queremos fazer, em primeiro lugar, vamos tornar a nossa plataforma um pouco maior. Assim, aumentará sua escala. Torná-lo um pouco maior para dar ao nosso cubo um lugar em vez de cair no que quer que seja. E agora vamos verificar as coordenadas deste cubo. Então esta moldura branca aqui é o que nosso jogo realmente vê. E se bloquearmos nossa visão de jogo ao lado da nossa visão de cena, oh, e como você pode ver, ela fica menor. Para corrigir isso, podemos simplesmente entrar em ganho e clicar sobre isso aqui e simplesmente torná-lo em 16 por nove. E isso deve sempre manter ou enquadrar nas mesmas dimensões. Então, agora, se entrarmos em nossa cena, vamos tornar isso um pouco mais amplo e clicar em nossa fila de jogos ou cubo mágico e movê-lo. Você pode ver no canto superior direito e no inspetor que a posição muda. E esse valor pode realmente ser acessado. Então, sempre que nossos cubos saírem do limite. Então vamos dizer que deve estar bem aqui, que é 9.42. Então, sempre que sair do limite, queremos imprimir algo para o nosso console. E o mesmo se aplica sempre que formos para o outro lado, que é o que deve ser 9.40, vamos nos contentar com 9.5. Está bem? Então, como é que vamos fazer isso? Bem, usando a estrutura de se condições que acabamos de aprender. Então vamos em frente e salvar isso e voltar para o nosso Visual Studio. E vamos fazer isso dentro do objeto. Então, o que vamos fazer? Queremos verificar se o cubo foi movido para fora do limite direito. Então, se devemos escrever aqui, primeira coisa que precisamos fazer é acessar a transformação do nosso cubo ou objetos de jogo. Assim, sua transformação, basta escrever posição ponto de transporte. E não estamos à procura de nenhuma posição. Estamos procurando especificamente a posição x, então é X.
Então, se a posição do ponto de transporte, ponto x é maior que 9,5 f, porque lembre-se que é um flutuador. Em seguida, dentro da instrução if, queremos executar algum código. E, por enquanto, vamos simplesmente imprimir para o nosso console. Então somos como depuração. Mas log, vamos fazer disso um aviso só por diversão. Então debug dot log aviso. Então devemos escrever algo dentro dela. Nosso cubo está fora dos limites. Para o lado direito, havia dois pontos de exclamação para torná-lo um pouco mais dramático. Então guarde isso. Volte para a Unidade. Aguarde que ele compile e entenda o que está acontecendo. E agora limpe tudo isso. Clique no jogo. E agora, se nos movermos para o lado direito, como podem ver, nosso cubo está fora dos limites para o lado direito. E quanto mais nos movemos, mas se nos movermos para a esquerda e nada acontecer, então pausar isso. E agora vamos fazer uma declaração “else if”. Então, se for. E depois o lado dele. Para a nossa outra declaração se, vamos verificar se o nosso cubo vai para o outro lado da nossa tela. Então é transformar. Novamente, acessamos a posição e precisamos apenas do X. E agora vamos verificar se é menor que menos 9,5 f. E neste caso, vamos também imprimir um aviso, que será nosso cubo está fora dos limites para o lado esquerdo com dois pontos de exclamação. Então vamos deixar isso um pouco mais limpo. Controle S para salvar tudo isso, volte para a Unidade. Aguarde a compilação, limpe tudo. Clique no jogo. E agora se formos para o lado esquerdo com cubo r, ele nos diz que nossos cubos fora dos limites para a esquerda. E do lado direito, diz-nos que o nosso cubo estava fora dos limites para a direita. Mas agora se saltarmos sem cubo, nada acontece porque é hora do seu desafio e seu desafio é terminar a última declaração se. Então terminar se declaração quando o nosso jogador sai do topo da nossa tela, e eu vou dar-lhe um par de dicas, vai precisar mover o cubo em torno de nossa cena e entender o limite superior. E também precisaremos usar a instrução if para imprimir em nosso console. Então pausar o vídeo agora mesmo. Leve o seu tempo com este desafio. Vejo-te daqui a pouco. Ok, bem-vindo de volta. Então vamos esclarecer isso e vamos ver nosso limite superior. Então, se movermos nossa fila e podemos ver aqui
à direita que temos a posição y mudando. E se pegarmos as coordenadas y e verificarmos por elas em cerca de 5,5 R RQ deixa a visão da câmera. Ok, ótimo. Então vamos voltar para o nosso Visual Studio e escrever outra outra declaração if e senão se a nossa posição de ponto de transformação. E agora, em vez do x, vamos usar nosso y. Então, se a nossa posição de ponto de transporte ponto y é maior que 5.5 f, vamos imprimir outro aviso aqui. E este aviso, nosso cubo está fora dos limites para o lado superior, também os pontos de exclamação, salvo isso, voltar para a Unidade. Vamos esperar que ele entenda o que fizemos. Clique no jogo. E agora, se
saltarmos , saltarmos e sairmos dos limites, diz-nos que o nosso cubo está fora dos limites para o lado superior. Certo, o último passo, vamos sair do jogo, voltar para a nossa árvore de origem, e agora podemos cometer tudo. Então fique Joel, clique em Commit e vamos chamar isso adicionando se declarações para o meu jogo. Clique em Confirmar. E vejo-te no próximo vídeo.
14. Métodos públicos e tipos de retorno: Bem-vindos de volta a outro vídeo. Neste vídeo, não estamos fazendo muita codificação, mas vamos reestruturar nosso código. Como vamos fazer isso? Bem, como você vê, nosso método de atualização é um pouco diferente porque
extraímos todas as coisas que estão relacionadas. Então, por exemplo, agora temos um método que está movendo nosso cubo e está bem aqui. E temos um outro método que está fora dos limites. E nossa impressora, não só isso, também
criamos um método público que é imprimir de fora, que também tem um parâmetro. Tão excitante. E ele retorna uma string e não é usado dentro do cubo. É usado na plataforma, um novo script que criamos. Estou tão entusiasmada com este vídeo. Espero que você também esteja. Então não vamos perder mais tempo. Vamos começar. Ok, então se olharmos agora para nossos métodos de início e atualização, podemos ver que eles estão meio desordenados e há coisas que não estão relacionadas entre si. Então, por exemplo, temos todas essas condições que se relacionam com o nosso movimento do cubo. E nós os temos ao lado das condições “se” que
criamos para entender os limites da nossa fila. Portanto, precisamos reestruturá-los de uma forma e fazer com que pareça mais atraente para os olhos. Então vamos fazer isso usando métodos. Então o que nossos métodos, bem, estrutura de
método são como este, assim como temos o método de início e o método de atualização. Também podemos criar nossa própria matemática. E eles meio que se parecem com objetos de valor, mas eles também são uma espécie de diferença. Então temos V2, em primeiro lugar, é o tipo de acesso, e esta é a acessibilidade. Então temos que acessar tipos. Pode ser privado ou público. E vamos usar ambos em nosso projeto. Então privado é quando um método é usado apenas dentro de sua classe. Assim, por exemplo, se você criar um método público dentro do cubo, somente cubo pode usar esse método. Mas se você criar um método público, outros scripts podem usar seu método. Também. Então temos o tipo de retorno, e por enquanto só usamos o vazio, que significa que não devolvemos nada. Podemos ter um tipo de retorno de inteiro, por exemplo, onde um determinado método retorna um inteiro, ele também pode retornar uma string e ele pode retornar outras coisas. Também temos um nome de método. Assim, os nomes dos métodos devem sempre refletir o que o método realmente faz. E como uma conveniência, assim como nós nomeamos nossas variáveis, a primeira palavra sempre não é maiúscula quando estamos nomeando métodos, nossa primeira palavra é sempre maiúscula e todas as palavras subsequentes também são maiúsculas. E finalmente temos parâmetros e temos um. Um parâmetro não tem nada dentro dele. Isso significa que não passamos nada. E quais são os parâmetros? Eles são como variáveis que passamos para o nosso método e podemos usá-los dentro do nosso método apenas. Então, como vamos usar essa estrutura de métodos? Bem, nós vamos usá-lo dentro do nosso código aqui. Então vamos começar por reestruturar algumas coisas. Então, como exemplo, vou mostrar o quanto mais eficiente nosso código se torna. Então, vamos remover todos esses comentários aqui. E como você pode ver que toda vez que precisaríamos comentar esses logs de depuração, precisamos ir e fazê-los um por um. Bem, podemos usar tudo isso se você destacá-los. E, claro, você está usando o Visual Studio e clique com o botão direito do mouse sobre eles. Você pode ver que temos algo acima chamado ação rápida e refatoração. Então, se você clicar sobre isso, diz-lhe se você quer extraído para uma função local ou extraído para um método. Então, se extrairmos para um método, e a propósito, a diferença entre uma função e um método, você pode realmente usá-los intercambiavelmente e como quiser. Mas as funções são geralmente métodos que estão dentro de um, outro método. Mas um método é um método que está fora do método que estamos fazendo atualmente. Então é um pouco confuso. Você pode usar ambos de forma intercambiável. Não se preocupe com isso. Então, qual é o nome deste método aqui? E nós vamos chamá-lo de impressão para a nossa impressão igual peso para o nosso console. E clique em e vire. E agora temos essa função ou método bem aqui. E como você pode ver, é um método privado que não retorna nada porque é nulo. E agora, se quisermos comentar isso, podemos simplesmente comentar esta função fora e tudo isso é comentado fora e em 1P impressão para o nosso console. Portanto, este é o primeiro benefício de usar métodos. Então vamos em frente e colocar isso em atualização. Então, se clicarmos em Control X para cortá-lo, e vamos colocá-lo abaixo atualização. Eu gosto de colocar atualização logo abaixo do método de início para ter uma estrutura agradável e coesa para o nosso código. A próxima coisa que vamos fazer é extrair para outros métodos. Então, primeiro de tudo, vamos destacar todas as condições se em nosso AP para nossa comida, para mover nosso cubo. Então, destaque todos eles, um clique com o botão direito do mouse, crie uma extração de um método. Vamos chamar esta massa a mover a nossa fila. E também extrairemos esse método. E vamos clicar com o botão direito do mouse ir para extrair método. E vamos chamar esse método, como devemos chamar isso? Fora? Impressora de limites. Ok, então agora nós sentimos muito pelo Voltar para ampliar isso. Então agora, como você pode ver, nosso método de atualização é muito coeso e, uh, podemos facilmente ver o que nosso método de atualização faz. Então ele está movendo nosso cubo e fora dos limites imprime os cheques para fora dos limites. Sempre que r cubo está fora dos limites, ele imprime algo para o nosso console. Então agora você pode ver que temos este método aqui e outro bem aqui. E finalmente temos a impressão no nosso console. Excelente. Agora vamos criar um segundo script e criar um método público apenas para demonstrar como tudo está funcionando. Então a primeira coisa que vamos fazer é criar um método público apenas sob atualização, e vamos chamar isso, bem, primeiro de tudo, vamos tornar um público nós vamos tornar isso um vazio porque nós não queremos que ele retorne nada por enquanto, vazio público. Mas vamos usá-lo. Vamos chamar isto de impressão lá de fora. Ok. Você não precisa fazer seus nomes de métodos tão longos, mas apenas para dar um exemplo. Então, o que esta função fará, ele irá simplesmente imprimir algo ou uma certa mensagem que terá Olá do outro lado. Não sei o que capitalizou. Não tem que ser. Então é Hello do outro lado. Vamos voltar para a Unidade. Clique na plataforma porque é o único outro objeto que temos além da câmera. Vamos adicionar um componente e vamos criar uma plataforma. Forma plat espalhada. Então nova plataforma Script, excelente. Vamos em frente e criá-lo. E é suficiente, mas deve ser adicionado. E agora se nós, agora nós temos isso em nosso projeto. Então, clique duas vezes sobre ele e ele deve abrir no Visual Studio. E como podem ver, já temos o método de atualização do vazio e a estrela do vazio. Agora dentro do início, vamos obter uma referência ao nosso script cubo e usar o método público que ele tem. E como vamos fazer isso? Bem, vamos fazer isso usando algo chamado “encontrar objeto do tipo”. Um objeto do tipo tem esses dois operadores bem aqui que precisamos dentro dele para dizer qual script vamos usar. Assim, ele encontra o objeto do tipo cubo e Visual Studio sempre útil. E agora se clicarmos no ponto, podemos ver que podemos usar qualquer coisa que esteja dentro do cubo. Então, se nós, por exemplo, queremos acessar o método Start, não podemos. Mas se queremos apresentar, como você pode ver, ele nos dá a impressão de fora método porque é público, tão livre. Guarde isso e volte a usar o Unity. E vamos também salvar nossa cena e clicar em jogar. E antes de fazermos isso, vamos esclarecer isto. E assim que clicarmos no jogo Olá do outro lado, quão legal é isso? Então nós criamos uma função ou um método que está dentro do cubo, mas estamos usando dentro sobre a plataforma. Isso é tão legal. E esta é a base. E é muito crucial porque vamos
usá-lo muito em nosso jogo nas próximas seções. Então seu desafio é criar seu próprio método. Você criará um método simples com um tipo de retorno de string. Então, em vez de void, você vai tê-lo como um tipo de string. Você também lhe dará um parâmetro inteiro, e você irá usá-lo com a string e retorná-lo. Então é um grande desafio, mas eu acho que você está pronto para isso. E uma pequena dica de usar para corda. E vai exigir um pouco de pesquisa para entender e fazer o desafio. Leve o seu tempo. Não tenha medo de cometer erros como eu disse, tentar e falhar não é o fim do mundo. Então, vejo-te num “O ”. Então agora vamos mudar o nosso método um pouco. Então, em vez de void vai fazer isso uma string, e ele atualmente não leva nenhum parâmetro. Então vamos dar-lhe um parâmetro que é um inteiro. E vamos simplesmente nomear esse valor inteiro para não ser complicado demais. Como podem ver aqui, temos uma linha vermelha. Isso significa que nossa função não está funcionando corretamente, corretamente. Por que é isso? Porque tem um tipo de retorno, que é uma string, mas na verdade não está retornando nada. Então, como consertamos isso? Bem, nós precisamos escrever aqui retorno, e nós precisamos retornar um certo valor. E o que esse valor é, bem, precisa ser uma string. Então vamos em frente e criar uma variável dentro de nossa impressão de fora. Então esta variável será uma string. Vamos chamar essa variável de impressão de algo. E o quê? Vamos imprimir, bem, o valor que éramos s_1 é. E agora podemos usar esse parâmetro que fomos enviados do outro lado. E agora, em troca, vamos voltar, imprimir algo e essa viagem resolver o nosso problema de linha vermelha. Mas porque nós demos a ele um parâmetro aqui onde nós chamá-lo de, também
deve dar-lhe um determinado parâmetro. Então temos que lhe dar um inteiro. E esse número inteiro, digamos, será um 4x4 ou qualquer coisa. Ou você pode até mesmo criar uma variável aqui. Vamos chamar-lhe um inteiro. Vamos chamar este valor para areia, e será igual a dizer nove. E aqui, vamos enviar o valor para enviar salvar que isso realmente retorna uma string. Então vamos colocá-lo dentro de uma referência de string, que vamos chamar string de L fora igual. E agora vamos simplesmente depurar ponto log e será imprimir esta string de fora. Tão perto disso, guarde isso, volte para a Unidade. Então, limpe tudo. Clique no jogo. E agora o valor que nos foi enviado é nove. Excelente trabalho. E uma coisa que eu quero deixar claro é que porque esta é uma string e este método retorna uma string, nós podemos realmente colocá-lo diretamente dentro de nosso bloqueio. Excelente trabalho para todos. Espero que o desafio não tenha sido muito difícil. Eu pensei que era um pouco mais alto e precisa de um pouco de pesquisa, mas eu espero que você tenha tentado o seu melhor. E como sempre, antes de irmos, precisamos encenar todos os comentários. Criei meu primeiro método público com um tipo de retorno, confirme isso e te vejo no próximo vídeo.
15. Prefabs e relacionamentos originais: Bem-vindo de volta a todos para um novo e muito emocionante vídeo. Neste, vamos aprender sobre prefabs. E não só isso,
vamos aprender sobre prefabs, como podemos usá-los de cena em cena. Aqui você pode ver que temos um diamante era algo chamado um colisor de polígono. Nós também temos este cubo mágico e um pequeno círculo, mas na verdade o círculo se move com o nosso cubo porque é um filho desse cubo. Nós também podemos, nós também criamos um segundo nível, nível um e nível dois. Aqui temos três cubos, como você pode ver, e por algum motivo eles são azuis, e veremos por que eles são azuis. Nós também temos em diamante bem aqui. E se clicarmos no jogo, todos eles caem, e é isso. Tão, tão excitante. Vejo-te daqui a pouco. Certo, então o que é uma pré-fabricada? Bem, basicamente é um modelo para um determinado objeto de jogo. Então, se criarmos um objeto de jogo com todos os seus componentes e seu script e sua posição, podemos criar um modelo a partir dele para criar outros objetos de jogo semelhantes. O sistema Ap permite que você armazene um objeto de jogo com todas as suas propriedades. Digamos que nossa periferia tem um colisor, tem um corpo rígido e tem um roteiro. Sempre que você criar um prefab a partir de set game object, você terá as mesmas propriedades. E então por que usamos isso? Bem, podemos reutilizar um objeto de jogo configurado de uma maneira particular. Podemos editar muitos objetos de uma só vez, e podemos usar o mesmo objeto e diferentes, cenas
diferentes, muito mais fácil. Então vamos em frente e demonstrar esses três usos. Então criar uma pré-fabricada é realmente muito, muito, muito simples. Você, tudo que você precisa fazer é simplesmente clicar na coisa que você deseja pré-fabricar. Por exemplo, queremos preferir o nosso cubo mágico. Clique nele e arraste-o para o nosso projeto. E agora temos uma pré-fabricada do nosso cubo. E você sabe, é uma pré-fabricação olhando para a hierarquia e você pode distingui-la por, porque é um pouco mais azul. Excelente. Então, agora, o que podemos fazer com a nossa pré-fabricada? Se clicarmos nele, você pode ver que ele tem as mesmas propriedades que o cubo em nossa cena. E agora se clicarmos no prefab e jaqueta e para a nossa cena, você pode ver que podemos criar três belos cubos mágicos extremamente facilmente. E isso é muito útil de muitas maneiras. Então vamos demonstrar como os prefabs funcionam. Então, digamos que clicamos neste cubo mágico, que vemos na hierarquia é o número um. Então digamos que queremos mudar sua cor. Então, se entrarmos em nosso renderizador de sprite e escolhermos a cor, e vamos torná-la vermelha. Agora temos um cubo mágico vermelho. Nós guardamos isso. E você vê isso. Outros dois cubos mágicos ainda são brancos. E, a propósito, esses cubos são chamados de instâncias instantâneas de preferência. E se você olhar de perto em nosso inspetor, você pode ver que temos uma outra guia aberta. Então temos o aberto que abre o nosso preferido, que tem o taco mágico. Podemos selecionar o prefab e podemos sobrescrever. E o que isso faz. Aplica-se quaisquer alterações que fizemos à nossa instância atual, ao nosso resumo. Então, as coisas que mudaram, você pode ver que eles também estão destacados em uma cor azul bem aqui. E mudamos a cor. Então, se clicarmos em sobrescrever e clicar em aplicar, tudo o que deve acontecer é que todas
as outras instâncias desse cubo mudaram para vermelho e aqui em baixo e nosso projeto, você pode ver que nosso cubo mágico é vermelho agora, isto é muito legal e você pode começar a ver o quão útil isso é. Então vamos dizer que mudamos de volta, mudar de volta a instância para branco. Vamos pegar outro cubo e mudar para verde. Então, agora, se aplicarmos isso à nossa pré-fabricada, o que acha que deve acontecer? Bem, todos eles ficam verdes ou só aquele que é o vermelho vai virar verde? Vamos tentar isso, aplicar e ops, como você pode ver que apenas o prefab ou que foi originalmente, ou a instância de prefab que ainda era o mesmo que o original é alterado para verde, mas os que nós também modificamos não mudam novamente. Então prefabs privet são um pouco complicados, mas eles são muito úteis. Então, por exemplo, vamos em frente e excluir esses três cubos. E vamos entrar em cenas e vamos simplesmente duplicar nossa atual vista. Por isso criamos uma segunda cena. Vamos mudar o nome para o nível dois. E nossa cena original será nível um. Então agora, sim, pede-lhe para pré-carga. Basta clicar em sim. Então agora no nível um temos esses três cubos e, em seguida, nível dois,
aparentemente, nós também temos esses três cubos. Então vamos em frente e excluí-los. Guarde isso. Então, no nível um, temos os cubos. No nível dois, não temos cubos. Então, o que vamos fazer sobre isso? Bem, em vez de ir para o nível 1 e duplicar ou copiar os cubos, podemos simplesmente ir para o nosso projeto e temos um cubo mágico. E podemos adicionar fácil como torta, direto em nossa cena. E agora temos um cubo, um cubo mágico, e nossa cena. Certo, ótimo, então isso é uma pré-fabricada. Agora, o que nossos filhos bem, vamos em frente e criar ir para ativos. E para criar um sprite. E o sprite será um círculo. Então agora temos este circuito mágico infantil. Certo, então o circuito mágico infantil, podemos ir em frente e adicionar este circuito infantil mágico à nossa cena. E a propósito, este cubo mágico é o pré-fabricado. Isto é apenas o sprite. By the way, também podemos organizar tudo isso. Ou se criarmos uma pasta chamada sprites, podemos colocar ambos em sprites. Nós também podemos ir em frente e criar outra pasta chamada esses scripts. E agora temos esses scripts dentro dos scripts de pasta. E se adicionarmos outro prefab, também
podemos criar uma pasta para os prefabs. Agora temos esse círculo mágico de crianças. Por que chamamos de círculo infantil? Bem, porque vamos criá-lo ao nosso cubo mágico. E fazemos isso simplesmente pegando nosso círculo infantil mágico e arrastando-o para baixo do nosso cubo de fósforo, e agora é uma criança. Agora, o que esta criança quer dizer? Se clicarmos no círculo, podemos movê-lo como sempre fazemos. Mas se clicarmos no taco mágico e o movermos, você pode ver que o círculo se move, quer isso signifique que é uma criança. E se escalarmos nosso cubo, r, círculo também escala. E se escalarmos na direção y, ele também escala se escrevemos. Então vamos ver se giramos. O círculo também gira e estas são propriedades de uma criança cresce com seu pai. E o pai é um cubo mágico. Então ele cresce com o pai, encolhe com o pai, ele se move e se comporta exatamente como seu pai faz. E isso é muito útil porque às vezes podemos precisar adicionar crianças. Então, se temos um objeto que tem vários objetos dentro dele e queremos que todos se movam em uníssono. Em vez de revestir todas as crianças, podemos simplesmente revestir as coisas para os pais e as crianças vão se mover com os pais. Então, vamos estar usando um monte de relacionamento pai filhos estará usando prefab Também muito. E agora é hora do seu desafio. E seu desafio é criar uma nova pré-fabricada. Então crie um novo objeto em nossa cena
, qualquer cena que você quiser. Prefab, faça uma instância dele em uma cena diferente e adicione um componente a essa instância. Aplique as alterações na pré-fabricada e veja o que acontece. E se você quiser como um desafio extra, você também pode criar um relacionamento filho-pai em algum lugar em nossas cenas. Pause o vídeo agora mesmo e vá fazer o desafiante. Ok, bem-vindo de volta. Como você se saiu com isso? Espero que não tenha sido muito quente. Então vamos pegar este cubo, colocá-lo aqui, ou cubo mágico, que é quadrado, ironicamente. E agora vamos em frente e criar algo. Então vamos para sprites. Vamos ver, vamos criar um diamante porque diamantes são para diamante. Clique em Enter e vamos em frente e colocá-lo em nossa cena. E vamos colocá-lo dentro de sprites. Agora temos um diamante colegas a tempo do dia, mas maior. E vamos mudar sua cor. Então vamos fazer um azul, porque os diamantes são meio azuis, eu acho. Então agora temos este diamante aqui. E quando queremos fazer é o que queremos. Então, qual foi o nosso desafio? Foi fazer uma instância em uma cena diferente e adicionar um componente à instância. Ok, então nós pegamos este diamante e vamos pré-fabricá-lo. E agora porque temos dois prefabs, vamos criar uma pasta, chamar isso de prefabs e tudo está organizado e se encontra. Então agora temos o diamante que é ir em frente e salvar isso. Volte para a cena do nível 1 e temos três cubos aqui, mas agora diamante. Mas podemos facilmente adicionar um da nossa hierarquia, super fácil. Então, vamos adicionar os componentes. Componente. Vamos adicionar um corpo rígido 2D. E vamos também adicionar um colisor. E que tipo de Collider devemos adicionar a ele? Vamos em frente e adicionar um círculo. Claro, por que não um circuito? Bem, na verdade deve ser um colisor de polígono. Vamos torná-lo um colisor de polígono e ele se encaixa perfeitamente. E, na verdade, só por diversão, vamos em frente e girá-lo na direção y. Não, não na direção y. Eu quis dizer na direção z. Ok, ótimo. Então guarde isso. Mas agora estamos cliques, como você pode ver, nós clicamos no diamante em nossa cena. Na verdade, adicionamos um corpo rígido e um colisor de polígono. Portanto, não é adicionado à nossa pré-fabricada. Se clicarmos novamente em nosso pré-fabricada e projetos aqui abaixo, podemos ver que ele não tem nenhum corpo rígido ou colisor. Então, de volta aos diamantes. Clique em substituir, Aplicar. E agora no segundo nível, guarde isso. E nosso nível dois, desculpe por isso. Cenas. Nível para o diamante na verdade tem corpo rígido e um colisor de polígono, o que é ótimo. Então clique no jogo apenas para vê-lo cair. O diamante cai e tudo cai. E como você pode ver, o, mesmo, mesmo o círculo cai com r cubo. Mas porque não tem um coloidal, nem tem um corpo rígido, mas se move sem cubo. Espero que tenha feito o desafio. Espero que você tenha gostado deste vídeo e eu acho que este será o último vídeo em nossa seção. Na próxima seção, vamos realmente começar a criar nosso ganho. Tão excitante. Então reveja isso, certifique-se de entender tudo nesta seção e não se esqueça de sempre comprometer nosso trabalho. Então vamos chamar isso de “ficar Joel”. Adicione um diamante pré-fabricado e um circuito infantil à minha magia. Cu O K TG taxas ou convencido de que ele salvou, nós tê-lo em nossos commits bem aqui. E vejo-te no próximo vídeo.
16. Seção 3: configurando nosso mundo - Design de jogos: Olá e bem-vindo de volta, meus desenvolvedores de jogos favoritos. Neste vídeo, vou falar um pouco sobre design de jogos. E como você pode ver, eu ouvi que começou e já os slides do Google estão muito animados para falar sobre o esboço de gangues. Então o esboço do jogo é o seguinte. Agora, não é muito impressionante, mas ele vai colocar o conceito de nosso jogo em torno. Então você já assistiu ao vídeo de introdução onde eu mostrei o jogo que já terminamos. Mas agora eu vou levá-lo através dos passos que levou para eu obter o jogo desenvolvido. Primeiro, criei este mini-esboço. E como você pode ver, bem, não
é muito impressionante, mas faz o trabalho feito. Então a primeira coisa em primeiro lugar temos as telhas bem aqui que irá definir o nosso mundo. E nós temos as telhas de fundo ou os combinadores de mundo bem aqui em ambos os lados. A próxima coisa que temos são as portas. Então vamos ter as portas de entrada através das quais o nosso conquistador aqui, este carinha entra e começa o nível. E esta é a porta bem aqui que ele tem que passar
para avançar para o próximo nível ou sala. A próxima coisa temos as bombas bem aqui que eu desenhei como queimando. E eles vão explodir assim que nos aproximarmos deles. Bem, não assim que começarem a arder quando chegarmos perto deles e eles explodirão. Eventualmente,
temos os corações que podemos captar para aumentar as vidas que temos. Temos, é claro, os lençóis pendurados bem aqui que podemos escalar para obter duas plataformas que são inacessíveis. Temos os diamantes, é claro, que pegamos para aumentar nossa pontuação. E nós temos os monstrinhos bem aqui que tentarão nos atacar a nós e ao Canvas, mas temos o poder do martelo fonte que vai esmagar qualquer inimigo e nosso caminho. E também temos este pequeno quadrado bem aqui. E se você notou na introdução, é
claro que você notou porque eu já disse umas dez vezes, porque eu estou tão orgulhoso disso. Esta é a câmera que seguirá nosso jogador onde quer que ele vá. Então, em vez de ter uma câmera enorme em torno de todo nivelado e ter que mover nosso pequeno, minúsculo jogador ao redor, nós fazemos a câmera seguir nosso jogador onde quer que ele vá. Isso é muito legal e eu encorajo você a criar seu próprio esboço jogos e ver como você quer fazer o seu próprio jogo. Então, a próxima coisa, vamos falar sobre os plataformas 2D porque nosso nome vai ser uma plataforma 2D. Tenho a certeza que estás familiarizado com alguns destes. Este é um jogo recente chamado Celeste, que muitos consideram como um
dos melhores jogos de eu acho que dois mil, dois mil e dezessete. Não tenho certeza, mas é um jogo bastante moderno. E como você pode ver, é exatamente como o nosso jogo onde tem trabalhos e tem um personagem pixelado que se move na plataforma 2D que eles criaram. Em seguida, teremos uma noite oca. Não tenho certeza se você já jogou este jogo, mas é realmente incrível. É semelhante ao molho escuro e dificuldade, mas é um jogo de plataformas 2D. E eu usei exemplos modernos apenas para mostrar o quanto plataformas
2D ainda são relevantes no desenvolvimento de jogos. E você pode ver bem aqui que ele também tem um mosaico mapas e plataformas e fundos, e pouco pixelado. Embora eles são, mas mais polido do que o nosso jogo, e não tão pixelado, mas o mesmo conceito se aplica. E finalmente temos Shovel Knight. Eu não tenho certeza se você jogou Chavan luz, mas é um jogo incrível. Já toquei, terminei. É muito legal. E como você pode ver, isso é muito semelhante ao nosso jogo. Ele tem as escadas, ele tem os inimigos, enquanto os inimigos são maiores, e é pixelado como o nosso jogo. E o último exemplo, encontrei isto no Google. Eu não tenho certeza de quem fez isso, mas como você pode ver, eles têm esboçado o jogo e o pixelizá-lo e ele mostra os azulejos que foram usados para criar o jogo. Vamos usar telhas semelhantes ou maneira semelhante de empilhar o nosso jogo e tornar o nosso jogo uma plataforma 2D, assim como este faria escadas plataformas e com um fundo. Conquista do castelo, design do jogo que vou falar aqui? Então esta é uma captura de tela do nosso jogo, e vamos falar sobre a mecânica do núcleo. Então teremos nosso conquistador correndo, pulando, escalando, e ele também estará atacando. O que mais devemos falar sobre a jogabilidade principal, mas ele vai estar recebendo desde o início do nível, desde a porta de partida até o fim sem ser atingido mais de três vezes. Como você pode ver, como você viu no vídeo de introdução, Eu mostrei que nosso jogador, ou o conquistador é o jogador e nosso jogo tem apenas três vidas. E isso não é falar do grande que ele pode realmente pegar. Toda vez que ele consegue, ele perde vivo e se você perder três vidas, você está acabado. Você precisa voltar para o menu principal. Então vamos falar sobre a história dos jogos também porque isso é, você pode pensar que, bem, você sabe, eu não acho que precisamos de uma história do jogo e você está completamente errado porque a história do jogo é, vai a história do jogo será o, Eu não vou dizer o núcleo, mas é o núcleo em torno do qual o núcleo é construído. Então, qual é a nossa história do jogo? Bem, és um rei e acabaste de herdar o castelo do teu pai. Monstros, porcos o levaram. E você precisa derrotá-los a todos. E você precisa vasculhar todos os quartos e tentar esmagar cada um deles. E também ao longo do caminho, você precisará coletar d1 vezes. Então isso tornará o veio muito mais interessante. E enquanto você está jogando através dele, você pode sentir que você tem a capacidade de
assumir o controle do que está acontecendo no jogo e você tem uma razão para matar os porquinhos, não apenas por causa de matá-los . Você vai ter uma razão e você está coletando diamantes por uma razão porque seu castelo está infestado com eles. Precisas de recuperar o teu orgulho. Certo, isso é um pouco dramático, mas você entendeu. Você sempre precisa de uma história para o seu jogo. Em seguida, vamos falar sobre todos os requisitos técnicos para criar este rei. Como podem ver, tínhamos muitas coisas. Então, a primeira coisa que precisamos é um conjunto de azulejos para o fundo e o primeiro plano com alguns elementos. Então eu escolhi um azulejo triste que eu vou te mostrar mais tarde onde eu tirei. E eu vou deixá-lo, é claro, até os recursos. Sinta-se livre para ir e obter seus próprios conjuntos de caminhos. Certifique-se de que você tem um primeiro plano e um bloco de fundo definido para o nosso jogo. Em seguida, vamos usar entradas do teclado para controlar nosso ganho. Vamos adicionar um CAM siga que irá seguir o jogador ou o conquistador onde quer que ele vá e zoom dentro e fora dependendo de seu movimento, como você viu no vídeo de introdução, quando estamos executando teóricos, um certo zoom in, quando estamos parados ou ociosos, há um certo zoom out e assim por diante e assim por diante. E também criará uma maneira automática de adicionar fundo ao nosso jogo. Isso significa que irá adicionar uma linha, vamos adicionar regras ao nosso ladrilho e fazer todo o fundo automaticamente preencher tudo e nos poupar muito tempo. Então vamos falar sobre mais alguns recursos de jogabilidade que terão. Como você pode ver aqui, nosso pequeno jogador está socando o ar, mas mesmo que o porco esteja um pouco longe, mas o movimento dos conquistadores, nós já cobrimos isso antes, mas ele vai ser executado saltando e ganhando o martelo. Como você pode ver aqui representado em nossa captura de tela, haverá perigos. Haverá bombas que irão, que as bombas queimam e explodem se estivermos perto e elas podem realmente nos matar. Teremos um ponto de início e fim, teremos portas pelas quais o conquistado caminha para passar de uma sala para a outra. E por quarto, quero dizer os níveis do nosso Rei. Em seguida, teremos os pickups e os pickups, nossas vidas ao longo do caminho para o jogador para pegar enquanto
caminhamos e todos os diamantes que você pode levar com você. Agora, é hora de seu desafio, e seu desafio será criar seu próprio design de jogo. Então descubra uma história para o nosso jogo. Pense em uma história convincente, uma história que faz com que quem está sentado atrás do computador e quem vai jogar o seu jogo, se sinta animado e lhe dê razão. Dando-lhe razão, dar-lhe a motivação para ir e matar todos os porcos e recolher todos os diamantes. Em seguida, você precisa descobrir a mecânica do jogo que você quer. Talvez você queira adicionar outras mecânicas de jogo. E eu te encorajo completamente, mesmo que você não saiba como realmente implementar essas mecânicas. Só para escrevê-las, mantê-las com você. E ao longo do caminho, você descobrirá como criá-los. Você vai baixar seus próprios sprites e typeset. E como eu lhe disse, certifique-se de que você tem o primeiro plano e o fundo. Vou deixar os links nos recursos para você ir em frente e baixar toda a pesquisa para os conjuntos de azulejos e sprites que você quiser. Ou você pode simplesmente usar o mesmo, que divertido, descobrir quais recursos você deseja adicionar. Então, como eu disse, temos que pegar coisas, temos que subir os lençóis. Você também pode adicionar seus próprios recursos. Não tenho certeza do que serão, mas por exemplo, você pode adicionar power-ups. É uma boa ideia. Então anote isso também e descubra por si mesmo. E como eu disse, isso vai ser muito emocionante e alguma bomba para começar a criar este jogo. E espero que você também seja. Então vamos começar nossa jornada para nos reunir, e eu vou te ver no próximo vídeo.
17. Como cortar sprites na Unity: Bem-vindos de volta a todos. Agora estamos começando um novo projeto que é muito, muito, muito emocionante. Certo, então a primeira coisa, vamos criar nosso projeto. Então abra seu hub de unidade e vá para adicionar novo. Então será um projeto 2D. E vamos nomear a conquista do castelo para D. E lembre-se, vamos guardá-la porque precisaremos dela para o repo criar. E agora esperamos que o projeto seja criado. Vejo-te daqui a pouco. Bem-vinda de volta. Acelerei o processo de criação do projeto Unity usando a magia da edição. E agora vamos, vamos elaborar um novo relatório. Então este é do cubo mágico para configurar uma nova ondulação, basta clicar no botão mais lá em cima. Você pode fechar esta guia e clicar no botão Criar aqui. Então, procuramos o nosso caminho. Então, onde quer que você tenha salvo o seu caminho, vá para isso e clique no castelo conquista 2D. Selecione a pasta, mantenha-a por mais tempo, mantenha a opção Criar repositório na conta desmarcada. Por agora. Clique em Criar. Clique em sim. E agora temos um repo. Então, como sempre, sabemos que devemos simplesmente clicar na Biblioteca, ignorar tudo. Ignorou tudo abaixo da Biblioteca. Clique em OK. Agora vamos para o gitignore. W clique em abrir e nosso bloco de notas. E você deve ter tudo
copiando e colando se você não se lembra como fizemos isso, confira o Eu não tenho certeza de qual vídeo. Acho que é o segundo vídeo na seção anterior. E você vai encontrar onde você pode obter o gitignore ou simplesmente Google. E agora temos tudo preparado. Então nós simplesmente vamos encenar todos commit e chamar este comentário inicial. Clique em Commit, e estamos prontos para ir. Então a primeira coisa que vamos fazer é importar os sprites que forneci nos recursos. Então vá em frente e pegue-os. Basta clicar neles e arrastá-los para o nosso projeto certo? Agora, antes de começarmos, quero tirar um momento e explicar o que é um sprite. Então, como este é um Sprite, este será o nosso herói ou o nosso conquistador. E como podem ver, ele é uma imagem. Então, um sprite é um objeto 2D, e esse objeto 2D tem uma imagem gráfica nele chamada textura. Assim, sprites são objetos 2D e eles têm imagens gráficas neles chamadas texturas. E eles são usados adicionando um componente chamado Sprite Renderer a um objeto de jogo vazio. Então criamos um objeto de jogo, adicionamos um sprite a ele e podemos ter uma imagem gráfica nele. Certo, agora que explicamos o que é um sprite, é hora de criarmos nosso terreno. Então, antes mesmo
disso, é hora de cortarmos nosso terreno. Então agora, se você clicar na seta pequena aqui, e você pode ver que é uma única imagem. Então o que precisamos fazer é cortar. Então, se clicarmos nele, você pode ver aqui no inspetor que temos muitas opções e uma delas como o modo sprite. Primeira coisa que você precisa ter certeza de que seu tipo de textura é de sprite 2D e UI. E o modo sprite deve ser múltiplo. Então clique sobre isso e aplique tudo e vá para o editor Sprite. Então, como você pode ver aqui, nós temos tudo isso. Então, os de cima serão o nosso primeiro plano e as feridas de fundo serão o nosso passado. Então aqui no topo, à esquerda você pode ver que temos várias maneiras de cortar nossos sprites. Um deles é automático. Então vamos tentar isso como um experimento ou clique em slides. Podemos ver que é fatia-los muito bem, mas isso não é o que precisamos. Não queremos que este bloco inteiro seja uma única fatia. Queremos cortá-la em quatro pequenos sprites. Este também, eu acho que mais do que isso, eu acho que este é nove sprites. Este é para pequenos sprites. Então, como podemos fazer isso? Bem, na verdade, e fatia, temos algo que é chamado de grade por tamanho de célula ou grade por contagem de células, estará usando a grade por tamanho de célula. E eu sei que deveria, o tamanho do pixel deve ser 32 por 32. Então nós cortamos isso, clicamos na fatia, e agora temos nossa folha de sprite cortada em pequenos sprites. Ok, ótimo. E você pode clicar em cada um deles e verificar as informações sobre isso. Então esta é a chuva, este é o terreno também, e cada um deles tem um número. Agora, se você tiver tempo e quiser ser muito meticuloso com esse processo, você pode realmente reunir, nomear cada um deles e torná-lo seu próprio. Mas não precisamos disso honestamente. Ok, ótimo. Então aplique isso neste padrão aqui. Aplique isso. E agora temos nossos lençóis cortados, Excelente e correto. E isso é tudo o que precisamos fazer e é hora de um desafio. E seu desafio vai simplesmente ser cortado em sua própria planilha. Portanto, importe qualquer sprite que você escolher usar para o seu jogo. Eu lhe dei os recursos, o site onde você pode encontrar artes de jogo livre e simplesmente importá-los, cortá-los em folhas de sprite para o fundo e as pilhas de primeiro plano certifique-se de que você tem fundo e primeiro plano. E como eles menos passo deste processo, vamos simplesmente criar uma pasta. Chamaremos isso de sprites e arrastaremos o terreno para dentro dele. E outra coisa talvez nós vamos mudar isso e nomear este nível 0 porque nós não temos nenhum outro nível, simplesmente nível 0. Ok, então este projeto vai ser ótimo. Ele terá muitos sprites, dois terão muitos scripts. Então vamos começar com um bom hábito de organização para o primeiro vídeo, e nos vemos no próximo.
18. Mapas de telha na Unity: Bem-vindos de volta a todos para outro vídeo incrível. E este é especialmente o melhor vídeo, eu acho que em todo o curso, porque nós estamos realmente criando nossa plataforma. Como você pode ver aqui. Fizemos uma pequena plataforma. Temos o mapa de estilo aqui à direita, temos à esquerda também grade de mapeamento AOL e nossa hierarquia. Usamos todos os sprites que cortámos antes para criar esta plataforma aqui. Então não vamos perder tempo. Estou tão entusiasmada com este vídeo. Espero que você também esteja. Quero que evoces todo o teu poder criativo para este vídeo e vejo-te daqui a pouco. Ok, então mapas em mosaico, o que vamos fazer? Bem, a primeira coisa que fizemos foi pegar nossos lençóis de sprite. Nós os cortamos em pequenos lençóis de sprite. Estamos indo ao lado para criar ativos de mosaico. Vamos pegar esses ativos de estilo e adicioná-los à nossa paleta de arquivos. E finalmente, usaremos nossos pilotos do Kyle para criar todos os mapas em mosaico. Oh, ok, ótimo. Então, de volta à unidade, onde vamos, em primeiro lugar, ir para Window e procurar nossa paleta de azulejos, que deve estar sob 2D e palete estilo. Então, clique nisso. E agora temos o nosso paladar. Sinta-se livre para atracar onde quiser. Sinto que quero falar ao lado do Inspetor. Torne isso um pouco maior porque vamos precisar dele mais tarde. Próximo passo, entramos em nossa hierarquia aqui à esquerda onde não temos nada além da câmera principal. Então clique com o botão direito do mouse e vá para o objeto 2D e procure mapa de mosaico. Quando você clica nele, podemos ver que uma grade foi criada. É chamado de grade, nossa hierarquia e um mapa de mosaico. Então vamos mudar o nome do mapa de estilo para ir para Inspector. Certifique-se de ir de inspetor para mapa de mosaico. Portanto, o mapa de mosaico muda para o terreno traseiro e crie outro. Então, um ingrediente que vamos criar outro mapa de mosaico e vamos chamar o primeiro plano do cisne. Oh, ok, ótimo. E também vamos mudar o nome de crédito para mosaico, mapa, cresceu. Tudo está ótimo. Então agora o que vamos fazer é criar uma nova paleta de azulejos. Então eu vou para paleta de mosaico e aqui em Criar um novo piloto de mosaico. Clique nele. E ele vai pedir-lhe um nome, vai simplesmente nomeado este paladar principal pode criar. E ele vai perguntar onde você quer salvá-lo. Essas são suas pastas de ativos. Então vamos em frente e criar uma nova pasta chamada telhas e salvá-lo dentro de nossa pasta de seleção de blocos. Agora temos uma nova pasta que é arquivos e tem uma paleta de pipe principal. E esta é a nossa palete de azulejos. Então. O que vamos fazer agora? Volte para nossos sprites na hierarquia à esquerda e escolha todos esses sprites. Então vá em frente e escolha todos eles. Para fazer isso mais rápido. Clique no primeiro,
vá para o último, mantenha a tecla Shift pressionada e clique nele para que você escolha tudo e arraste-os para a nossa paleta de azulejos. E nós deveríamos ter um grande, enorme mestre. Ok. Agora, volte blocos e dentro de blocos, selecione a pasta e salve-os lá. Então espere que eles se tornem ativos de pilha. E eles devem ser agora o k. Então, como você pode ver, uma enorme massa foi feita. Agora, é claro, vamos mover todos estes e reorganizá-los. Agora você pode reorganizá-los da maneira que quiser. Farei mais tarde. Eu vou, será o mesmo arranjo que o que está no terreno. Sinta-se livre para fazer seu próprio arranjo. Então agora é hora da parte excitante. Então, vamos escolher uma dessas telhas e começar a desenhar. Mas como você pode ver, estes são muito pequenos. Então, qual é o problema? O problema é que quando estamos escolhendo nossos sprites, eles são realmente os pixels por unidade é 100. Então, como vamos fazê-los se encaixar? Vamos mudar isto para 32. Então vá para o nosso sprite, clique nele, vá para o inspetor e certifique-se de que o pixel por unidade é 32. Aplique isso e eles se encaixam perfeitamente em R-quadrados. Ótimo, de volta à nossa paleta de azulejos. E agora vamos em frente e desenhar um fundo simples, muito, muito simples. Então também podemos aprender um pouco sobre as coisas aqui em cima. Então, toda vez que você quiser desenhar, você tem que se certificar de qual mapa de mosaico ativo você está. Então, por exemplo, eu apenas desenhei um conjunto de pneus que estavam no chão, o que não estava correto. Você precisa ter certeza de escolher o mapa de mosaico ativo correto. E sobre isso você pode ver que temos este pincel com o qual nos permite desenhar um único arquivo cada vez que temos ao lado dele, este desenho de caixa, que podemos simplesmente
clicar aqui e arrastá-lo e fazer quantas caixas quisermos. Nós temos isso, escolher onde escolhemos um desses e podemos realmente mudar todos eles. E agora você também pode experimentar com tudo isso. E finalmente temos isto. Esta é uma borracha onde podemos remover o que quisermos remover. Então vamos desenhar isso de novo. E agora vamos nos transformar em primeiro plano. E agora, quando estamos em primeiro plano, escolhemos os azulejos para o primeiro plano. Voltar ao fundo. Certifique-se de que nós, tudo está em segundo plano e as coisas em primeiro plano são sempre as telhas para Primeiro Plano. Então, agora, se clicarmos no jogo. Esta será a nossa visão de jogo. Como é legal que estamos começando a criar nosso jogo. Excelente. Mas algo que quero salientar é que
precisamos ter certeza de que estamos trabalhando nas camadas certas. Então, o que eu quero dizer com isso? Bem, se voltarmos para o visto e nossas paletas de azulejos, se você clicar no fundo, podemos realmente desenhar sobre o nosso primeiro plano, mas telhas, o que não é muito bom, precisamos ter certeza de que quando desenharmos, nosso primeiro plano está bem em primeiro plano. Então, como fazemos isso? Fazemos isso usando camadas de classificação. Classificar camadas são muito, muito quem vai olhar. Então, se você entrar na hierarquia em segundo plano, você pode ver que temos um mapa de mosaico. Sob isso, temos um mapa de mosaico renderizado. Agora, se você quiser entrar na documentação
da unidade e descobrir tudo sobre tudo, sinta-se livre para fazer isso. Mas o que vamos nos concentrar são essas configurações adicionais. Então, se você o tiver fechado, acabe aberta. E você pode ver que temos camadas de classificação e temos camadas ordenadas. E agora em primeiro plano, você pode ver que temos essas camadas de classificação e camada ordenada. Então precisamos criar uma camada de classificação para nossos fundos. Então clique na camada de classificação que agora é padrão e clique em Adicionar camada de classificação. Então, para adicionar uma camada de classificação, basta clicar neste mais aqui, e vamos chamar este R de terra. Vamos adicionar outra camada de triagem e fazer esta outra terra. Agora temos duas camadas de classificação e abaixo dela, e acima dela podemos ver as tags, que algo que é útil para codificar, e camadas abaixo dela, que é bom para colisões, falarão sobre essas Mais tarde. Então volte para o primeiro plano. E agora, na camada de classificação, em vez de padrão, escolha primeiro plano e para o plano de fundo, escolha plano de fundo. Mas como podem ver aqui, nosso passado ainda está em frente ao nosso primeiro plano. Por que é isso? Bem, se voltarmos para as camadas para classificar camadas, as abaixo serão renderizadas primeiro. Então, se movermos o fundo e colocá-lo acima do primeiro plano, o primeiro plano será renderizado na frente do fundo. E cada vez que você precisa ter certeza de que você tem suas camadas na ascensão correta ou dissensão. Certo, excelente, guarde isso. E agora vamos criar uma plataforma simples. Uma plataforma muito simples. Mas primeiro, note, não desafiado, ainda não. Primeiro, usarei a magia da edição para reorganizar todos esses estilos aqui. E não vai ser algo muito incrível que você possa fazer da maneira que deseja fazer. Vou simplesmente fazer o mesmo que o nosso arranjo original. Voltei da minha viagem mágica de edição. Como podem ver, reorganizei todos os meus azulejos e esqueci de fazer algo. Esqueci-me de te ensinar a fazer isso. Então. Desculpe-me por fazer isso, basta clicar aqui em editar. Quando você clica nele, você realmente tem acesso a todos esses blocos. Então, se você verificar aqui, você pode realmente selecionar uma área da grade usando S e então você pode movê-la usando AMP. Então clique em nós, clique em um dos Tiles, clique em M, e agora você pode movê-lo para onde quiser. E quando você terminar de editar, basta clicar neste botão de edição e ele salvará quatro. Então vamos mudar isso de volta como um OMB e salvar e controlar S para salvar tudo. E agora é hora do seu desafio. E seu desafio será criar sua própria plataforma. Então, crie os blocos de primeiro plano e plano de fundo. Crie uma nova paleta de azulejos e reorganize os trabalhos na cédula, assim como eu fiz. Ou encontre sua própria maneira pessoal ou reorganize-os, crie uma plataforma do primeiro plano com um plano de fundo. Então pausar o vídeo agora mesmo. Reorganize os blocos da maneira que você deseja que eles sejam reorganizados e , em seguida, vá em frente e crie algum tipo de plataforma. Não se preocupe com o quanto a plataforma deve ser. Incrível ou ótimo. Isso é apenas para treinamento simples. Farei isso mais tarde. Mas pausar o vídeo agora mesmo e tentar o seu melhor. Oh K. Como você se deu com isso? Estou tão animada para ver como seria a sua palete. Então agora eu vou criar um pequeno bloco apenas dentro da nossa tela. Grátis cão o jogo bem ao lado dele, e é 16.9 grau. Para que possamos ver. Mas, por enquanto, vamos simplesmente mantê-lo lá. E eu vou criar uma plataforma apenas dentro desta câmera e não aborrecê-lo com todos os detalhes e vou, novamente, usar a edição mágica. É uma magia tão boa. É melhor que a magia do Harry Potter. E eu vou criar uma grade ou escrever. Então, vejo-te lá dentro. Olá e bem-vindo de volta. Como podem ver, criei uma pequena plataforma aqui. E o que esta plataforma consiste, apenas eu fiz um pequeno para pequeno eu bastante grande parede aqui, um obstáculo. Talvez eu o faça menor Mais tarde eu fiz uma pequena plataforma aqui onde nós podemos, nós podemos colocar, eu não sei, talvez diamantes ou caixa escondida. Depois fiz estes tipos de passos onde o nosso jogador pode saltar. E é basicamente isso. Nada muito extravagante. E eu espero que você fez para criar sua própria plataforma ou você pode ter esperado por mim para criar a plataforma e então se inspirou nela. Mas o que eu quero que você faça é criar sua própria plataforma. Não copie o meu porque esta é a melhor parte do curso. É realmente criar níveis usando a incrível magia de mapas de azulejos, um monte de magia neste vídeo e vê-lo no próximo.
19. Regra Tiles 101 (2D Extras): Bem-vindos de volta a um novo vídeo. E este vídeo, vamos investir tempo. Sim, vamos investir tempo agora para nos poupar muito tempo depois. E faremos isso criando as regras para nossos azulejos. Então, como você pode ver, e agora podemos simplesmente criar telhas automaticamente. Então, como você pode ver, eles se enchem automaticamente, o que é muito legal e muito útil. Então vou ensinar-te a criar estas regras. Vou lhe dar todos os recursos necessários. Levará algum tempo e alguns entenderão, algum entendimento para obtê-lo, mas não se preocupe com isso. Tudo será explicado. Então eu vou te ver em um k. Então a primeira coisa que vamos fazer é importar nossa função de mapa de mosaico extras 2D. Há duas maneiras de resolver isso. Você pode entrar em um google e digitar a unidade extras, e depois ir para o seu, no primeiro resultado, que é GitHub e baixou, baixado a partir daqui, você terá uma pasta zip e você simplesmente tem que importa-lo. Primeiro de tudo extraído e depois você simplesmente arrasta-o para seus ativos do Unity ou você pode usar o que eu lhe forneci os recursos. Vou usar isso agora mesmo. Então simplesmente pegue esse bloco de função que eu forneci, arraste-o para o Unity e coloque-o dentro dos ativos. Aguarde no porto. Ele lhe dará uma longa lista de coisas para importar. Basta clicar na importação aqui no canto inferior direito. Espere que termine. E agora você deve ter esta pasta bem aqui. Quando você obtém essa pasta, você pode entrar em blocos. E você pode simplesmente, vamos em frente e colocar tudo isso em uma única pasta. Vamos chamar isto de arquivos de chuva de terreno. Vá em frente, escolha todos eles e simplesmente arrastá-los para telhas de terreno para ter mais espaço. E agora, se você clicar com o botão direito do mouse em seu o que quiser, eu recomendo que você vá para blocos, vá para criar. E você pode descobrir aqui no topo que você tem algo novo. 11 é um ramo pré-fabricada e o outro é descartado. Então clique no roteador e foi para este conjunto de regras em particular, vamos fazer regras para o nosso plano de fundo. Então vamos em frente e chamar este arquivo de regras de fundo. E agora se clicarmos nele e entrarmos no inspetor, você pode ver aqui que temos alguma estrutura estranha do Windows. Então temos o sprite padrão e temos as regras de mosaico, uma lista que está vazia. E podemos adicionar a esta lista clicando neste botão aqui, e podemos adicionar regras. A primeira coisa que você precisa fazer é atracar este inspetor. Então, basta ir até o canto superior direito da tela e clicar neste pequeno bloqueio aqui. E agora isso não mudará. Isso será muito útil. Então agora, como você pode ver, isso nos diz que não há nenhum. Sprite. Então precisamos adicionar um sprite padrão. E porque estamos trabalhando no fundo será apenas trabalhando nas sprites de fundo. Então vá em frente e adicione o sprite sempre aleatório que você deseja que seja o padrão. E agora vamos começar criando nossas regras de mosaico. Assim, a primeira regra será para uma telha que deve estar no meio, assim como esta. O que não tem, não tem nenhum lado ou
não tem nenhum pouco natural o que são esses. Esses são chamados, estes são para os cantos a propósito, e isso se tornará tudo claro, apenas habilitado. Agora criamos nossa primeira regra. Parabéns. Vamos em frente e adicioná-lo ao nosso paladar de azulejos. Então você pode criar uma nova paleta de azulejos
simplesmente para nossas regras ou você pode adicionar aqui mesmo do, acima de tudo as pilhas padrão todas adicionadas a este. Porque é mais prático, acredito. Então, basta clicar neste plano de fundo e arrastá-lo para a nossa paleta de azulejos e deve, ele deve mostrar aqui. Então, agora, se clicarmos neste, podemos realmente desenhar esses blocos de regras. Vê isso? Oh, ok, ótimo. E como você pode ver, todos eles são do mesmo tipo. Mas se escolhermos criar regras para isso. Então, por exemplo, se clicarmos neste, como você pode ver, tudo muda. Por que é isso? Bem, deixe-me explicar como essas regras realmente funcionam. Então vamos ver esta caixa de três por três aqui. E se adicionarmos, podemos realmente adicionar esse tipo de flechas. E como podem ver, mais adicionamos as mudanças morais. E o que isso significa é que a seta verde significa que há uma telha acima dela. Então, quando o restyle acima dele, para a esquerda, para a direita e abaixo dele, então podemos desenhar este estilo. Então esta é uma regra. E se clicarmos nesta seta verde, novamente, podemos ver que ela se torna um X vermelho. E o que este X vermelho significa que ele só vai desenhar quando não há nada à sua direita. E nós podemos ver aqui o. E se nós realmente clicarmos aqui, ele realmente faz, bem, ele nos mostra o que vai acontecer se nós adicionarmos um título aqui. E você pode estar se perguntando por que todos os outros azulejos estão assim? Bem, porque é o nosso sprite padrão. Então vamos em frente e adicionar uma outra regra. E vamos manter isto assim porque, na verdade, esta é a nossa regra para esta telha em particular. Então vamos em frente e adicionar em outra sala. E para esta regra, vamos voltar para os sprites. Adicionará um canto no lado direito. Então vamos em frente. Então, o que você acha que o slide certo deve ter como regras? Bem, eu acho que deve ter um abaixo dele, 12, certo? E um na diagonal, e não deve ter nada em ambos os lados. Agora nada mudou muito bem, mas tudo bem, porque vamos adicionar outra regra. E para esta regra, vamos ver o que temos. Vamos adicionar este 10. E neste caso, se temos algo para, por esses lados e nada desse lado, devemos ter isso aqui. E está praticamente correto agora. Então vamos em frente e criar uma outra regra e adicionar esta a ela. Então, agora, se temos, por exemplo, o que isso deveria ter? Se não tem nada à sua direita e tem algo à sua esquerda
, deve criar este. Outra coisa sobre essas regras aqui é que você pode realmente
alterá-los e eles podem ser ou espelho girado no eixo x ou y. O que isso significa? Bem, se clicarmos neste, você pode ver que ele gira todas as regras. Então, se não quisermos criar regras
para, por exemplo, queremos criar uma regra que seja como esta. Ok? Podemos simplesmente clicar no espelho, espelho no eixo x, e ele irá criar essa regra para nós. Mas não precisaremos disso porque nossos bens são ricos e eles têm tudo neles. Então agora eu vou
criar um conjunto de regras que simplesmente acreditavam que uma, porque precisávamos, eu vou criar um conjunto de regras. E antes de fazer isso, vou te dar um desafio e seu desafio vai estabelecer suas próprias regras. Porque posso acreditar que você pode criar regras do que eu para o fundo. Então, a primeira coisa é importada para o arquivo extra que eu forneci nos recursos. Então você tem que configurar suas regras para ladrilhos
automáticos e usar as regras para pintar sua própria plataforma. Então vá em frente e tente o seu melhor. E se você acha que não consegue nem mesmo criar
as regras mais simples que eu forneci nos recursos. Além disso, as regras eu gravei tudo de antemão, então eu vou te ver daqui a pouco. Ok. Bem-vinda de volta. Então, como você se saiu com isso? Espero que pelo menos tenha tentado criar algumas regras. Então vamos mostrar-lhe, deixe-me mostrar-lhe o que eu fiz. Então eu criei, eu acho que são cerca de 17 regras. E da maneira que eu fiz, eu realmente comecei a olhar para diferentes maneiras cada azulejo pode funcionar e como ele deve ser posicionado. Claro, se você não tem nenhuma idéia de como criar as regras, eu forneci aos judeus algumas fotos e, ou capturas de tela que eu fiz para que você possa copiá-los e usar meus blocos. Mas lembre-se, os meus não são perfeitos de forma alguma. E eu deixei de fora muitos azulejos porque é uma lista muito exaustiva. Eu quero criar um exemplo para você criar suas próprias regras. Não será fácil, não será feito em dez minutos. Eu acho que isso realmente me levou Eu acho que cerca de duas talvez 2,5 horas para terminar todos eles e testá-los e certificar-se de que todos eles funcionam. Então, para demonstrar como funciona o ladrilho automático, vamos em frente e optar por apagar alguns deles. Então, como você pode ver, quando os apagamos, novas peças são criadas para enrolar. E como podem ver, temos um erro aqui. E então pode haver muitos outros erros, mas alguns deles funcionaram como este, por exemplo, funciona perfeitamente bem. Então vamos em frente e excluir tudo isso e liderar tudo isso. E vamos experimentá-los em nossa plataforma e ver como eles funcionam. Então, vamos em frente e clique sobre isso, escolha os azulejos automáticos. E vamos nos lembrar de ter sempre em segundo plano. Então vamos criar algo aqui, e então vamos criar algo bem aqui. E como você pode ver, eles enchem automaticamente. E é perfeito, eu acho que vamos ver se, oh, há algo bem aqui. Acho que precisamos criar outra regra para isso. Eu acredito que é aquele em que você tem apenas dois de cada lado. Então vamos ver. Ok, então vamos em frente e criar uma nova regra e vamos ver qual delas devemos usar. Então nós queremos cobrir, nós queremos cobrir esta área bem aqui no topo e uma aqui. Então vamos escolher qual, qual, certo, este. Então vamos arrastá-lo para cá. Como você pode ver, ele se enche automaticamente, mas não é isso que queremos. Queremos realmente criar uma regra para que ela sempre siga, porque isso sempre será padrão para nós. Então não tem um azulejo no canto superior esquerdo. Ele não tem um amarrado em seu canto inferior direito. E tem azulejos em ambos os lados e promete acima e abaixo dele e em ambos os lados. Excelente. Então agora você pode ver que nós temos nossa configuração de regras bem aqui. Podemos automaticamente colocar em mosaico todo o plano de fundo. Torna a nossa plataforma muito mais estática do que ter todas iguais. Você pode criar portão, também uma regra para seus blocos de primeiro plano. Eu tentei. É meticuloso, leva tempo, e encorajo-te a tentar criar isso também, vai tornar a tua vida 20 vezes mais fácil. Espero que tenha gostado do vídeo. Espero que você esteja animado como eu estou sobre isso no próximo vídeo, Eu acho que será finalmente adicionando o nosso jogador ou um conquistador nos, chame-nos, vamos chamá-lo de nosso conquistador. Vemo-nos no próximo vídeo.
20. Adição de nossas Primeiras animações: Bem-vindos de volta, meus colegas desenvolvedores de jogos. Como você pode ver, nós criamos, finalmente, criamos um jogador e exibição ou é o nosso conquistador, vamos chamá-lo Ginny. Então, o Jimmy agora não faz nada. Mas se clicarmos no jogo, podemos ver que o nosso Jimmy Conquistador realmente tem uma animação ociosa que está rodando bem aqui abaixo. Vou ensinar-te tudo o que fizemos. Você terá um grande desafio. Quero que me dês toda a tua força de concentração e vejo-te daqui a pouco. Ok, então a primeira coisa que vamos fazer é desacoplar isso e vamos apagar todas as coisas desnecessárias que temos aqui em cima. Então vamos em frente e deletar tudo isso. zoom de volta e vá para Arlen Specter, guardei isso. Então vamos e criar um objeto de jogo vazio e fazer o menor dentro não necessário que grande. Clique sobre isso para remover um pouco maior e vamos chamar este objeto de jogo de nossa camada. E esta camada será redefinida para o meio da nossa tela. E honestamente, esta é a parte mais emocionante de toda a criação do jogo quando você começa a fazer o seu jogador. Então vamos repassar algumas palavras técnicas. Animação 101 primeiro, primeira coisa que você precisa aprender como um controlador animador. Assim, um controlador animador permite que você organize e mantenha um conjunto de clipes de animação. Você verá o que está habilitado. E o componente Animator usado para atribuir animação aos objetos finais do jogo em sua cena. Portanto, se você tiver um objeto de jogo e quiser ter animações, atribua a ele um componente Animator, e esse animador, componente animador, recebe um controlador de animador. É um pouco confuso. Vamos ver tudo. Animações em vários sprites renderizados um após o outro. Então ele diz conjunto de sprites um após o outro, nós os colocamos em seguida. Assim como o vídeo funciona onde é um conjunto de imagens uma após a outra. E, finalmente, um renderizador de sprite sobre o qual falamos anteriormente, renderiza um sprite para gráficos 2D. Certo, Rick cresceu. Então, de volta à Unidade. E da unidade vamos importar o sprite. Deixei você e seus recursos para o nosso humano. Então vamos em frente e vamos lá. E aqui você pode descobrir que temos queda ociosa, saltar e correr. Então vamos usar para agora animação ociosa. Mas, a fim de criar as outras animações temos o Ron e todos saltar. Então clique no ocioso e arraste-o para a nossa unidade. Então, temos aqui mesmo. Na verdade, não queremos, queríamos dentro de sprites. Então vamos fechar isso e agora vamos criar uma pasta. Primeiro para o nosso. Conquistador, que chama este conquistador. E o nosso conquistador terá este sprite. A primeira coisa que vamos fazer é cortar o nosso conquistador. Mas antes de fazermos isso, eu quero entender os passos que estamos chegando a dar. Então vamos importar a planilha de concordância e dividi-los. Vamos criar o objeto do jogador. Já fizemos isso e adicionamos um renderizador de sprite a ele. Faremos isso agora mesmo. Estamos criando criará uma animação ociosa. Vamos adicionar um animador ao nosso jogador, vamos criar um animador de jogador e encomendado para adicionar todas as animações a ele, vamos adicionar uma animação ociosa ao Animador e vamos atribuir o animador ao nosso jogador. Então vamos em frente e fazer todas essas coisas. Primeira coisa, vamos cortar o nosso. Então vamos para múltiplo fará com que os pixels por unidades 32, e vamos aplicar tudo isso irá para o nosso editor de sprite. Então, como você pode ver aqui, temos 1234567891011 Sprites, e eles estão espalhados por 800. Aqui abaixo você pode vê-lo oitocentos e cinquenta, oitocentos e cinquenta e oito. Se você fizer o corte automático, você pode ver que ele faz o trabalho muito bem. Mas o problema é que quando vamos adicionar outras animações ao nosso conquistador terá um pequeno problema com isso. É por isso que vou cortá-lo de uma forma manual. E vai ser 58 por 58. Nós cortamos isso. E como você pode ver, não é muito preciso. Por que é isso? Porque queremos ter algum tipo de compensação. Por que precisamos dessa compensação? Bem, porque 50 por 58 simplesmente não é suficiente. E nós estamos indo para pad vamos fazer um preenchimento de, quero dizer, um deslocamento de 20. Não, eu quis dizer estofamento, por isso estofamento de 20. E agora podemos ver que eles estão todos no meio de, o mais importante é ter o nosso conquistador e local no meio do sprite. Então, todos eles estão no meio. E Oh, ok, ótimo. Então corte isso, aplique tudo o que puder. Como sempre, eu te disse que você pode renomeá-los se quiser ir pela garganta abaixo. Então nós cortamos nossos sprites. Agora é hora de adicionar nosso renderizador. A maneira como fazemos isso é movermos isso aqui e adicionaremos um componente. E vai ser um renderizador de sprite. E, e nossa renderização de sprite, temos esse sprite padrão. Escolha qualquer um que você gostaria e coloque-o dentro dele. E temos nossa camada, uma taxa de garotas. Então, agora o que precisamos fazer é adicionar um animador a esse player,
ou, na verdade, um componente Animator sobre o qual falamos. Então vamos fazer isso. Basta digitar e ele pode falar. Agora temos um controlador animador e esse objeto agora pode começar a ter animações de volta aos ativos. Vamos criar uma pasta. Vamos chamar esta pasta. E animações. E dentro de animações, vamos criar um animador, então controlador animador. E chamaremos isso de “o jogador”. Agora, vamos voltar quem agir devemos fazer agora? Ok, então o próximo passo será, nós vamos abrir nossa janela para uma animação. Então, vá para a animação e clique na janela Animator, animador de animações. E nós temos o animador, mas nós vamos conversar de uma maneira diferente. Sinta-se livre para encaixá-lo como quiser. Este é o meu estilo pessoal, então eu vou encaixar o projeto e o console ao lado um do outro. E eu vou encaixar o peso animador do que, e eu vou encaixar o animador bem aqui abaixo de K. Você precisa fazer algumas reestruturações aqui mesmo. Simplesmente assim, e é perfeito. Então este é o nosso animador bem aqui abaixo da nossa cena. E vamos adicionar também uma janela para as animações. Então animações e vai encaixá-lo ao lado do animador. Simplesmente assim. Ok, ótimo. A próxima coisa que vamos fazer é criar uma animação e vamos adicioná-la ao nosso animador. Como podem ver, já temos alguns estados. Estes são chamados estados. Este é o estado de entrada, isto é de qualquer estado, e este aqui é um estado de saída. Então vamos criar uma animação melhor parte do nosso jogo. Então volte para o Conquistador de Sprites. E a forma como criamos animações é escolhermos todos os sprites que queremos. Então, como eu já disse antes, clique no primeiro,
vá para o último, segure Shift, Clique neles,
você escolheu todos eles, clique com o botão direito do mouse sobre ele e vá para Criar, e vá para baixo em animação. Então isso criará uma animação. Vamos chamar isso de marcha lenta. marcha lenta. Ok, ótimo. Agora temos uma animação de marcha lenta para o nosso jogador. Basta arrastar isso para a animação. E dentro da animação, temos que adicionar agora esta animação ociosa, animador 2D. Então nós fazemos isso basta clicar em, Clique no alargamento e arrastá-lo para o animador. E agora temos uma animação ociosa para o nosso jogador. Uma coisa que também temos que ter certeza é clicar na animação e adicionar um tempo de loop por causa de nós não. Ele vai fazer esta animação uma vez e depois parar. Eu piscar é uma animação que queremos ter mais e mais e mais e mais e mais. Então, clique nisso. Salve tudo isso, e não se esqueça de ir para o jogador. E no controlador animador, ele irá pedir-lhe um controlador. Você pode arrastar isso aqui ou você pode clicar no pequeno círculo e adicionar o animador jogador. Guarde isso. E agora vamos clicar no jogo e ver o que fizemos ou qualquer coisa funciona. Então, se voltarmos a ver, podemos ver que nosso jogador se move e ele está ocioso Woo, Woo, oh, ok, ótimo. Muito excitante. É muito excitante, mas há um problema. Se pegarmos o nosso jogador agora e o arrastarmos para a nossa plataforma, não
podemos ver nada. Então, onde ele está? Qual é o problema? O problema também? Na verdade, o problema é seu porque viu o que eu fiz lá. Eu realmente mudei tudo o que os passos para eu desafio porque talvez você esteja apenas observando e não fazendo nada também. Então esta é a sua chance de fazer o desafio. Então seu desafio é fazer todas as coisas que já fizemos. Você pode assistir novamente. Talvez você já esteja fazendo tudo comigo e pausando o vídeo. Mas se não for, agora é a hora. E seu desafio extra é usar as camadas de classificação para tornar nosso jogador visível em frente ao fundo. Então, já cobrimos camadas de classificação antes. Eu acho que você tem habilidade suficiente para fazer todos eles. E vejo-te daqui a pouco. Bem-vinda de volta. Espero que você tenha feito o seu melhor e esse desafio, espero que você apenas olhar para a tela. Então, vamos escolher jogador vai entrar em renderizador sprite. E vemos aqui que temos a camada de classificação exatamente como tínhamos para o primeiro plano e fundo. Então, se clicarmos em Padrão, não temos um player e podemos adicionar uma camada de classificação. Então vamos em frente e fazer isso. Então, uma nova camada, vamos chamar essa camada profunda, Camada. Camada, Camada. É divertido dizer isso. E vamos colocá-lo em frente ao fundo e atrás de primeiro plano, mesmo que ele não esteja indo sobre o primeiro plano ou atrás dele. Mas vamos torná-lo assim. Salve tudo isso de volta no Player e escolha a camada de classificação para ser o jogador. Então agora o nosso jogador, nosso jogador está na camada de jogador, digamos isso dez vezes. E agora eu, na verdade, eu acho que o nosso jogador é apenas um pouco senta shopping, eu acho que vai torná-lo maior. Então vamos para sprites. E do jeito que fazemos isso, escolhemos os conquistadores, dramaturgos, e faremos isso 30. Então, se fizermos este 13, Clique em Aplicar, ele se torna apenas um pouco maior, só para que ele possa ser visto. Mas se esse logotipo da câmera e aqui está te incomodando, está me incomodando. Você pode realmente clicar aqui sobre os aparelhos e você pode fazer todos os ícones é menor. Você pode até fazê-los desaparecer. Ok, ótimo. Então eu espero que você continue com esse desafio. Espero que você esteja animado como eu estou porque o nosso jogador está realmente se movendo e nós temos dar um pouco de vida ao nosso jogo. Vejo-te no próximo. Esta é a Michelle do futuro. Desculpe interromper. Mas quero que faça algo que não temos feito até agora. E isso está cometendo nossas mudanças. Talvez você tenha feito isso e eu te parabenizo. Mas se não for, é uma ótima hora para começar a turnê. Então, como você pode ver, eu tenho feito isso em cada vídeo. Então cortar folhas, criar paletes, criar uma plataforma e as ferramentas. E agora vamos adicionar a animação. Então vamos confirmar essa alteração e adicionar uma animação ou adicionar animações ociosas. Então, se você não tem feito os repositórios aqui, este é um ótimo momento para começar, porque nós vamos estar fazendo um monte de coisas nos próximos vídeos. Então eu vou te ver.
21. transições de animação: Bem-vindo de volta meus colegas desenvolvedores de jogos para um novo vídeo. E esta é muito empolgante porque vamos aprender sobre outras animações, outras e ainda mais transições. Então, como você pode ver aqui em nosso animador, nós adicionamos dois novos estados que estão subindo e correndo. E adicionamos transições entre eles com parâmetros adicionais que nos permitirão fazer essas transições. E agora, se clicarmos no jogo, podemos realmente levar o nosso jogador da animação de engomar para a animação em execução. E nós também uma animação de escalada do que temos. Então eu estou muito animado para este vídeo. Espero que sim. Espero que você também esteja. Então vamos entrar nisso. A primeira coisa que faremos é adicionar os sprites para correr e o cliente. Então, para a corrida, temos este corre sprites e 40 escaladas. Eu vou usar a queda e o salto porque nós não temos as animações reais de escalada, mas eu queria incluir isso em nosso projeto. Então vá em frente, clique em todos eles e arraste-os para nossa unidade. Então temos salto, temos o, ou o Irã e padrão. Por enquanto, vamos nos concentrar na corrida. Então, como você sabe, este é um passo que fizemos várias vezes. Vamos em frente e clique em executar. Faça múltiplo, faça o tamanho do pixel 30. Porque, como você se lembra, nós aumentamos de tamanho. Guarde isso. E sim, eu queria me inscrever, voltar para R1 e por algum motivo, ok, então indo para Sprite Editor, e nós temos esses sprites, é ir para grade por tamanho de célula. Deve ser 58 por 58 com um estofamento de 20, como me lembro, sim, exatamente. Ok, então aplique isso. Agora temos os nossos espíritos. Vamos em frente e clicar em todos eles como fizemos antes. Verifica todos eles. Botão direito. Vá para criar animação. E vamos chamar isso de corrida crônica, roupas
ótimas que levam correr para animações. E mais tarde, criaremos uma pasta. Então agora vamos adicionar o estado de animação em execução ao nosso, um animador em correr bem ali. Então agora isso é um pouco complicado, mas vamos ampliar, mover essa saída, sair para ouvir. E agora temos a marcha lenta e a corrida um ao lado do outro. Então, como vamos dizer ao nosso animador que queremos fazer a transição da marcha lenta para a corrida? Bem, se você clicar com o botão direito em marcha lenta, você pode realmente fazer uma transição. Então faça essa transição e empurre a seta e para a direita. E se você clicar nessa transição, como você pode ver, temos muitas opções e muitas configurações também. Então deixa-me dizer-te um pouco. Vamos falar sobre transições. Nós temos um pouco de mistura aqui entre as animações, mas nós não queremos que isso, como você pode ver, nós temos esta mistura bem aqui e nós podemos realmente. Remova toda essa mistura. Então ele vai imediatamente de ociosidade para executar. E vamos fazer isso porque já temos muito bom para as animações. Então, podemos simplesmente ir para a Duração da Transição e colocá-lo em 0. Dessa forma, não haverá atraso entre as animações. Então agora temos a marcha lenta indo para a corrida. Mas como é que ele vai saber que realmente queremos seguir esse caminho? Bem, fazemos isso usando os parâmetros aqui à esquerda. Então, vá de camadas para parâmetros. Como podem ver, temos uma lista vazia. Então aqui é onde começamos a adicionar parâmetros e podemos adicionar e um par de parâmetros. Podemos adicionar um float e um inteiro, um booleano ou um gatilho. Por enquanto, vamos usar um booleano e esse booleano será chamado correndo. Então, queremos fazer a transição para a corrida. Precisamos usar o booleano em execução. E, a fim de adicioná-lo sob o, se clicarmos novamente em transições, temos as condições aqui mesmo. E esta condição, isto está vazio. Então clique em mais um átomo. Ele adiciona automaticamente a execução porque não temos mais nada para adicionar. E agora, se
clicarmos no jogo, podemos ver que estamos agora ociosos. E se clicarmos neste booleano, vamos para a corrida, mas acontece, faz isso apenas uma vez? Por que é isso? Vou te dar um mini desafio agora mesmo para descobrir. Está bem, chega. Então vamos ver, correr deve estar em loop. Guarde isso de volta ao jogo. E agora, se clicarmos no booleano, ele começa a correr e continua correndo para sempre. Por que é isso? Queremos fazer esta manteiga. Então vamos adicionar uma transição de volta de correr para abrir os olhos. E essa transição também terá uma duração de 0. Está condicionado aqui que estará funcionando, mas quando for transformado em falso, guarde isso de novo. Clique no jogo. E agora o nosso jogador como engomar. E agora ele está correndo e agora ele não está correndo e agora ele está correndo. E agora ele não está fugindo. Ok, então isso é muito legal. Este é um muito emocionante e este é um grande momento para o seu desafio desafios soviéticos para criar
a animação de escalada PARA importantes sprites em declínio de recursos. Corte-os e dimensione-os adequadamente. Crie uma transição de ociosidade e para execução. E finalmente criar um gatilho 40 transição. Então pausar o vídeo agora mesmo, eu dei a você todos os passos que você precisa. Eu quero que você tente o seu melhor. Então, vemo-nos daqui a pouco. Bem-vinda de volta. Então, como você se saiu com isso? Vamos em frente e fazer o desafio. Então a primeira coisa que faremos é entrar no nosso espírito do Congresso. E como eu disse, usaremos a queda e a animação de salto para criar nossa animação. Então isso vai ser um pouco complicado. E agora vamos para a nossa queda. Então a nossa falsa deve ser. Trinta e dois, e faremos múltiplos, mesmo não precisando fazer isso. Mas porque vamos cortar o xarope à nossa maneira. Então, o que é 58 por 58 aplicar? Nós só temos um sprite, e aqui também temos apenas um sprite. Então aplique isso. Não se esqueça de fazer 30, não 3416 cortado, aplicar. Correto. Então agora estamos prontos para usar esses dois. Então, vamos clicar neles, clicar com o botão direito do mouse e criar uma animação, e vamos chamar isso de forro. Então, subir a animação de volta à nossa pasta de animação, e vamos adicioná-la ao nosso animador, criará uma transição de qualquer link para escalada. E eles passaram da escalada para a marcha lenta
também desligarão a duração da transição em ambos. E vamos criar um novo parâmetro, que será um booleano. E chamaremos isso de escalada. Escalando. E agora vamos adicionar esta condição para de marcha lenta para escalada. A escalada deve ser verdadeira, e de escalada a marcha lenta, a escalada deve ser falsa. Guarde isso. Clique no jogo para colocá-lo em loop. Eu não tenho certeza. Vamos tentar. Então subir e parar porque não colocamos em loop, guarde isso de novo. E agora, se clicarmos na escalada, ele começa a subir, mas como podem ver, é super rápido. Então vamos em frente e brincar com nossa animação. Como é que fazemos isso? Então temos um tablóide de animação aqui que ainda não os usamos. Então, do animador à animação, e como podem ver aqui, temos essa escalada. Se clicarmos no jogador na hierarquia, temos o alargamento, temos a corrida, e temos a escalada. Se você clicar em qualquer um desses, por exemplo, ocioso, você pode ver que ele nos diz quais coisas mudam durante a animação. Por exemplo, aqui a coisa que está mudando é o sprite. Então nós podemos realmente pegá-lo quadro por quadro ou reproduzi-lo aqui mesmo. E podemos ver que o nosso jogador se move com a marcha lenta. E você pode ver cada quadro. E você pode ir para frente e para trás, torná-lo menor, torná-lo maior. Então vamos usar isso para escalar. Por que é o custo? Como você viu, a escalada é extremamente rápida e queremos abrandar um pouco. Então, como é que vamos fazer isso? Bem, vai daqui até aqui, então vamos adicionar outro. Então, copie isso. Clique em Controle C. Vá para o quadro onde você deseja colocar este sprite e Controle V. Ok, então agora temos esses dois. Bem, na verdade, vamos escolher os dois. Controlo-C, Controlo-V. E então novamente fonte três vezes. Vamos fazer um segundo. Ok, vamos ver como isso funciona. Clique no jogo. É um pouco primeiro ainda. Mas pelo menos ele faz isso várias vezes. E nós podemos realmente, vamos desmontá-los se escolhermos todos estes, e é isso que vamos excluir os dois últimos e escolher todos estes. E podemos espalhá-los por um segundo. E agora se clicarmos no jogo, será um pouco, algo dá errado, certo? Por que é isso? Porque o último quadro, bem, na verdade eles não estão espalhados corretamente, então vamos espalhá-los corretamente. Então isto está ligado para 68 no um. E o último quadro deve ser o mesmo que o primeiro quadro. Então, vamos colocar essa. E agora, se clicarmos em Play
, deve ser muito, muito pequeno. Então, um passo final antes de irmos, eu quero ir para o jogador. Eu quero ir para o animador na verdade, e eu quero remover o tempo de saída. Como você pode ver, temos algo aqui que se chama hora de saída. E isso é usado quando você deseja fazer a transição de volta a animação anterior ou ir para a próxima animação após um certo tempo. E nós não queremos isso agora, vamos usá-lo no futuro. Entre em cada transição e remova o tempo de saída. E estamos acabados. Então, vamos guardar isso. Vamos clicar no jogo e ver o que temos. Então temos o nosso jogador em marcha lenta. E se clicarmos em correr, ele começa a correr e nós amplicon de correr, ele pára e ele também sobe. Quão legal é isso? Sério, essa é a parte mais legal. E espero que tenha gostado do vídeo. Espero que tenha aprendido muito. E não se esqueça de salvar e do repo. E vejo-te no próximo vídeo.
22. Adição de colisões 2D: Bem-vindos de volta, pessoal. Só queria lembrá-lo do trabalho incrível que tem feito até agora. Neste vídeo, vamos adicionar um corpo rígido e um colisor ao nosso jogador, também
vai adicionar colisões ao nosso ambiente, como você pode ver aqui, que vai fazer ou não o nosso jogador para pousar na superfície do nosso primeiro plano. Então, agora, se clicarmos no jogo, nosso jogador realmente fica na superfície. Então vamos começar. Ok, então vamos começar adicionando um corpo rígido ao nosso jogador. Mas antes de fazermos isso, acho que é um ótimo momento para nós também. Jogador pré-fabricada. Então faça isso, vamos entrar em nossos ativos. Clique com o botão direito do mouse
e crie uma pasta, e nomearemos essa pasta prefabs. Vamos em frente e pré-fabricar nossa camada. Então agora temos um jogador pré-fabricada, o que é bom. Então, de volta ao nosso jogador. Vamos em frente e adicionar um Corpo Rígido à nossa camada. Então Corpo Rígido 2D. E vamos nos certificar de que temos isso como dinâmico, salvar isso e aplicá-lo ao nosso preferido. A maneira como fazemos isso à medida que vamos para substituir, clique em baixo e haverá uma aplicação o. Ok, ótimo. Antes de continuarmos, eu queria tirar um segundo e falar sobre corpos rígidos para mais uma vez. Então é um componente adicionado a um objeto de jogo que o submete. Dois não devem ser TPI, deve ser para física, forças do motor. E temos muitos tipos de corpo rígido 2D. Então temos dinâmica, que tem massa finita e é afetada pela gravidade e outras forças. Temos uma cinemática que não é afetada pela gravidade e outras forças. E temos estática que se comporta como um objeto imóvel. Oh, ok, ótimo. Agora, de volta à Unidade. E porque temos um corpo rígido, agora, se clicarmos no jogo, nosso jogador cai no chão. Não é muito útil, mas é um passo à frente. Então agora é hora do seu desafio. É importante para um desafio inicial, mas acho que você já cobriu. Então já falamos sobre colisões antes. Então agora é hora de adicionar o colisor apropriado ao seu jogador. Você precisa adicionar uma colisão ao ambiente. E você tem que se certificar de que seu jogador pousa na plataforma sem cair. Então pausar o vídeo agora mesmo se você sentir que você tem habilidades para fazer isso, F nada, espere alguns segundos e eu estarei com você. Oh, ok, então colisões, eles são muito úteis. Então vá para o jogador. Vamos fechar este corpo rígido. E vamos em frente e adicionar um colisor. Então acho que vamos adicionar um Box Collider 2D ao nosso jogador. E como você pode ver, nosso jogo ou nosso colisor de caixa é um pouco grande demais para o nosso jogador. Então vamos em frente e encolher. E você pode fazer isso como quiser. Depende de sua preferência para o ganho, quanto você quer fazer a vida Foxconn grande ou pequeno. Mas o que você precisa ter em mente é que seus pés devem estar tocando o fundo do colisor. Então, vamos torná-lo tão grande. E isso é simplesmente baseado em suas preferências. Eu gosto de mantê-lo apenas menor do que o seu tamanho real para tornar o jogo um pouco justo. Então, se você fizer o colisor de caixa maior, isso vai tornar o jogo um pouco mais difícil. E se você torná-lo menor, ele vai tornar mais fácil para seus jogadores. Então eu acho que isso é bom o suficiente. Então salve isso e, como sempre, vá para substituir e aplique-o ao prefab. Então, agora, se clicarmos no jogo, nosso jogador ainda cai. Por que é isso? Bem, porque não temos nenhum colisor em nosso primeiro plano. Então vamos e adicionar alguns para entrar em primeiro plano. E se você chegou a este ponto e não pôde continuar, se
preocupe com isso porque isso é algo que você estará adicionando um mapa de mosaico chamado mais leve. Então vamos para o mapa de pilha. E como você pode ver, todos os azulejos de primeiro plano foram, têm agora um colisor sobre eles. Mas o problema é que se você ampliar, você pode ver ou não. Mas se você ampliar muito, você pode ver que há um pequeno, minúsculo,
minúsculo espaço entre os colisores. E acredite ou não, isso causará problemas para nós mais tarde, especialmente se o jogador estiver se movendo ou caindo para baixo velocidade ativa muito rápida, ele pode passar por esses colisores. Então, como vamos consertar isso? Bem, há uma pequena solução que é chamada de um colisor composto para o, então vamos ver o que isso faz. Então colider composto para o, quando adicionamos isso, ele automaticamente adiciona um corpo rígido para o nosso primeiro plano. E o que isso faz, ele realmente deixa fechar isso. E se clicarmos aqui, se olharmos para o nosso colisor mapa de mosaico, podemos ver que temos uma caixa de seleção que é chamada usada por composto. E o que isso faz se clicarmos nele, você pode ver que todos os colisores estão agora em um único colisor, mas podemos vê-lo. Vamos fazer com que isto seja maior. Ok, então agora você pode ver que nós temos uma única linha de colisão em nosso primeiro plano. Então, agora, se guardarmos isso, oh, e há mais um problema. Bem, você deveria ter pensado nisso. Talvez você não tenha. Isso está tudo bem. Investi muitas vezes porque temos um corpo rígido no primeiro plano dela. Se continuarmos dinâmicos, todo o mundo estará caindo. Então precisamos transformar essa dinâmica em estática. Assim ele fica em seu lugar, aconteça o que acontecer, então salve que eles podem jogar. E agora nosso jogador gasta em nosso primeiro plano. Agora o jogo está se tornando cada vez mais realista. Então isso é ótimo. Este é um grande salto em frente. Mas há um outro problema, porque se clicarmos no nosso jogador e sentámo-lo aqui na borda e clique no jogo. Podemos ver que ele realmente cai de cabeça. E agora a animação é placas. Bem, é meio legal, sabe, mas não queremos isso. Então, a fim de evitar este tipo de comportamento do nosso jogador, nós podemos realmente entrar em nosso corpo não rígido, desculpe-me. Podemos entrar no nosso corpo rígido. E aqui em baixo podemos ver que temos algo chamado restrições. Então isso restringi o movimento do nosso jogador em certas rotações, para certas rotações. Então o que queremos é congelar a rotação no eixo z. Se você olhar aqui no topo do transporte, se usarmos a rotação z, o jogador R gira. Então este é o que vai congelar. Ok, ótimo. É que ainda está satisfeito. Precisávamos substituir aplicar tudo. E agora vamos fechar isso. Por que ele está me dizendo que eu preciso mudar meu colisor ou camada de bolo pode jogar, e agora nosso jogador está usando seu martelo. Não é muito realista, mas é um jogo de plataformas 2D e está tudo bem. Não precisamos que seja muito realista. Espero que tenham gostado do vídeo. Espero que tente fazer o desafio e te vejo no próximo.
23. Seção 4: movendo o nosso Conqueror Horizontally: Bem-vindo de volta a outro vídeo e início de um novo capítulo em nossa jornada de desenvolvimento de jogos. Neste vídeo, vamos começar a nos mover. Nosso jogador baseado na entrada do teclado usará a mesma fórmula que fizemos para o projeto anterior ou para o Cubo de Jogo mágico, mas com um toque diferente que veremos em pouco. Como podem ver, pressionamos a seta para a direita, ele se move para a direita. Passamos a seta para a esquerda, ele se move para a esquerda. o Certo, comootítulo sugere,
queremos manipular o comportamento do objeto do jogo. Então, o que é que isso precisa? Bem, isso precisa de um está correto e isso significa codificação, o que é muito emocionante e um pouco assustador. Então vamos em frente e adicionar um script à nossa camada, enquanto o nosso jogador, já o temos. Então vamos para Adicionar Componente e criar um script que vamos chamar simplesmente jogador. Aqui temos notícias corrompidas e criaremos e adicionaremos um script. Espere que ele entenda o que está acontecendo. E tudo bem, então vamos começar criando uma pasta. Uma das minhas coisas favoritas pessoais para fazer, aparentemente assim scripts, scripts, e vamos adicionar a camada em nossos scripts. Ótimo, vamos clicar duas vezes sobre isso. E vamos esperar que o Visual Studio se abra e entenda tudo. Ok, então eu queria fazer isso inicialmente, inicialmente desenhei o desafio mais tarde, mas eu acho que vou fazê-lo agora mesmo. Então, se você estiver pronto, você pode tomar a iniciativa e mover sua camada. A primeira coisa que você faz é importar um gráfico cruzado para entrada de
plataforma como ele pacote que eu forneci a você e os recursos. Em seguida, você cria um método de execução que é chamado de dentro da atualização. E então dentro de Ron use o corpo rígido para mover o jogador. E finalmente, adicione uma variável para controlar nossa velocidade. Então, é uma tarefa um pouco assustadora. Se você acha que tem habilidades suficientes, faça isso, vá em frente e pause o vídeo e experimente. Se não, e você acha que é uma montanha muito grande para escalar, espere por mim, eu farei isso na sua frente. E mais uma coisa se em algum momento você sentir que você pode continuar sozinho, eu recomendo que você pausar o vídeo e você fazê-lo. Então, vemo-nos lá dentro, grave-o. Ok, bem-vindo de volta. Então talvez você tenha tentado
adicionar a entrada entre plataformas a partir dos recursos que eu lhe forneci. Mas você também pode entrar na loja de ativos do Unity e procurar ativos padrão, que tem a entrada entre plataformas dentro. O que é entrada de plataforma cruzada? Bem, é algo que vamos usar em vez de entrada. E literalmente faz o que diz. O que nomeou isto? Bem, é entrada de plataforma cruzada. Isso significa que é através de várias plataformas. Então este jogo que estamos criando agora pode estar em um computador em um PC, ou talvez em um PlayStation 5 que está sendo lançado recentemente. Mas é claro, como este não vai ser um PlayStation cinco jogos, mas quem sabe? Talvez possas criar uma PlayStation 5 a partir destes gráficos simples. De qualquer forma, vamos em frente e importar o pacote multiplataforma. Então, basta ir para os recursos e arrastar o pacote de várias plataformas para os nossos ativos para, eu vou pedir você
quer importar tudo isso? Basta clicar, oh, o que é isso? Certo, não se preocupe com isso. Nós já importamos isso e o que precisamos como ativos padrão. Então vá em frente, procure por plataforma cruzada. Clique sobre isso e agora basta clicar em importar. Só precisa dos ativos de plataforma cruzada. E se você baixou os ativos padrão da internet, também escolha apenas a plataforma cruzada. Não há nada ruim para fazer bem se você importar tudo, mas por enquanto só precisamos da plataforma cruzada. Então espere que isso seja importado. E agora devemos ter uma pasta que é chamada pasta multi-plataforma. E vamos em frente e adicionar os extras 2D, que está sob o arquivo 7.15 qualquer coisa, em nosso ativo padrão para tornar tudo menos coeso. Como eu gostaria de dizer, guarde isso. Vamos voltar para o Visual Studio. E porque há uma modificação de arquivo detectada, ele irá pedir-lhe uma recarga. Simplesmente recarregue. Recarregar novamente. Não deveria mais fazer isso. Está tudo bem. Ok, então a primeira coisa que vamos fazer, vamos estar adicionando um usando multi-plataforma. Isso significa que no topo aqui. E não tenho certeza se já expliquei isso o suficiente. Estas são as bibliotecas que estamos usando. Por exemplo, o mecanismo Unity é a biblioteca para o início e a atualização e todas as outras coisas relacionadas ao Unity que usamos um script R. Então agora temos que importar a biblioteca multiplataforma e fazemos isso digitando
usando os ativos padrão Unity dot entradas de plataforma cruzada. Então agora temos acesso à entrada de plataforma cruzada. A próxima coisa que vamos fazer é criar um método de execução. Este seria um método privado. Não devolverá nada. Isso significa que é um vazio e será chamado de corrida. E o que devemos fazer dentro da corrida? Bem, vamos usar o método get-x e obter a horizontal. Então, bem, a primeira coisa que vamos fazer é colocá-lo dentro de uma variável. Então vai ser um carro alegórico. Vai ser, vamos chamar isso. Controle arremesso. E vai ser u usando em vez de entrada usará gerenciador de entrada de plataforma cruzada, eu diria grande palavra, mas é o que usamos em vez de entrada. Ele vai usar ponto get eixo. Agora, dentro do eixo get vai precisar de nome de string para nossas entradas. E onde vamos conseguir isso? Bem, vamos voltar para a unidade aqui. E se formos editar e procurarmos configurações do projeto, podemos ver que temos nosso Input Manager que se abre. E se você não tiver aberto, basta clicar em Input Manager. Então é aqui que temos nossas configurações de projeto. Há um monte de coisas aqui. Não precisamos de rever todos eles. Então, por exemplo, temos física 2D, que usaremos muito em breve. Mas, por enquanto, vamos nos concentrar no gerenciador de entrada. Temos este eixo aqui. E se clicarmos nisso, podemos ver que temos muitas opções. Então, e um deles é o horizontal. Horizontal como quando clicamos no a ou o, e isso é exatamente o que precisamos. Então, porque e aqui eles têm acesso precisa de uma referência de string. Bem, volte para o gerente de entrada. E toda vez que temos uma referência de string, nós sempre vamos e copiamos. Nunca assumimos que o escrevemos
corretamente porque nunca o fazemos e não conseguimos encontrar o erro. Então temos um arremesso de controle. E por que usamos uma variável flutuante para pegar isso importante? Porque eu vou demonstrar isso. Então, se clicarmos aqui imprimir e controlaremos a jogada, vamos imprimir e ver o que acontece. E isso não se esqueceu de chamá-lo no método de atualização. Então guarde isso de volta na Unidade. Isso é escuro aqui ao lado da nossa paleta de azulejos. E esse é, eu acho que é um bom lugar. E agora se clicarmos no jogo e clicarmos na esquerda, na seta para a esquerda, você pode ver que ele diminui o vai de 0 para menos um e depois volta para quase 0. E se clicarmos na seta para a direita, ele vai de 0 lentamente para um. E é por isso que precisamos salvá-lo dentro de uma variável para ter sempre controle sobre. Então, agora que temos, vamos apagar esta impressão aqui. Foi apenas para demonstrar como isso funciona. A próxima coisa que vamos fazer é criar uma velocidade de jogador do vetor tipo dois. Então vamos fazer isso primeiro pegando o corpo rígido. Então vamos criar uma variável aqui que é o corpo rígido. Então é um corpo rígido 2D, vamos chamá-lo de meu corpo rígido 2D. E anteriormente usamos, chamamos isso de variável pública e adicionamos do Inspetor. Mas agora vou te ensinar uma maneira muito melhor e talvez mais eficiente de fazer isso e casaco. A maneira como vamos fazer isso é no começo, vamos chamar nossa variável. E nós vamos atribuir a ele o corpo rígido que está atualmente sentado em nosso objeto de jogo jogador. Então vamos usar get componente, que recebe um determinado componente. E esse componente é, bem, é um corpo rígido para D. E é assim que está escrito. Agora temos uma referência ao nosso corpo rígido, para o, vamos em frente e mudá-lo e correr. Então, vamos clicar aqui. É o meu corpo rígido 2D. Mas antes disso, crie uma variável para a velocidade do nosso lugar. E essa variável vai ser um vetor dois. Vamos chamar essa velocidade de jogador. Velocidade. E exibição ou velocidade será igual a um novo vetor dois. E vamos nos mover, estamos nos movendo no eixo horizontal. Então só vamos mudar a velocidade na direção x ou horizontal. Então isso irá adicionar os controles de jogar para o eixo x e 240 y simplesmente
irá mantê-lo como o meu corpo rígido ponto velocidade ponto y. Então, na direção y, a velocidade não vai mudar. E finalmente, vamos atribuir a velocidade do meu corpo rígido 2D ponto
será igual à velocidade do jogador que criamos atualmente. Então guarde isso. Vamos voltar para a Unidade e ver se fizemos alguma coisa corretamente. Então clique aqui, são quedas jogador. Se você mover para a esquerda, ele lentamente se move para a esquerda. E se nos movermos para a direita, ele também lentamente, muito lentamente se move para a direita. Oh K. Excelente. Como você viu, ele se move muito devagar e precisamos consertar isso. E para fazer isso, vamos criar aqui uma variável para a velocidade de Ron. Então vamos em frente e criar algo que chamamos de campo serializado que é muito assustador. Umas palavras extravagantes que você usa Michel. Não se preocupe, vou explicar o que é isso. E campo serializado é como público, onde podemos alterar a variável do nosso Inspetor. Mas a única diferença é que podemos manipular essa variável de um script diferente. Ok, então nós usamos funções públicas para mudar, para usar funções de scripts diferentes, nós podemos realmente usar campo serializado para mudar variáveis. E eu não acho que vamos usá-lo muito, mas digamos,
por exemplo, que você queira mudar a velocidade do seu jogador,
por exemplo, dependendo da plataforma em que você está parado,
você pode ir em frente e fazer isso usando o campo serializado. Ok, pequena explicação. Vamos continuar. Vamos fazer dessa velocidade de corrida um carro alegórico, e vamos chamar isso simplesmente em torno de velocidade. E qual deve a velocidade do fio B. Podemos realmente fazer alguma coisa. Vamos tentar dez. E nós vamos multiplicá-lo com a linha de controles bem aqui. Então velocidade R1, não Trump, na verdade correu Speed. E agora, se voltarmos para Unity e clicarmos no inspetor e clicar no jogador, agora podemos ver que temos uma velocidade de corrida de rendas de dez. Então vamos para o modo de jogo. Podemos nos mover agora com uma velocidade de dez e podemos realmente aumentar isso para 100 C. O que acontece? E o nosso jogador, o que você viu para ver o que acabou de acontecer? Vês como o nosso jogador desapareceu? Mas na verdade você ainda pode vê-lo bem aqui no canto inferior esquerdo. Não se preocupe com isso. Vamos ver mais alguns exemplos disso, mas vamos corrigi-lo mais tarde nos outros vídeos, então espero que você goste. Esta é a parte em que o nosso jogador ganha vida e
começamos a manipulá-lo usando código e tudo é divertido. Tudo é muito legal. Espero que goste e vejo-te no próximo vídeo.
24. Flipping aos jogadores: Bem-vindos de volta a todos. Nosso jogador agora se move no jogo. Mas o problema é que ele faz uma caminhada na lua. Então, sempre que estamos nos movendo para trás, ele não vira p simplesmente faz uma caminhada na lua. E não queremos isso. Neste vídeo, vamos estar lançando os jogadores ou se clicarmos no jogo, podemos ver que sempre que nos movemos para a direita, vamos para a direita. Mas quando começamos a nos mover para a esquerda, nós realmente viramos o nosso jogador. E agora ele se move em direção e realmente olha na direção em que está se movendo, a correta. Muito excitante. Não vamos perder tempo e vamos entrar e começar. Certo, então como vamos virar a camada na direção em que ele está se movendo? A primeira coisa que vamos fazer é aplicar todas as nossas alterações à pré-fabricada. Então, se olharmos de perto para o nosso jogador, podemos ver que ele se move para a esquerda e para a direita, mas ele não vira. Como vamos fazer isso? Se você subir em nossa transformação, você pode ver que temos posição, rotação e escala. Então escala, se aumentarmos a escala do nosso jogador na direção x, você pode ver que ele fica maior e maior, mais lisonjeado e lisonjeado. Mas se reduzirmos 2,30, ele fica menor. Mas o que acontece se formos além do 0? Se você for para o território menos, podemos ver que o nosso jogador vira. Então, no minus1, nosso jogador está virado para a outra direção. E é isso que vamos fazer. Mas em nosso código, dependendo da direção em que nosso jogador está indo. E faremos isso usando matemática, mas não muito difícil. Se você não gosta de matemática
, será matemática simples. Oh, ok, então agora vamos para o nosso Visual Studio e vamos em frente e criar uma função que chamaremos de vazio privado. Philip, sprite, roteiro, sprite. Então temos flips brilhantes e estamos prontos para ir. Então vira para a direita? Antes de começarmos, preciso explicar dois conceitos. Primeiro de tudo, aplicativos de ponto matemático. Espero que se lembre da escola o que significa valor absoluto. Significa que retorna o valor absoluto de algo. Então, por exemplo, se tivermos matemática dot abs menos quatro, ele retorna quatro e matemático dot seno. Então, o que não está assinado? Ele retorna o sinal de um determinado número. Isso significa que se tivermos matemática seno menos quatro, temos menos um como resultado. E se temos sinais de metal para, temos mais um como resultado. Então esta é uma visão geral rápida da matemática da primeira série ou algo assim. Vamos voltar e vamos em frente e criar um booleano. Então vá para o Visual Studio. Então, neste, vamos criar um booleano que nos
dirá se o nosso jogador está realmente se movendo. Então vamos em frente e criar uma placa que estará correndo hoary, longo, correndo horizontalmente. Mas certeza se horizontalmente leva duas horas ou apenas uma, ou realmente se apressa no a não está no lugar certo ou K. Então horizontalmente é igual a matemática ponto valor absoluto, meu corpo rígido para o ponto velocidade ponto x. agora você pode estar se perguntando por que estamos usando o valor absoluto da velocidade de nossos corpos rígidos? Bem, porque estamos nos movendo na direção esquerda, nossa velocidade é negativa. E estamos, quando estamos nos movendo na direção certa de nossa velocidade é positiva. Então precisamos tomar o valor absoluto para ter certeza que sempre sabemos quando nosso jogador está se movendo. E para fazer esse booleano, porque agora não é booleano. Vamos verificar se é maior do que, espere. Agora,
novamente, Michelle, mais cedo usando palavras muito assustadoras. O que é matemática dot epsilon. Então, primeiro de tudo, quando digitamos math.pi f, isso significa que estamos acessando a biblioteca de matemática onde
temos um monte de funções e um monte de métodos, ferramentas. E epsilon não é um método nem uma função. É um, um número pequeno, um número muito,
muito pequeno, como por exemplo, para 04 ou cinco zeros depois dele e um. Então por que estamos usando Math.pi epsilon y não simplesmente comparado com velocidade igual a 0? Se você se lembra no vídeo anterior quando tentamos imprimir o lance de controle, você pode lembrar sempre que fomos para a esquerda, ele é lentamente movido de 0 para menos um. E então ele voltou para menos 0,00009. Nunca voltou ao absoluto 0. É por isso que estamos usando matemática f dot epsilon em vez de simplesmente usar 0. A próxima coisa que vamos fazer é usar uma condição “if”. Então, se correr horizontalmente e dentro desta condição se, eu vou te dar um desafio. Seu desafio é completar a declaração if. Então, vamos virar o sprite do Jogador com base na direção em que eles estão se movendo. E vamos, eu vou te dar um par de mãos. Um usará a escala local de ponto Transform, e é assim que você acessa a escala de um objeto de jogo. E você estará usando, use matemática F ponto seno para determinar a direção em que o nosso jogador está se movendo. Pause o vídeo agora mesmo, dê a ele sua concentração total, sua capacidade de pensamento completa, e faça o desafio. Vejo-te daqui a pouco. Ok, bem-vindo de volta. Então, o que devemos escrever dentro da nossa condição “se”? Então sua transformação? Porque precisamos de acesso à AAC transforma a escala local. E essa escala local, na verdade, é um vetor também, porque é 2D. Então vamos usar a escala no x e y. então envie o novo vetor dois. E o que deve ser certo para a escala x e Y deve permanecer o mesmo. Isso significa que vai ser um F maiúsculo. Mas o que deve o XP, enquanto o X estará dependendo do pingente na direção. Então vamos escrever metanfetamina F dot seno porque depende do sinal da direção. E que direção é essa? Não é o meu corpo rígido ponto velocidade ponto x. então agora guarde isso. Então agora, se nosso jogador estiver se movendo para
a direita, a velocidade será positiva, o sinal será positivo, nossa escala permanecerá uma. Mas se os jogadores velocidade para a esquerda, isso significa que a velocidade é negativa. Isso significa que o sinal é menos1, e isso significa que nossa escala local, x será menos um. Então vamos ver se isso funciona. Guarde isso e um pequeno desafio que vou lhe dar agora. Onde usamos esse flip sprite? Onde devemos colocá-lo dentro do nosso código para virar o nosso jogador? Dou-te um segundo para pensares nisso. Um Mississippi, dois, Mississippi, três, Mississippi. Ok, o tempo acabou. Está dentro do R1 porque só estamos usando o flip sprite sempre que estamos. Produto. Poupe isso, volte para a Unidade. Vamos sair da câmera. Clique no jogo. E agora, se avançarmos para a direita, para a direita. Se clicarmos na seta para a esquerda, nós realmente viramos. E quão legal é isso? Oh, ok, ótimo. Espero que tenham gostado do vídeo. Espero que tenhas feito o desafio e vejo-te no próximo.
25. Como desencadear animações do código: Bem-vindos de volta a um novo vídeo. E este vídeo vamos mudar o estado dos nossos jogadores a partir do nosso código. Como podem ver agora, temos o nosso jogador em estado ocioso, ocioso assim que começarmos o jogo. E se o movermos para a esquerda ou para a direita, você pode ver que seu estado muda para correr. E se pararmos, ele volta para o estado ocioso. Então não vamos perder mais tempo e vamos começar. Ok, então vamos começar primeiro de tudo, reexplicando o que está acontecendo em nosso animador. Primeiro, vamos torná-lo um pouco maior e zoom. E então a primeira coisa que precisaremos fazer anotações é aqui na entrada. Desde a entrada, temos uma transição diretamente para o ocioso. E o que isso significa é que assim que nosso jogo começa, vamos diretamente para a animação ociosa. E a partir daí temos duas opções ou dois estados para ir. Nós temos o estado de corrida e nós temos o estado de escalada, e ambos têm transição de e para. Então, por exemplo, para ir de marcha lenta para escalada, podemos ver que temos essa linha de seta branca que tem uma condição nela. E essa condição é para um booleano ser um booleano chamado escalada para ser verdade. E, a fim de voltar do estado de escalada Conde ou animação, esta escalada, uma condição precisa ser falsa. E o mesmo vale para correr. Assim, a transição de ociosidade para execução precisa um certo booleano para ser verdadeiro e voltar do estado em execução, precisamos de uma determinada variável ou parâmetro que está sendo executado para ser falso. Então, como vamos fazer isso usando nosso código? Bem, em primeiro lugar, como os parâmetros estão presentes no nosso animador, o que precisamos fazer é obter uma referência aos nossos inimigos. Então vamos para o Visual Studio e tentamos fazer exatamente isso. Então aqui estamos no nosso Visual Studio. A primeira coisa que precisamos é de uma referência ao nosso animador. E faremos isso da mesma maneira que fizemos para obter uma referência ao nosso corpo rígido. Então vamos em frente e criar uma variável para nossos inimigos. Então vamos criar um metal NA. E ele pode falar, por favor. Então um animador chamará isso de meu animador. E usaremos o componente get para obter uma referência ao nosso animador. Então pegue o animador de componentes e feche isso. Guarde isso. Ótima. Então agora temos um referenciado nossos inimigos. A próxima coisa que precisaremos fazer. Primeiro, vamos nos concentrar na corrida. Então, como vamos mudar de marcha lenta, enquanto que, assim, de ociosidade para corrida, como vamos mudar isso? Bem, vamos ter que definir o booleano porque sabemos que é um booleano. Vamos voltar e correr. Quando nós. Comece a correr. Vamos em frente e entrar no estado de corrida. Então vamos fazer isso usando meu animador, que é nosso ponto de referência. E tem vários métodos anexados a ele. E um deles é o conjunto Bool, e isso nos permite enviar uma referência. Na verdade, tem duas maneiras de dar parâmetros. O segundo caminho é o nosso caminho, que lhe dá uma string e o valor booleano que queríamos ter, o nome de referência String e o valor bool que pode ser verdadeiro ou falso. Então vamos fazer isso. A primeira coisa que precisamos do nome da string. E porque é uma referência de string simplesmente vai voltar para o Unity, clique duas vezes e copie essa referência. Porque, como sabemos, sempre que temos uma referência de string, nós sempre, sempre vamos e copiamos. E agora precisamos definir o valor para isso. E é claro que vai ser verdade. Agora, esta não é a solução final de forma alguma, mas isso demonstrará como funciona o conjunto de set no meu animador. Então vamos voltar para a Unidade e ver se funcionou. Se clicarmos no jogo aqui, nosso jogador vai para a animação em execução. É bom. Não é ruim. Pelo menos sabemos que está funcionando, mas não é assim que queríamos. Queríamos voltar à marcha lenta sempre que parássemos o estado de corrida. Então esse será o seu desafio. E seu desafio é parar a animação de corrida. Então você precisa adicionar ao nosso método de execução uma maneira de parar a animação em execução. E isso significa voltar para a marcha lenta. Portanto, ele deve permanecer verdadeiro enquanto o jogador está em execução e falso quando o jogador pára. Use o código que criamos ao virar o local. Então pausar o vídeo agora mesmo e ir em frente e fazer o desafio. Ok, bem-vindo de volta. Então, como você se saiu com isso? Espero que não tenha sido muito quente ou espero que tenha sido pelo menos um pouco desafiador. Então vamos ver o que precisamos fazer. Bem, porque eu disse que você vai precisar usar algo do método flips brilhante. Vamos verificar se o nosso jogador está mesmo a correr. E vamos fazer isso simplesmente copiando a seguinte linha, que verifica se o nosso jogador tem uma velocidade no plano horizontal. Então agora temos um booleano para correr horizontalmente. E o que podemos fazer, porque isso é realmente um booleano e é verdade sempre que o jogador está correndo e falso se o jogador não está correndo, nós podemos configurá-lo diretamente aqui e nosso animador. Então o fígado substitui isso por não, desculpe, quero dizer, correr, correr horizontalmente. E vamos dar mais um passo. E isso é extrair este método, método e para um externo porque é apenas um pouco diferente. Vamos chamar isso de mudar para o estado de execução. E agora salvamos tudo isso. Temos uma mudança para o estado de corrida que verifica se nosso jogador está se movendo no plano horizontal e se ele está, isso significa que a nossa corrida horizontalmente é verdadeira. Isso significa que o nosso animador define a corrida como verdadeira. E se ele não estiver correndo, essa corrida horizontal será falsa. E, portanto, nosso animador de repente estará correndo para falso. Então vamos em frente e ver se funcionou. Clique no jogo. Nosso jogador está inicialmente na animação ou estado ocioso. E agora, se formos para a esquerda, ele começa a correr. Se pararmos, ele pára e volta à marcha lenta, vai à taxa. Então esta é a base de controlar nossas animações de nosso código. Nós montamos nossa máquina do estado. Temos parâmetros que podemos acessar em nosso código. Quando uma coisa em particular acontece, podemos manipular esses parâmetros usando nosso código e alterar o estado do jogador. Espero que tenha gostado do vídeo e te vejo no próximo.
26. Adição de sua habilidade para PULAR !: Bem-vindos de volta, meus desenvolvedores de jogos favoritos. Neste vídeo, vamos adicionar a capacidade de ou jogador dois saltos. Então, como você pode ver, ele agora pode alcançar plataformas que eram inatingíveis antes. E ele pode saltar de uma plataforma para a outra. E como você pode ver, é muito ágil, é muito emocionante e vai ser muito, muito divertido. Então não vamos perder mais tempo e vamos pular e pegar k's. Então, primeiro, eu quero falar sobre a mecânica de salto e como eles são. Então a mecânica de salto será um pouco diferente da mecânica de corrida. Por que é isso? Bem, porque correr é diferente de saltar. Porque quando corremos nós realmente pegamos velocidade lentamente. Mas quando
saltamos, tecnicamente imediatamente temos uma velocidade para cima. Então eu só quero mostrar a vocês como nossa velocidade realmente aumenta. Então, se nós imprimir a velocidade da camada em nosso console agora, vamos em frente e tentar isso. À medida que começamos a correr sem jogador, você pode ver que é 00 quando começamos a correr para a direita em incrementos lentamente de 0 para 9.79.8 e, eventualmente, para dez, então volta para 0. E o mesmo vale para quando clicamos na seta para a esquerda. Mas não queremos que seja o nosso jogo. Nós realmente queremos que nossos jogadores saltem imediatamente assim que
pressionamos a barra de espaço ou qualquer botão que gostaríamos de ser processados. E vamos fazer isso usando um tipo diferente de função do que o acesso get será usando o botão de entrada dot get. Então, se você ler a descrição aqui, você pode ver que ela retorna um verdadeiro. Então é um booleano, ele retorna um verdadeiro durante a chama, o usuário pressionou o botão virtual identificado como nome do nascimento. De qualquer forma, o que você precisa tirar disso é que imediatamente transforma algo em verdadeiro e depois volta a falso se pressionarmos um botão, e é isso que vamos usar. E, claro, em vez de entrada será usando o gerenciador de entrada de plataforma cruzada. Porque como nós, como dissemos antes, queremos que este seja um jogo multi-plataforma. E vamos entrar e começar com isso. Então a primeira coisa que vamos fazer é remover este pai porque ele fez seu trabalho, está terminado o serviço. E nós vamos criar uma função ou um método aqui, que vamos chamar simplesmente saltar. E agora, se
guardarmos isso, temos a opção de extrair. Temos uma pequena lâmpada à esquerda. Clique nele e clique em gerar método. Não se preocupe com o que já está escrito dentro dele. É um método de vazio privado, tal como queremos. Então, o que vamos fazer? Bem, a primeira coisa que vamos fazer é usar um óleo, criar um booleano. Booleano vai ser chamado, está saltando e que está saltando vai obter uma entrada do gerenciador de entrada de plataforma cruzada. E vamos usar a função que acabamos de descrever, o botão de obter para baixo. Então vamos abrir, eles estão abrindo e podemos ver que ele leva uma referência de string como uma entrada. Então vamos em frente e encontrar a referência de string do salto e colocar. Entramos em configurações do projeto que está encaixado aqui à direita. Então clique nisso, faça isso um pouco maior. E vamos rolar para baixo e ver onde temos o salto. Lá está ele. Então é Jump e é positivo botão é espaço. Então vamos copiar isso porque é uma referência de string. E como já dissemos antes, sempre que temos uma referência de string, nós sempre, sempre, sempre vamos e copiamos. Então agora temos o está pulando booleano conjunto e pronto. A próxima coisa que precisamos fazer é adicionar velocidade ao nosso jogador na direção y. Então vamos em frente e fazer isso. Então vamos criar uma condição “if”. E se está pulando. Isso significa que se o nosso jogador pressionou o botão de salto criará um vetor. Dois nomearão esta velocidade de salto. E essa velocidade de salto será igual a um novo vetor dois. E na direção x só terá o meu, Eu estou no meu corpo rígido. Então meu corpo rígido 2D ponto velocidade ponto x. e na direção y, vamos querer adicionar uma velocidade, uma velocidade para saltar. E isso dependerá da sua preferência. Pode ser cinco, pode ser dez, pode ser 20. E sempre que temos essa variável, quando temos algo que é variável, é muito melhor criar uma variável para ela, assim como fizemos aqui abaixo para a velocidade de corrida. Então vamos para o topo e criar um campo serializado. E campo serializado é algo que podemos ajustar a partir de scripts diferentes. Talvez não precisemos agora, mas vamos fazer disso um campo serializado. Então ele diz flutuar, flutuar, e nós vamos chamá-lo de velocidade de salto. E inicialmente vamos em frente e fazer 1515 F porque é um flutuador. Então 15 F. E vamos adicioná-lo à nossa velocidade de salto. Ok, ótimo. E como passo final, precisamos adicionar essa velocidade,
salto, minha velocidade rígida do ponto do corpo. A velocidade é igual ao nosso salto. Pular. Velocidade. Oh, ok, ótimo. Então guarde isso. Vamos voltar para a Unidade e ver se funcionou. Faça isso um pouco menor. Clique no jogo. E agora vamos para a esquerda e para a direita. E se pressionarmos o botão de espaço, podemos ver que saltamos. Mas esse salto é um pouco flutuante como você pode ver, mas pelo menos dizer começar. É um grande salto em frente no desenvolvimento do nosso jogo. Certamente obtê-lo, salte para a frente. Ok, eu não vou fazer essa piada de novo. Então vamos ver o que podemos fazer para tornar este jogo um pouco mais rápido. Então, podemos ver aqui que temos uma opção física 2D e nossas configurações de projeto. E o que isso nos permite fazer é nos permitir ajustar a física 2D do nosso motor Unity. E temos muitas, muitas opções para ajustar. Temos velocidade máxima de rotação, temos velocidade de tradução, temos correções angulares. Temos um monte de coisas aqui. Vou deixar um link nos recursos para ir verificar a física 2D na documentação da unidade, você pode entrar em cada detalhe que quiser. Mas, por enquanto, só estamos interessados na gravidade aqui. Como você pode ver, nossa gravidade atualmente na direção x é 0. Na direção y, é menos 9.81, que é exatamente a mesma gravidade que temos aqui em nosso planeta. Então, se clicarmos no jogo e
saltarmos, podemos ajustar isso aqui mesmo. Então, se conseguirmos, por exemplo, menos 27, agora se
saltarmos, não saltaremos tão alto quanto antes. Então é aqui que começamos a ajustar nosso salto dependendo de quão alto e rápido queremos que nosso jogo seja. E um pequeno lembrete sempre que terminarmos de ajustar algo em nosso modo de jogo, se desclicarmos do jogo, veja que ele volta ao seu valor original. Portanto, tenha isso em mente, porque você precisa lembrar o valor que você escolheu quando você estava no modo de jogo. E isso nos leva direto ao nosso desafio e ao nosso desafio, ou seu desafio é ajustar seu salto. Então junho a gravidade e velocidade de salto para fazer o salto mecânico ao seu gosto. E baseia a tua afinação em quantas peças queres que o teu jogador seja capaz de saltar. Então você pode fazer isso totaliza três telhas, você pode torná-lo o melhor e mais alto jumper e todo o mundo. Depende unicamente de sua preferência e como você quer fazer o seu feed ganho. Então, pausar o vídeo agora mesmo e vá em frente e faça o desafio. Ok, bem-vindo de volta. Espero que não tenha sido muito difícil. Espero que goste desse tipo de desafio. Então, vamos clicar no jogo e ver o que o nosso jogador faz. Então nos movemos para a esquerda e para a direita e pulamos. E esse salto é um pouco também. Náusea pense. Então vamos fazer esta gravidade 100 e agora é um pouco mais ágil. E, a fim de ajudar o nosso jogador Champollion, vamos clicar no jogador, ir para o seu inspetor e vamos fazer a velocidade de salto. Acho que 50. Então vamos ver 50. Agora o nosso jogador salta e você pode ver que ele realmente desaparece abaixo da plataforma, que não é bom. E nós enfrentamos esse problema antes, como você pode se lembrar de, Eu acho que foi quando adicionamos o Irã falar com ele. Precisamos consertar isso antes de continuar. Eu não sei se você enfrenta esse tipo de problema enquanto faz o desafio. Espero que não tenha feito. E não é muito difícil, na verdade. Se entrarmos no corpo rígido de nossos jogadores, você pode ver aqui que temos algo chamado Detecção de Colisão. E está atualmente em discreto. E se clicarmos na lista, podemos ver que temos outra opção que é contínua, e isso é o que vamos escolher para todos os jogadores. Agora, o que isso significa? Bem, discreto é ele verifica se há colisões cada certo período de tempo enquanto contínuo é, como diz,
ele está continuamente verificando se há colisões a cada, eu acho que microssegundo ou milissegundo, eu não tenho certeza, mas discreto é, por exemplo, cada um ou dois segundos ele verifica se há uma colisão. E as verificações contínuas constantemente, constantemente para colisões. Por que temos a opção discreta? Porque podemos não ter um corpo que seja muito rápido ou, por exemplo, um pássaro em movimento lento ou algo que não precise de uma colisão contínua com as coisas ao seu redor. Mas se temos algo como o nosso jogador, por exemplo, aqui que tem uma gravidade que é 100. Ele cai através do nosso mundo. Então vamos torná-lo contínuo. Contínuo é um pouco mais pesado no processador da unidade, mas está tudo bem, podemos lidar com isso, tenho certeza. Então clique em aplicar, volte para projetos. Isso é fazer isso, vamos fazer esta gravidade 200 porque eu acho que nós precisamos que ele seja 200. Vamos fazer a velocidade de salto 50. Guarde isso, volte para o modo de jogo e veja se isso é bom. Ele realmente se sente bem. Então vamos ver. Acho que pode precisar de cair no chão. Acho que a gravidade é perfeita. Vamos ver se queremos fazer com que eu acho que é o suficiente. Acho que 54 a velocidade de salto é perfeita. Espero que sintonize isso com a sua preferência. Você não tem que fazer isso igual a mim. Você pode ter o que quisermos. É o seu jogo, são as suas preferências e vê-lo no próximo vídeo.
27. Tweaking Tweaking usando Tweaking ((): Bem-vindos de volta a um novo vídeo. E neste, vamos consertar nossa mecânica de salto. Então, como você se lembra, talvez no vídeo anterior, sempre que tentamos saltar sem jogador, poderíamos saltar duplo e triplo salto e saltar para o infinito. Mas neste vídeo estamos consertando tudo isso. E agora o nosso jogador só salta quando está a tocar em primeiro plano. Então, se tentarmos saltar várias vezes, só
podemos fazer com uma vez. E isso é mais realista, mais favorável. E vejo-te daqui a pouco. Ok, então o que queremos é que nossos jogadores saltem apenas quando estamos tocando o primeiro plano. Tão susto. Agora, se usarmos o nosso jogador, podemos saltar várias vezes, o que não é bom. Queremos apenas ser capazes de saltar sempre que estamos tocando o primeiro plano. E faremos isso usando camadas. Então, se entrarmos em nosso primeiro plano, podemos realmente ver que temos camada bem aqui no padrão, e na verdade tudo está atualmente em padrão, mas vamos mudar isso. Então a primeira coisa que vamos fazer é ir para a camada, clicar aqui, e você pode ver que nós temos esta camada add bem aqui. Quando clicamos nisso, temos a opção de adicionar muitas camadas. Então a primeira coisa que vamos fazer é criar uma camada e vamos chamá-la de terra. E agora temos uma camada de terra. Agora, qual é a diferença entre uma camada, uma camada de classificação e camada e imposto. Bem, camadas são usadas sempre que temos vários tipos de, digamos colisões quando queremos controlar o que colide com outra coisa e como a física de diferentes objetos interagem com você viajar. Uma camada de classificação é usado para renderizar coisas com base em que camada de classificação eles estão em. Então, se você quiser, por exemplo, usamos a camada de classificação para renderizar o plano de fundo atrás do primeiro plano e atrás do player. E, finalmente, as tags são apenas uma etapa extra da organização. Quatro camadas, eles são usados no código. Se temos, digamos que o jogador pode ser, pode ter, uma camada, terá uma camada para o jogador, é claro. E se ele tem uma camada, talvez queiramos que ele interaja com objetos diferentes de maneiras diferentes, e é aí que usamos tex. Ok, então vamos demonstrar como a Caçadora funciona. Se entrarmos na câmera, você pode ver que temos algo aqui chamado máscara de chamada, que renderiza tudo. Podemos desligar isso,
desligar o chão. E não atribuímos o terreno ao primeiro plano. Agora primeiro plano tem, está no nível do solo, na camada do solo. Guarde isso, volte para a câmera, volte para a vista do jogo. E podemos ver que tudo sob a camada do solo, que é nosso primeiro plano agora, não é renderizado. E se voltarmos a ligar isso, podemos ver que podemos ver o primeiro plano novamente. Ok? Então. Agora precisamos de uma maneira de nossos jogadores saberem que estamos tocando a camada do solo. E é claro que vamos usar isso através do colisor porque o colisor é a principal coisa que mantém nosso jogador em primeiro plano. E nós vamos fazer isso usando algo chamado um colisor para d ponto é tocar camada. Então, o que essa função faz? Bem, ele retorna um booleano sempre que este colisor, Collider 2D, que será o colisor jogador, está tocando qualquer colisor nesta máscara de camada específica. Então, o que é essa máscara de camada? É algum, é um inteiro que é colocado dentro da camada de toque. E nos diz qual camada somos. Então, como vamos usar essa máscara de camada? Enquanto felizmente temos uma função que é chamada de máscara de camada ponto obter máscara. E isso nos permite realmente escrever ou obter uma referência de string do nome das camadas. E ele retorna um inteiro, a máscara de camada criada a partir do nome da camada. Então temos o nome da nossa camada. Colocamos dentro da máscara de camada. Nós o usamos para, colocamos dentro da máscara do gueto que é usado pela máscara de camada. E colocamos tudo isso e sentamos dentro de uma camada de toque para ser usada pelo colisor. Então vamos fazer algo um pouco diferente agora porque é hora do seu desafio. E seu desafio é parar o salto maltês. Então você vai precisar usar o ponto 2D colider está tocando camadas. Você precisará usar o ponto de máscara de camada GetMax, nomes de
camada que devem ser moídos. É uma mão pequena. E teremos que completar a lógica e parar o jogador de multi salto. Eu conheço esse desafio, mas cedo não mostrei como é feito, mas dei todos os recursos que precisam, e dei a vocês todos os exemplos e métodos. Então pausar o vídeo agora e dar esse ego desafio. Kay, bem-vinda de volta. Como é que entraste nisso? Então, a primeira coisa que precisaremos é entrar em nosso Visual Studio. E antes de começarmos, eu sei que eu disse a vocês que precisaria de uma referência para nosso colisor porque os colisadores são os componentes que usam a camada de destruição. Então vamos em frente e obter uma referência para o nosso colisor. Sabemos que o nosso jogador tem um colisor de caixa nele. Então vamos fazer isso. Vamos criar uma variável que é um Box Collider 2D t. E vamos chamar isso de meu Box Collider 2D. E vamos usar no Start, My Box Collider 2D será o componente Box Collider 2D que está na grade Player O K. Agora, por que ele está me dizendo isso? Digitei meu corpo rígido por engano, com licença. Então é o meu Box Collider, 2D ou k. ótimo. Então agora o que precisamos fazer é evitar esse método de salto seja executado a menos que estejamos tocando o chão. Então, como vamos fazer isso? Faremos isso usando uma condição “if”. Então, a primeira coisa, vamos digitar se e abrir os colchetes e o que devemos escrever dentro dele? Então vamos precisar escrever dentro dela. Meu ponto Box Collider 2D está tocando camadas. E dentro dessas camadas tocantes, vamos escrever máscara de camada porque, como você vê, ela está nos pedindo uma máscara de camada. Nós digitamos em máscara de camada, ponto, obter máscara e abrir os colchetes. E agora você pode ver que ele está nos pedindo uma referência de string. E eu já posso te ouvir. Está me dizendo que se tivermos uma referência, precisamos ir à Unidade e copiá-la. Então eu vou fazer, como você pede, nós vamos para as camadas, nós copiamos o chão mesmo que seja uma palavra muito fácil, mas você tem que entrar no acontecer de fazê-lo. Então, agora abrimos os suportes e o que deve estar dentro dele? Bem, vamos ver. Podemos fazer isso de duas maneiras. Primeiro de tudo, podemos pegar todo esse código aqui e colocá-lo dentro desses dois colchetes. E sempre que estamos tocando, a camada de terra executará o código. Mas há uma maneira diferente e uma maneira muito mais suave. Então, esse caminho é, antes de tudo, vamos adicionar um ponto de exclamação logo atrás desta declaração. E o que esse ponto de exclamação
faz, anula o que está na frente dele? A condição dentro deste aqui é falsa. Ele executará o que estiver dentro dos colchetes. Digamos que não estamos tocando o chão. Isso significa que este é tocar camada retorna falso. E porque temos um ponto de exclamação logo atrás dele, faz com que toda esta afirmação seja verdadeira e executa algo dentro desses colchetes. E o que está dentro desses suportes? É algo que você nunca viu antes. Talvez, talvez você saiba, mas ele vai realmente voltar. Nós usamos o retorno antes na seção anterior. E o que esse retorno, aqueles sem nada, realmente nos tira do nosso método de salto. Então, sempre que escrevemos retorno sem nada ao lado dele, ele simplesmente salta para fora da função de salto e continua na atualização ou em qualquer lugar, onde quer que ele queira continuar. Então guarde isso. E vamos ver se isso realmente funciona. Então vamos voltar e para a nossa unidade e clicar no jogador. Isso significa menor. Clique no jogo. E agora enquanto nos movemos, nos movemos, saltamos. Mas se saltarmos em dobro, não
podemos mais pular em dobro porque não estamos tocando no chão atualmente. Mas há um problema aqui. Como pode ver, ficamos presos na parede. Então, se eu for ao lado de uma parede e eu continuar a clicar no botão esquerdo, você pode ver que a seta para a esquerda, você pode ver que estamos presos à parede e irá corrigir esse problema mais tarde. Outra coisa é que temos salto duplo. Se estamos tocando uma parede e isso não é desejável, vamos corrigir isso no próximo vídeo porque este está ficando um pouco longo demais. Vejo-te no próximo.
28. Como prevenir o salto: Bem-vindos de volta a outro vídeo. Então, como você pode ver aqui, sempre que clicamos no jogo, temos dois problemas sem jogador. Primeiro de tudo, se saltarmos ao lado de uma parede e continuarmos pressionando a seta para a esquerda ou o botão a. Podemos ver que ele fica preso na parede. Esse é um problema de fricção. E o segundo problema aqui é que se pudermos pular duas vezes na parede para que você possa ver, ele não toca no chão e ainda assim ele pode pular. Ou seja, vá e conserte isso para mostrar isso um pouco melhor. Então, se entrarmos em nossa pastilha,
escolhermos a borracha, escolhermos o primeiro plano, apagamos isso. Escolha a plataforma, vá para o fundo e realmente desenhe algo. Guarde isso de volta no jogo. E agora você pode ver que podemos pular duas vezes na parede sem sequer tocar no chão. Então vamos consertar isso também. Está bem? A primeira coisa que vamos resolver é o problema do atrito. E para fazer isso, vamos primeiro fazer a Minha parte favorita de toda
a criação do projeto e que é criar uma pasta. Vamos chamar isso de materiais. E dentro dos materiais, vamos clicar com o botão direito do mouse e criar um material 2D físico. Então crie isso, vamos chamar isso de fricção 0. Está bem? Deixei nos recursos uma documentação sobre materiais físicos. D você pode ler tudo sobre eles, mas honestamente é muito simples. Então, se clicarmos nisso, podemos realmente ver aqui no inspetor que temos duas opções. Um deles é fricção e o outro é saltitante. Então fricção é o que fica preso na parede vai colocar em 0 e saltitante é o que nos faz saltar. Assim, por exemplo, se você quiser adicionar um trampolim ao seu jogo, você pode criar um material de física 2D com bounciness e adicionado a um vagabundo. Limpo. Então agora vamos para a camada. E porque somos, somos realmente capazes de fazer o salto, salto duplo por causa do nosso colisor. E se clicarmos no nosso colisor de caixa, podemos ver aqui que temos algo chamado material. E este material leva um material 2D de física. Então o que vamos fazer, é
óbvio que vamos arrastar o nosso material de atrito 0 e colocá-lo no colisor de caixa. Como você pode ver, nós também podemos aplicar isso à nossa pré-fabricada. Então aplique isso. E agora, se clicarmos no jogo, vamos para a nossa parede e ainda podemos saltar em dobro, mas não ficamos mais presos na parede. E nem ficamos presos aqui nem ali. Não ficamos presos em lugar nenhum. Oh, ok, ótimo. Então, a primeira parte do vídeo está feita. A segunda parte é o seu desafio. Seu desafio é evitar que o jogador salte na parede. Então, em primeiro lugar, você parar o jogador multi salto enquanto toca a parede. E eu vou te dar uma dica, que é adicionar um segundo colisor aos pés do nosso jogador. Então você tem que adicionar um segundo colisor, fazê-lo. Para que ele se encaixa nos pés de nossos jogadores, precisa adicionar um tipo diferente de Colider. Eu recomendo usar o colisor de polígono. E você deve fazer deste colisor a coisa que tem que tocar na parede. Ok, essas são cerca o suficiente. Pause o vídeo agora mesmo e faça o desafio. Ok, bem-vindo de volta. Então eu espero que você tente fazer isso. Então vamos começar esse show. A primeira coisa que vamos fazer é adicionar um componente. E esse componente vai ser um colisor de polígono para d y polígono. Bem, porque podemos fazer uma caixa com isso. E já que já temos VOCÊ, já que já estamos usando um colisor de caixa, não
podemos usar isso. Então agora vamos editar este colisor de polígono para torná-lo apenas aos pés do nosso jogador. Então vamos fazer isso um pouco menor. E se você quiser excluir as linhas desnecessárias, basta segurar, segurar o controle. E você pode ver que você não pode excluir vários sites. Então vamos deixar este aqui. Obter a canção mais perto, o cisne mais perto ou controle excluir, excluir, que. Nem precisamos deste. E agora temos uma caixa ou um colisor de polígono por aí. Nossos jogadores se encaixam e o tornam um pouco menor. Então, quero dizer, sob o colisor de caixa de nossos jogadores, então torná-lo tão grande, tão grande, e isso, eu acho que é o suficiente. Guarde isso e aplique-o ao nosso periférico. Oh, ok, ótimo. Agora temos um colisor de polígono no nosso jogador. Ótimo, guarde isso. Agora, o que devemos fazer a seguir? Bem, em seguida, terá que adicionar este colisor polígono para a nossa caixa, ou em vez de nosso colisor caixa aqui. Por que é isso? Bem, porque agora o nosso colisor de polígonos
não tocará mais nas paredes quando quisermos saltar. Então, dessa forma, ele não vai fazer um abutre. A primeira coisa que precisamos é de obter uma referência ao nosso colisor polígono. Então, basta criar uma variável de colisor de polígono para o tipo. Vamos chamar isso de minhas camadas de pés. E nós vamos para a UPS, desculpe por isso. E nós vamos, meus jogadores pés será um componente que é um polígono Collider 2D. Eu quero ir, ok, ótimo. Então agora temos uma referência aos nossos jogadores que se encaixam nesse script. E agora vamos mudar isso. Então vamos mudar o meu colisor de caixa para meus pés, minhas lágrimas pés. Guardamos isso e vamos para a Unidade e ver se funcionou. Então, agora, se
estivermos, podemos saltar, não podemos saltar em dobro. E se formos para o muro, não
podemos pular na parede várias vezes. Excelente. Oh, ok, ótimo. Então eu espero que você tenha gostado deste pequeno vídeo e eu vou vê-lo no próximo. Pessoal, desculpem por terem vindo, mas achei que era uma ótima oportunidade para lembrá-los de fazer algo muito importante e que está comprometendo nossas mudanças. Então, como podem ver, tenho cometido minhas mudanças constantemente. Então eu vou encenar tudo agora e vou cometer essa mudança, mudanças. Vou dizer que caiu o atrito para 0 e impediu o salto na parede. Ótima. Por isso, espero que estejas a fazer a tua parte no trabalho de sempre salvar e comprometer o teu trabalho. Vejo-te no próximo.
29. Como adicionar a mecânica de escalada: Bem-vindo de volta a todos para um novo vídeo, e este provavelmente será o vídeo mais longo da série. Então, mas vai valer a pena porque quando clicamos no jogo, como você pode ver aqui, nós temos essas folhas e essas folhas realmente nos ajudam a subir em nosso poço em nosso ambiente. E por causa disso, há lugares que antes eram inalcançáveis como aquela superfície ali que agora podemos subir em nossos lençóis. É muito divertido. É muito legal. E eu quero que você não fique muito frustrado com a duração deste vídeo. Vejo você em um “ok “, então a primeira coisa que vamos fazer é importar sprites. Então vamos em frente para declarações ou recursos pouco claros. Pegue as declarações e coloque-as dentro de sprites. E vamos em frente e criar uma pasta. Vamos chamar esta pasta de terreno. Por que não clicar em declarações ou saber que os estudiosos. E com Ron quis dizer, espero ter digitado corretamente, colocá-los em um ambiente e vamos cortar nossas planilhas. Então faça este 30 para fazer este múltiplo. Tenho certeza que você já está familiarizado com o que estamos fazendo. Já fizemos várias vezes e vamos cortá-lo. Então vá em frente e clique na grade cortada, grade, tamanho da célula. Então 32 por 32 e corte o bebê. Ok, ótimo. Agora ou clique em Aplicar. E não tenho certeza se são chamados de cortinas, ou se
chamam trapaças de enforcamento ou se eu não, não tenho certeza. Pode chamá-los do que quiser. Guarde isso. E a propósito, estamos usando porque eu não encontrei nenhum outro sprites. Bem, na verdade, liberte os outros sprites. Mas está tudo bem. Vamos voltar. Usaremos o que tivermos à mão. E na verdade faz um jogo mais divertido. Então agora é hora de um desafio. Então eu quero que você termine a escalada. A primeira coisa que você precisa fazer é configurar o mapa da telha de escalada com suas camadas. E a propósito, este é um mega desafio. E então você precisará criar um método de escalada. Terá de verificar se o nosso jogador está a tocar na camada de escalada do Bing. E você precisará adicionar uma velocidade de subida ao eixo y usando o método get access. Finalmente, você precisará acionar a animação de escalada enquanto nosso jogador está subindo. Agora, este é um grande desafio. É o maior desafio que fizemos até agora. Então, se você se sentir um pouco sobrecarregado,
você pode começar e, em seguida, pausar e, em seguida, começar de novo. Ou você pode me ver fazer o desafio. E sempre que sentir que tem tudo sob controle, basta pausar o vídeo e continuar. Eu dou-te o teu tempo. Pause o vídeo agora mesmo e vá fazer o mega desafio. Ok, bem-vindo de volta. Como você contornou isso? Então, vamos conversar. A primeira coisa que precisamos fazer é adicionar. Trabalhos aqui. Então, vamos clicar nas cortinas que precisamos e selecioná-las. Segure o controle. Oh, desculpe por isso. Então mantenha o controle e selecione as coisas que precisamos. Arraste-o para a nossa cena. Ele vai nos pedir para criar esses estilos. Então vamos entrar em azulejos. Eles são terreno, Não, eles não são telhas terreno vai criar uma nova pasta e estes serão os objetivos climáticos. Espero que o clima esteja escrito corretamente, então Climb resmunga, e agora temos eles em nosso paladar. Então vamos em frente e editar isso. Edite, por favor. Então agora nós selecionamos, bem, com o segundo, selecionamos este e vamos movê-lo aqui e colocá-lo apenas sobre os nossos outros Tiles. Clique novamente em falta para movê-los e salvar isso. E agora temos a capacidade de desenhar nossos gotejamentos. Legal. Agora, vamos tentar isso por um segundo. Oh, e antes de fazermos isso, vamos em frente e criar uma grade de mapeamento de mosaico. Quero dizer, um mapa de azulejos. Então, objeto 2D, mapa de mosaico, e vamos chamar este mapa de mosaico goto espectro. Vamos chamar isso de escalada no mapa de azulejos. Excelente. Agora, de volta à paleta. Clique em escalada. Já está clicado e agora podemos desenhá-lo, mas não na nossa cena. Antes de fazermos isso, quero criar uma pequena plataforma. Então vamos em frente e para o primeiro plano. Vamos escolher dois deles e vamos deletar porque eu não quero isso aqui agora. Vamos voltar ao fundo, termina isso. E vamos ver. Eu quero fazer um pouco de edição aqui, então talvez eu vou acelerar este vídeo. Oh, ok, bem-vindo de volta. Então vamos continuar. Então, como você pode ver, eu criei esta plataforma bem aqui que nosso jogador pode obter também enquanto salta. Só podemos chegar lá usando nossas cortinas especiais. Então isso vai subir e vamos adicionar nossas cortinas. E como você pode ver, nós não podemos vê-los. Então vamos mudar isso criando algumas camadas para nossas taxas. Vá para adicionar camada. E vamos criar aqui uma camada para escalar. Não, não é a camada de separação, mas usaremos isso também para tocar nas cortinas. E vamos criar uma camada para a camada de classificação. E agora temos que renderizar na frente do fundo, mas atrás do jogador. Excelente salvar isso, voltar a escalar, ir para o inspetor, Clique no renderizador mapa de mosaico, e na camada de classificação fazer esta escalada. E agora podemos ver perfeitamente. E também vamos fazer a camada na taxa de subida. Outra coisa que devemos fazer é adicionar um colisor. Então vamos em frente e adicionar um colisor de caixa a ele. E vamos ver, este colisor está 100% errado. Vamos torná-lo menor e menor. E amplie e certifique-se de que a superfície que o jogador pode tocar, a fim de subir como dentro das cortinas. Então, faça assim perfeito. E uma outra coisa que devemos adicionar é um colisor composto. Então compostas COM portas Collider 2D. E vamos nos certificar de que o corpo rígido é estático e que nosso colisor de caixa é usado por compósito. Guarde isso. Oh, ok, excelente trabalho. Vamos continuar. A próxima coisa que precisamos fazer é criar uma função para declinar. Porque a partir de agora e não podemos escalar nada. Então, se eu clicar no jogo, nosso jogador simplesmente bate em nossas fraudes penduradas. E outra coisa que precisamos fazer é ter certeza de que nosso colisor composto aqui é um gatilho. E o que isso faz, ele pode ser usado como um colisor, mas nós não podemos realmente colidir com. Então, por exemplo, se saltarmos sobre ele, oh, na verdade eu vou jogar ou talvez não consiga chegar a isso. Oh, não, ele não pode. Então ele não precisa da escada. Ótima. Como podem ver, nosso jogador não colide com as cortinas. Guarde isso. E a próxima coisa que vamos fazer é ir para o nosso Visual Studio
e ir em frente e criar nossa função ou método de escalada. E vamos gerar isso. Então temos uma função de escalada que é privada e não retorna nada. A primeira coisa que vamos fazer é verificar se estamos tocando
a camada de escalada. Então já fizemos isso e usaremos meus jogadores. Prefiro usar meus pés para escalar. Então, como tocar camadas, máscara de
camada e a máscara de camada ou usar o componente get mass e ele precisa de uma referência de string. Isso significa que, mesmo sabendo que escalar é muito fácil de escrever, vamos voltar, copiá-lo, e colá-lo dentro daqui. E não usaremos o mesmo método que usamos no salto. Você saberá o porquê muito em breve. Então a próxima coisa que vamos fazer é usar o acesso. E se você acha que pode continuar a desafiar neste momento, basta pausar o vídeo, verificar o desafio novamente e ver o que você precisa fazer e completar em si mesmo. Então pausar o vídeo. Ok, estamos de volta. Então vamos pegar o eixo. Então bem, ser usado o mesmo método que usamos para a corrida. Então vamos criar um flutuador que é chamado de arremesso de controle. E usaremos o gerenciador de entrada de plataforma cruzada, dot. Obter eixos, e desta vez deve estar na vertical. Então vamos ver o quê? Ops, isso é um desafio novamente para você. Então vamos ver em nossas configurações de projeto e enquanto as entradas, gerenciador de
entrada verificar a vertical e vamos ver os EUA e W. Copiar a vertical, voltar e para a unidade e eu estou no Visual Studio e ritmo que, ótimo. Em seguida, precisamos criar uma velocidade de escalada para adicionar ao nosso jogador. Então vá em frente e faça isso. É exatamente o mesmo que para correr, mas agora está subindo velocidade. Então a velocidade de subida é igual a um novo vetor dois. Então agora o que precisamos fazer isso, vamos precisar adicionar uma velocidade na direção y, mas manter a velocidade da direção x a mesma. Então vamos para o meu corpo rígido dois d ponto velocidade ponto x. então esta velocidade vai ficar a mesma, a propósito, se você quiser experimentá-lo, você pode realmente fazer a velocidade no x 0. Assim, sempre que nosso jogador toca nas cortinas, ele fica preso lá e não pode se mover mais, que é um pouco mais lógico. Mas porque isso é novamente, eu acho que vou mantê-lo velocidade x, sinta-se livre para torná-lo 0 f. E a próxima coisa que vamos fazer é adicionar um lance de controle na direção y. Mas já sabemos que isso será muito lento. Então vamos criar uma variável bem aqui. E claro que vai ser um campo serializado. Vai ser um carro alegórico e vai ser velocidade de subida. E o nosso discurso de escalada deve ser, eu acho que 8,5. É uma boa velocidade de escalada. Então o arremesso de controle multiplicará isso com nossa velocidade de escalada. Feche o último passo. O meu corpo rígido 2D velocidade de ponto será igual à escalada. Não, quero dizer, eu quis dizer escalar velocidade. Obrigado. Feche o ponto e vírgula. Lembre-se sempre de fechar os pontos e vírgula. E agora dissemos tudo. O que mais precisamos fazer? Precisamos verificar se algo realmente funcionou. Isso é confiança para você. Então salve que tudo é salvo e clique em jogar. E agora podemos nos mover. Se saltarmos, se
saltarmos, podemos agora subir e se deixarmos o nosso jogador cair, ele realmente cai dos gotejamentos. Oh, ok, excelente. Uma coisa que eu quero fazer é que eu quero fazer isso um pouco mais longo. Então isso é um pouco mais longo, assim, podemos até fazê-los tocar o chão, que se torna uma espécie de escada. Na verdade, exatamente como uma escada. Então volte e verifique isso. Clique no jogo. Vamos ver o nosso jogador uma ação. Ele toca nas cortinas e não consegue. Ok, ele precisa de um empurrãozinho, a fim de saltar sobre isso. Isso é porque o nosso colisor não está tocando os pés do jogador. Vamos mudar isso. Vamos ao inspetor e fazer o colisor de caixa um pouco maior. Oh, oh, Talk Box Collider não combinou com a escalada. Isso é lamentável. Isso deve ser corrigido, mas não se preocupe agora. Salvei isso. Clique no jogo. E agora devemos ser capazes de escalar. Oh, ok, ótimo trabalho. Vamos agora passo final terá que adicionar
a animação de escalada sempre que estamos nas cortinas ou sempre que estamos escalando. Então, para fazer isso, é super simples. Já temos a referência para o nosso animador e já temos um booleano para a escalada. Então, como fizemos antes, vou te dar outra chance de completar isso porque é muito fácil. Pausa o vídeo. Não, você quer me ver fazer isso ok, então meu animador, então meu ponto animador definir Bool. Quando estamos realmente tocando, estaremos sempre na animação de escalada. Então vamos em frente e obter a referência da string. Entendido, volte para o Visual Studio baseado. E vai ser verdade. E quando estivermos fora da condição “if”. Então, sempre que nosso jogador não está mais tocando nas folhas, ele pode realmente ir em frente e parar a animação, o que significa colocar a escalada de volta para esperar o que aconteceu lá e redefinir a escalada para falsa. Guarde isso. Foi um vídeo longo. Certo, então clique no jogo. E agora o nosso jogador fica preso na cortina e vai para a animação de escalada. E vamos tentar de novo. E, na verdade, você pode ver que ele está pendurado no gotejamento. Agora, uma coisa que vamos consertar sobre isso é quando o nosso jogador tocar nessas cortinas, eu quero que ele fique preso a elas e não caia sempre. Vamos fazer isso no próximo vídeo porque este está ficando muito longo e te vejo nesse.
30. Mecânica de escalada em Tweaking: Ok, então algumas coisas que precisamos mudar aqui. A primeira coisa que vamos mudar é entrar em
nossos sprites e entrar em nosso editor de sprites. E se você for aqui para o canto superior esquerdo, você pode ver que nós podemos realmente personalizar a forma física. E esta é a primeira coisa que vamos fazer em nossas viagens. Então, clicamos em Gerar e podemos realmente alterar o contorno do nosso colisor caixa que vamos adicionar. Por que estamos fazendo isso? Bem, porque eu realmente quero que o nosso jogador só seja capaz subir se ele estiver realmente segurando e tocando as cortinas. Por isso, faça-os dentro disto, dentro das cortinas. Vai ajudar-te. Ele vai encaixar no lugar. Então clique em qualquer sprite que você quiser e clique no botão gerar
aqui e levá-los um pouco mais perto do centro. Dessa forma, eles se moverão e se sentirão mais, um pouco mais realistas. Então, não tanto assim. Então isso é ir em frente e manter estes dentro. Nós podemos até mesmo este para ele. Você não tem que ser tão preciso. Mas se você quer ser tão preciso, Yukon e tudo é bom, este é bom, este é bom, este é bom. Clique em Aplicar e estamos prontos para continuar. E agora eu cometi um erro, uma pequena aposta anteriormente, e eu adicionei um colisor de caixa. Então, vamos ter que remover esse componente e realmente adicionar um colisor de mapa de mosaico para D e certificar-se de que ele é usado por composto. Então verifique isso. E o composto deve ser é gatilho. Certo, ótimo, guarde isso. A próxima coisa que vamos fazer, porque através de tentativa e erro, descobri que realmente usar os pés para escalar não é uma boa idéia. Então vamos em frente e transformá-lo em, não,
no meu colisor de caixa, e isso será melhor. Então tudo deve ficar bem, exceto por uma coisa. E se clicarmos no jogo e saltarmos em nossa cortina, podemos ver que nosso jogador lentamente começa a mover-se para baixo um solte livre do w ou a tecla de seta para cima. E é aí que entra o teu desafio. E seu desafio é parar o jogador de deslizar. Então a primeira coisa que você precisa fazer é definir a gravidade no corpo rígido do jogador. E então você precisa definir a gravidade para 0 enquanto as cortinas, enquanto o jogador está nas cortinas. Então isso vai precisar de um pouco de pesquisa, apenas um pouco de pesquisa. E tenho certeza que você será capaz de terminar o desafio. Então pausar o vídeo agora mesmo e vá em frente e faça o seu melhor. Ow, kay, bem-vindo de volta. Então vamos começar. Vamos começar a iniciar o vídeo. Então, se você clicar no jogador e olhar para o corpo rígido, você pode ver aqui que temos algo chamado a escala de gravidade. E isto é, se você pairar sobre
ele, é quanta gravidade afeta este corpo. E este é o componente que será manipular em nosso código. Como é que vamos fazer isso? Bem, a primeira coisa que vamos vir aqui e criar uma variável que é um flutuador. Chamaremos isso de escala de gravidade inicial. E qual será esse valor? Bem, vai ser
a escala de gravidade inicial ou a escala de gravidade com a qual começamos. E vai ser a escala original da cavidade do meu corpo rígido. Então vamos digitar a escala de gravidade inicial. É igual ao meu corpo rígido 2D ponto da escala de gravidade. E este será um, claro, mas queremos ser mais precisos usando a escala de gravidade do meu corpo. A próxima coisa que vamos fazer é quando estamos realmente sobre as cortinas ou tocando as cortinas,
nós queremos ajustar a minha escala de gravidade de ponto rígido para 0 F. Então, agora, sempre que nossa peça estiver tocando a máscara de escalada ou a camada de escalada, a escala de gravidade irá para 02 refere-se que o efeito irá mudá-lo de volta para a escala de gravidade da escala de gravidade inicial. Então, se estamos tocando a camada de escalada, minha escala de gravidade corpos rígidos vai se tornar 0 e então quando não estamos tocando a escalada, nossa escala de gravidade será recuada também, a escala de gravidade inicial. Então guarde isso, volte para a Unidade. Espere que ele entenda o que está acontecendo, e vamos clicar no jogo e ver o que acontece. Então, agora, se subirmos, nosso jogador fica nas cortinas e não desliza para baixo sem tocar no teclado. Uma taxa de garotas. Então eu espero que você tenha gostado deste vídeo rápido e eu vou vê-lo no próximo.
31. Câmera de seguimento Cinemachine: Bem-vindos de volta a um novo vídeo. E como o título sugere neste vídeo, vamos fazer nossa câmera seguir nosso player usando algo chamado máquina Cinna. Como podem ver agora, se movermos nosso jogador, a câmera não está estática. Ele não fica parado e espera por nós. Ele se move com a gente. E mesmo se escalarmos, ele se move conosco quando estamos caminhando, ele se move conosco e quando saltamos,
também vai para onde quer que nossos objetivos do jogador. Então, ou como podem ver, temos câmeras virtuais. Adicionamos um cérebro às nossas câmaras. Então agora ele está realmente pensando sobre as coisas. E vejo-te daqui a pouco. Ok, então o que são algumas máquinas e por que precisamos delas? Como você pode ver agora, nosso jogador apenas se move no ambiente ea câmera não tomar nota dele em tudo. E o que queremos é que a câmera realmente siga nosso jogador enquanto ele se move através do nível, porque nós estaremos adicionando um nível muito maior que vai gastar daqui e dois aqui, talvez para cima, talvez para baixo. Não sabemos, mas queremos que a câmera o siga. Agora, antes de máquinas Cinna, tudo o que você precisava fazer é que você realmente
precisaria criar um script e terminar isso é ótimo. O guião. Criar um campo serializado que iria obter o jogador e usar sua transformação para ir e segui-lo a cada passo do caminho, que foi muito complicado. Mas agora temos o poder das máquinas de cinema, correto? Então vamos começar importando máquinas. E para fazer isso, você precisa entrar na janela aqui em cima, aqui. E você precisa entrar no Gerenciador de Pacotes, clicar no gerenciador de pacotes e entrar no registro do Unity. E você deve ter este cinema cine, que é verificado bem aqui. E agora o que você precisa fazer é simplesmente clicar aqui neste botão de instalação. Pode baixar alguma coisa. Eu já baixei o pacote, então ele vai simplesmente instalar. Oh, ok, ótimo. Bem-vinda de volta. Agora, como podem ver aqui no topo da nossa tela, temos algo chamado máquina pecadora. Agora, o que é uma máquina de cinema? Bem, uma máquina de cinema é algo que nos permite criar câmeras virtuais. Ainda temos a nossa câmara principal. E nessa câmera colocamos algo chamado cérebro de cinema. E esse cérebro dirige as outras câmeras virtuais que criaremos. Então, por que usamos essas câmeras virtuais? Bem, em jogos 3D, essas câmeras virtuais são usadas para criar cenas de corte. Por exemplo, qualquer jogo que você joga, sempre que você vê um cutscene, é provavelmente porque eles usaram uma máquina de cinema ou uma, quero dizer, uma câmera virtual. E no nosso caso, para um jogo 2D, vamos usá-lo para tornar nosso jogo um pouco mais dinâmico. Então, primeiro vamos entrar em nossa câmera principal e clicar em adicionar componentes. Faça o pequeno clique em adicionar componentes e simplesmente digite um cérebro. Então agora vamos adicionar um cérebro à nossa câmera. Então cinema cine brain, clique sobre isso. E agora temos a configuração do cérebro bem aqui. A próxima coisa que vamos fazer é entrar em nossa hierarquia e criar um objeto de jogo vazio. E este objeto de jogo vazio, vamos redefinir. - Ele. Não importa. Mas eu gostaria de redefinir, Graças a tê-los todos em um único lugar. E vamos renomear isso para nossas câmeras ou simplesmente digitar linhas. Ok, e isso é para o bem das organizações. Organização. Então vamos colocar a câmera principal sob nossas câmeras. E agora vamos em frente e enviar uma máquina e criar uma câmera virtual 2D. Então vamos ver, temos isso criar câmera virtual, coletar sobre isso. E agora temos algo chamado CM, o acampamento. E se olharem para a direita, podem ver que temos algo chamado aqui, sigam. Deixei um link nos recursos para
tudo o que precisa saber sobre máquinas de cinema. Você pode ir em frente e ler todo o documento ou você pode simplesmente olhar sobre ele e ter uma noção do que as coisas são. Então, por exemplo, eles olham para o siga a mistura de posição são coisas muito importantes. Você pode olhar para a lente. Há muitas, muitas, muitas informações úteis aqui que você pode ler tudo sobre se você não entende isso agora. Mas vamos voltar à Unidade e nos concentrar nas coisas importantes e principais. Então nós temos este seguimento e esta é a parte mais importante. Então é o objeto com o qual a câmera quer se mover. E esse objeto é, claro, o nosso jogador. Então, basta clicar no jogador e arrastá-lo para o seguinte. E agora esta câmara deve estar a seguir o nosso jogador. Outra coisa, porque é um pouco importante e depende muito de você. Está sob lentes, você tem algo chamado tamanho ortográfico. E este é, na verdade, o tamanho das nossas câmaras. Então você pode torná-lo maior e você pode torná-lo menor, e isso depende de como você quer que seu jogo se sinta. Então, por exemplo, nossa câmera principal, podemos ver aqui que temos o tamanho, eu acho que é 5.02. E para a nossa câmera virtual também será 5.0.2. Vamos fazer cinco taxa de ergo. Então agora vamos em frente e renomear nossa CMV Cam, que é um nome muito estranho. Vamos simplesmente chamá-lo de câmera virtual VR. E vamos colocá-lo sob as câmeras. Então agora temos câmeras sob um único objeto aqui, e é muita manteiga. Então guarde isso. Vamos clicar no jogo e ver o que realmente acontece. Então agora, como você pode ver, enquanto se move, mover em nosso mundo, a câmera segue nosso jogador. Então agora é muito mais dinâmico e parece. Como um verdadeiro jogo 2D. Então vamos sair disso e discutir algumas coisas sobre câmeras virtuais. Agora. Se você for aqui, se você ainda estiver clicado na câmera virtual e você olhar no inspetor, você pode ver aqui que temos algo no corpo que é uma transposição. Então vamos em frente e mudar isso e ter certeza de que você tem sob enquadramento transpor. E você terá todas essas diferentes opções estranhas bem aqui que vamos discutir. Mas antes de fazer isso, subir um pouco e você vai descobrir que você tem outra opção aqui que é chamado de guias de janela de jogo. Se você clicar sobre isso, você pode entrar em um jogo e você pode ver que temos janelas diferentes. E cada uma dessas janelas tem um efeito diferente em nossa câmera virtual e como ela usa o ambiente ou como segue nossa jogada. Então vamos começar as coisas e explicar alguns destes. Há muitas opções que não vamos cobrir todas elas. Sinta-se livre para entrar na documentação e ler sobre eles se você
quiser ser meticuloso com a primeira coisa que temos é o olhar para o futuro. Então, vamos clicar no jogo e começar o jogo e começar a ajustar a partir dele. Então, se escolhermos um olhar antecipado, você pode passar o mouse sobre ele. Não diz nada, mas digo-te o que faz. A primeira coisa que ele faz, ele realmente determina para onde o jogador está indo para ir. Então agora você pode ver que este ponto amarelo, na verdade esse ponto amarelo representa onde nossa câmera está olhando para o momento. Então temos os dois no 0. Você pode ver que r ponto se move com o jogador, no entanto ele vai. Mas se adicionarmos algum tempo de olhar para frente e suavizar isso, o ponto amarelo precederá o jogador. E ele irá calcular ou determinar onde o jogador pode estar indo em seguida e suavizará a transição da câmera. A próxima coisa que temos é uma coisa chamada “Zona Morta”. E esta zona, se aumentarmos o tamanho apenas um pouco, podemos ver que teremos uma zona dentro de nossos guias ou guias de janela. E se nos movermos para dentro desta zona morta, a câmara não se mexe. Ele só seguirá o jogador se ele sair da zona e é determinado por este botão amarelo ou ponto amarelo. Então, agora, vamos aqui. Por exemplo, se nos movermos dentro da nossa zona morta, não
nos registramos ou a câmera não se move com o nosso jogador. Sobre o que mais devemos falar? Então eu acho que vamos adicionar um pouco dessa zona aqui vai torná-lo 0.20.2. Oh, ok. O que mais devemos, oh, desculpe-me. Então 0,2 por 0,2,
por favor, comece quem e o que mais devemos estar olhando? Temos algo chamado amortecimento. E vamos em frente e aumentar. A melhor maneira de descobrir o que todos eles fazem é simplesmente aumentando-os e experimentando o jogo. Então agora amortecimento, você pode ver que ele vai lentamente para onde o jogador está. Não pula imediatamente para onde ele está e coloca em 0. Você pode ver que a câmera se torna muito rápido e ele realmente tem sua própria sensação para o jogo. E tudo isso pode ser ajustado de acordo com sua preferência. Eles também podem ser feitos um muito extremo, eles podem ser feitos para 0. Depende da sua preferência, de como você quer fazer o seu campo de jogo. E lembre-se sempre que mudar as coisas aqui, você precisa se lembrar delas. Lembre-se deles porque quando você clicar em jogar novamente ou sair do modo de jogo, tudo será redefinido. E agora é hora do seu desafio. E o teu desafio será montar o teu acampamento de acompanhamento. Então, a primeira coisa, você precisa ajustar o seu, as câmeras virtuais de acordo com sua própria preferência com base em como você deseja que o seu jogo se alimente. E você vai fazer isso usando o tamanho da câmera, usando o tamanho da zona morta e usando o olhar adiante. Então você pode pausar o vídeo, ou é simplesmente o fim do vídeo. Aguarde até que ele termine e vá em frente e configure as câmeras virtuais de acordo com a sua preferência, porque é o seu jogo. Não é o meu jogo. Faço do jeito que eu quero e quero que você faça do jeito que você quer que seja. Então, vou ajustar um pouco e te vejo daqui a pouco. Ok, então eu vou fazer algumas mudanças aqui mesmo. Não vai ser muito saída as zonas mortas para 0,2 na largura e na altura. E eu vou pensar, eu vou adicionar apenas um pouco de olhar para frente com um pouco de olhares em movimento e o amortecimento. Acho que vou manter o mesmo. E se clicarmos no jogo agora, vamos ver como se sente. Se andarmos, vamos desligar as guias das janelas. Então, se desligarmos as guias das janelas, assim como nos movemos, nossa câmera se movia estava conosco. Talvez eu adicione um pouco mais de suavização, então faça três. E realmente se sente muito bem. Faça isso um pouco mais 0.02 e ótimo, eu acho que isso é suave e legal o suficiente. Espero que ajustes as tuas câmaras virtuais à tua preferência, e vejo-te na próxima.
32. Extensão de CINemachine: Bem-vindos de volta a um novo vídeo. E este, como você pode ver, nós fizemos um nível maior, que precisa de um pouco mais de ajustes, mas vai funcionar por enquanto. E o que fizemos agora é que se movermos nossa câmera, como você pode ver, ela se move livremente sem jogador. Mas se formos para a borda, você pode ver que ele não se move mais além desta borda. Isso significa que criamos um mundo confinado. E por que fizemos isso? Bem, isso vai dar ao nosso jogo uma sensação de imersão. E sempre que nosso jogador sobe, ele não vê mais nada além do reino do nosso combinador mundial. Então não vamos perder mais tempo e vamos entrar e começar. Certo, então o problema aqui agora é que sempre que
jogamos, podemos ver o que está acontecendo nos bastidores. Então isso tira o emergente do nosso jogo e faz com que nosso jogo realmente não se sinta real e se sinta como se tivesse trabalhado, é, mas não queremos que o jogador saiba disso. Então temos que mudar o que está acontecendo. O que vamos fazer é criar um confinado em torno do nosso nível. E isso confinado ou não deixará nossa câmera ir além dela. Então vamos fazer isso. Se você entrar em nosso inspetor e rolar para baixo, você pode ver aqui que nós temos algo chamado extensões. Vamos em frente e adicionar uma extensão. Então, clique nisso. E você pode ver que temos muitas opções. Mas o que vamos precisar é desta máquina de cinema, melhor. Clique nisso. E abaixo dele você pode ver agora que temos um novo componente que é Santa máquina confirmar mais fino. E precisa de uma forma delimitadora. Isso é para D. Ótimo. O que vamos fazer é criar um mapa de mosaico. E esse mapa de azulejos será o nosso combinador mundial. E vai impedir a nossa câmara de ir além disso. Vamos clicar em File Map. Clique com o botão direito nisso. E vamos criar um objeto 2D que é um mapa de mosaico, vai mudar seu nome para mundo confinado. E agora temos uma nova configuração de mapa de mosaico. Se entrarmos em nosso piloto de azulejos, teremos nossa final do WorldCom. E você pode escolher ter sua pilha que representa a palavra confinamento ou o que quer que seja. Mas eu escolherei tê-lo como este bloco central bem aqui. Então vamos em frente e criar nosso mundo confinado lá, apenas por aqui. Ok, e agora nós temos isso configurado, mas ainda assim, isso não funciona corretamente, corretamente. E isso é porque ainda não adicionamos os limites para isso. Então o que eu vou fazer agora é eu
vou fazer o nosso nível apenas um pouco maior. E para ver como essa câmera realmente funciona, e eu vou fazer isso um vídeo rápido usando a magia da edição de vídeo. Então, vejo-te daqui a pouco. Ok, bem-vindo de volta. Então, como você pode ver aqui, eu criei uma plataforma. Aumentei o tamanho aqui. Eu adicionei uma escada, a fim de chegar ao topo e algum tipo de quarto estranho bem aqui. Não tenho certeza do que faz. E é basicamente isso. E o que eu só queria realizar aqui é fazer nosso nível maior para movê-lo. Então, agora vamos voltar ao nosso mosaico e escolher o WorldCom mais fino e criar o confinamento ao redor do nosso mundo. Então vamos em frente e fazer isso. Torná-lo tão grande. E vamos em frente e torná-lo tão grande aqui também. Então isso depende de como você quer. Você não tem que fazer exatamente do jeito que eu estou fazendo. Você vai em frente e cria sua própria plataforma e faz seu próprio mundo confinado. Mas o que você precisa manter o foco é que precisamos disso aqui. Como você pode ver, esta é a câmera que
temos e você precisa ter certeza de que esta câmera realmente se encaixa. Então nunca crie, por exemplo, algo muito pequeno, como aqui. E isso não permite que nossa câmera se encaixe entre esses dois pontos. Então certifique-se de manter isso em mente. Então vamos controlar z duas vezes, a fim de reverter essas mudanças. Então, a próxima coisa que vamos fazer é adicionar um colisor de polígono ao nosso mundo confinado. Então vamos em frente e fazer isso. E por que estamos fazendo isso? Bem, porque se você olhar de perto para nossa câmera virtual visual aqui em baixo, você pode ver que ele precisa de um colisor para D que irá dizer-lhe como ele será confinado. E um colisor de polígono é a maneira perfeita de fazer isso. Então, como você pode ver, é muito grande e vai mudar isso muito rapidamente. Clique aqui em editar. E vamos em frente e adicioná-lo ao nosso confinado. Agora isso não tem que ser perfeito. Você só precisa ter certeza de que as linhas verdes estão dentro de suas telhas combiner mundo. Então vamos em frente e torná-lo tão grande. E nós escolhemos um colisor de polígono porque é muito fácil de manipular. Então, torná-lo deste tamanho
e, em seguida, mantenha o controle para excluir isso. E agora temos. Um quadrado. Bem, é um polígono, mas é um quadrado. E certifique-se de que a linha verde ou dentro disto, estes azulejos, ou qualquer que seja o que você escolheu para fazer o combinador mundial N. E eu acho que é ótimo e está funcionando bem. Então guarde isso. E agora vamos em frente e adicionar este mundo confinou-a à nossa câmera virtual. Então clique na câmera virtual, câmera novamente, vá para baixo para as extensões e simplesmente mantenha pressionado ops, mantenha pressionado o confinamento do mundo ou espere para voltar para baixo e segure o mundo confinado e arraste-o para o delimitador em forma 2D. Como podem ver agora temos essa forma delimitadora. Então vamos jogar isso e ver uma coisa que está errada. Então, agora nós clicamos no jogo, e como você pode ver, nossos jogadores simplesmente desapareceram no antinatural que é chamado abaixo lá. E por que isso? Bem, se clicarmos no jogador e levá-lo para este local, por exemplo, e clicar em jogar novamente. Ele ainda desaparece em um maduro, mesmo onde está. E por que isso? Bem, porque o nosso jogador está confuso, ele não tem certeza onde ele deve estar ou com
o que ele deveria estar interagindo porque o nosso mundo está confinado
agora tem um colisor de polígono nele e ele não sabe se deve ficar neste polígono ou se eles flutuarem neste polígono, ele não entende o que está acontecendo. E o problema com isso é que se entrarmos em nossas configurações de projeto, isso é fechar isso e entrar em nossa física 2D e expandido. Se olharmos para baixo, podemos ver esta matriz e o que é esta matriz. É, se você
lê-lo, está dizendo matriz de colisão de camada. Então ele nos diz quais camadas interagem e colidem umas com as outras. Então, por exemplo, você tem escalada que interage com cada camada que é. E, por exemplo, o padrão também interage com cada camada que é um disponível. E se olharmos para o nosso jogador, então volte para o Specter. Primeiro de tudo, nosso confinamento de mundo está na camada padrão, e nosso jogador está na camada padrão. Isso faz com que ambos interajam por causa dessa matriz. E para desligar isso, você pode simplesmente clicar neste botão e ele irá parar a interação entre esses dois colisadores. E é aqui que te levo ao teu desafio. E seu desafio será criar uma câmera confinada R. Então, a primeira coisa que precisamos fazer se você ainda não fez isso é criar um nível maior para que seu jogador e câmera se movam. A segunda coisa que você precisa fazer é adicionar uma colisão para o colisor mundial confinado, quero dizer mapa de azulejos. E então você precisa criar uma camada de jogador e uma camada mais fina do WorldCom. E por último, mas não menos importante, você terá que ajustar a matriz da camada física para jogador e 40 combinador. Então pausar o vídeo agora mesmo. Você já sabe como criar essas camadas. Você me viu criar um nível maior e na colisão. Então a única coisa que você não está muito familiarizado com, R como a matriz métrica de camadas, mas eu tenho certeza que você vai fazer um excelente trabalho. Então pausar o vídeo agora mesmo e ir em frente e fazer esse desafio. Oh, ok, bem-vindo de volta. Então vamos acabar com isso. Então, a primeira coisa que vamos precisar fazer é clicar no jogador e ir ao inspetor. E vamos escolher esta camada e vamos adicionar uma camada. Então vamos criar nossa camada de camada, e vamos criar nossa camada confinada no mundo. Um outro passo extra que faremos é criar uma camada de classificação para o WorldCom mais fino. Não temos de fazer isto, mas só para o caso de o mantermos atrás fundo, porque é onde queremos que seja renderizado. Então salve isso, volte para o jogador e faça este jogador
na camada de jogador e aplique-o ao prefab, volte para o combinador de mundo. E vamos em frente e torná-lo uma camada confinante de mundo e ir para o renderizador de mapa de mosaico e certificar-se de que ele está classificando camada. É o mundo confinado e salvar isso. E agora vamos para as Configurações do Projeto, role para baixo na matriz e, como você pode ver, as camadas que criamos, o confinamento do mundo e o player estão disponíveis agora. Então o que vamos fazer é transformar tudo o que o mundo pode melhor, interagir com. Então agora o confinamento mundial não toca em nada, não afeta nada. É simplesmente confinar nossa câmera em um determinado espaço. Então, agora, se guardarmos isso, vamos voltar para o nosso jogador e movê-lo aqui para o limite. Como você pode ver, mesmo em nossa cena, nossa câmera se move livremente. Mas sempre que chegamos à borda, você pode ver que ele não se move mais. Então vamos experimentar nossas novas câmeras. Clique no jogo. E agora nos movemos. Como você pode ver, a câmera não vai mais atrás da cena, e agora nós podemos pular e ok, nós mal cortamos isso. E agora, como podem ver, não
vemos mais o que está acontecendo nos bastidores e podemos chegar a essa borda, infelizmente. Mas como podem ver, criámos um confinamento e tornámos tudo muito mais realista. Então, porque é que queremos que isto seja um jogo de uma hora? Bem, isso é muito legal. Primeiro de tudo, segunda coisa, Ele se sente como um mundo real e dá uma sensação de imersão para quem está jogando nosso jogo. E ele entende que há limites e limites para o nosso mundo. Além disso, ele não vê o que se passa por trás da cena. Põe-no atrás da cena. Está bem. Preciso parar de fazer essas piadas e te vejo no próximo vídeo.
33. Câmeras motivadas: Bem-vindos de volta a um novo vídeo. Como podem ver, temos algo diferente aqui na nossa hierarquia, onde criamos uma câmera controlada pelo estado. E nós adicionamos muitas coisas aqui que serão explicando e detalhes detalhados. Mas, como você pode ver agora, quando estamos ociosos, a câmera ampliou e quando começamos
a correr, a câmera diminui. E quando saltamos sobre os lençóis pendurados, podemos ver que a câmera aumenta de volta. Podemos pular, podemos nos mover, e a câmera aumenta e diminui. E nosso jogador sente que sabemos sempre que ele está correndo e andando, e isso lhes dá segurança e isso torna nosso jogo muito mais profissional. Então, vemo-nos daqui a pouco. Ok, então vamos em frente e criar uma câmera acionada por estado ou animação. Então vou usar a palavra estado e animações de forma intercambiável. Eles significam a mesma coisa no contexto. Então vá para a máquina do Papai Noel e procure por câmeras controladas pelo estado. Clique nisso e isso criará uma câmera de estado CM. E mudaremos esse nome para câmera controlada pelo
estado porque não queremos que tudo se mexa juntos. E como podem ver, temos uma câmera virtual. Então vamos em frente e primeiro de tudo, criança, nossa câmera virtual que é usada sob as câmeras dadas palco. E agora, se você rolar para baixo e indicar diferentes câmeras no inspetor, você pode ver que temos filhos de câmera virtual. E isso significa que sempre que quisermos adicionar câmeras virtuais a nós, à nossa câmera controlada pelo estado, precisamos criá-las. Então, o que essas câmeras virtuais sob câmeras controladas pelo estado fazem? Bem, eles são usados para todos os estados ou animações que temos. Então vamos em frente e excluir o que já estava presente. Então exclua a câmera CM e mantenha a câmera virtual que tínhamos e renomeie-a para
câmera virtual em execução e duplique isso e crie uma câmera virtual ociosa. Então agora temos sob o estado, uma câmera virtual em execução e uma câmera virtual em marcha lenta. E outra coisa que precisamos levar em consideração é que
precisaremos adicionar o jogador como nossos alvos animados. Então, como você pode ver aqui, temos algo chamado alvo animado. E vamos arrastar o jogador para isso. E agora temos o jogador como aquele que apresenta todas as nossas animações e é disso que precisamos. A próxima coisa que faremos é, a fim de diferenciar entre correr e ocioso, vamos mudar a escala ortográfica de cada câmera. Então é aqui que se trata de sua preferência. Então, por exemplo, se você quiser, o jogador para ser, então vamos dizer zoom para a câmera sempre que seu ocioso e zoom para fora sempre que sua corrida, você precisa ir para a câmera virtual, ir para terras. E aumente esse tamanho ortográfico para, digamos, seis. Vamos fazer com que este 16. E a câmera virtual para marcha lenta será quatro. E como você sabe, isso é puramente baseado em sua preferência. Você pode torná-los maiores ou menores dependendo de você, mas eu estou apenas fazendo números de exemplo para o bem do exemplo. Ok. Então a próxima coisa que vamos fazer é demonstrar o que está acontecendo. Então agora o nosso jogador está, por exemplo, nesta cena e ele se move, mas nada acontece ainda. Foi tão bom porque nos esquecemos de criar esses estados. Então agora vamos em frente e adicionar um estado. E o que isso faz é criar um novo estado. E esse estado é chamado de ociosidade. E a câmera para isso é a câmera virtual de ociosidade, criará um outro estado. E isso será para o estado em execução, e ele estará usando a câmera virtual para executar. E agora se guardarmos isso e se clicarmos no jogo, e vamos ver o que acontece. Então, como você pode ver, é um pouco mais ampliado. E quando começarmos a correr, podemos ver que a câmera desliga. Quando começarmos a correr, fazemos zoom de volta. Mas como você pode ver, é um pouco rápido demais. Ele sai e volta para dentro, se você gosta desse tipo de zoom, é ótimo. Não há necessidade de mudá-lo, mas podemos realmente fazer modificações nele. E a maneira como fazemos isso é que temos muitas, muitas opções. Então, a primeira coisa que temos o peso e isso realmente esperar para voltar, por exemplo, para qualquer um dos links. Então vamos fazer isso, por exemplo, 1 segundo. E agora se corrermos e pararmos de correr à espera, 1 segundo e, em seguida, amplia em uma outra opção que podemos alterar esse mínimo que vai abrandar o Eu não tenho certeza do que ele faz exatamente, mas, vamos torná-lo cinco por exemplo e ver o que acontece. Então agora nos movemos, corremos, e depois voltamos para cima e para baixo. Então leva cinco segundos, eu acho, para diminuir o zoom, e então leva 1 segundo para zoom e ok, então agora sabemos o que é mínimo. É o tempo mínimo para esperar antes de entrarmos no próximo estado da câmera virtual. Mas de volta ao 0. O que mais podemos mudar no ano? Bem, nós temos o padrão de terra, que determina a quantidade de tempo que leva
para realmente fazer a animação ou o zoom dentro e fora. E podemos escolher o que queremos mudar. Assim, por exemplo, podemos mudar a facilidade de entrada ou de saída. E vamos fazer isso, por exemplo, para segundos. Então, agora, quando começamos a andar, leva dois segundos para diminuir o zoom e paramos, esperar 1 segundo e, em seguida, leva 2 segundos para zoom. E vamos sair do modo de jogo. E como uma última coisa que eu quero dizer é que você pode realmente criar suas próprias plantas personalizadas. Então, clique em Criar misturas personalizadas. E vamos adicioná-lo dentro da animação. E será chamado de câmera controlada pelo estado e guarde isso. E você vai ter algum tipo de flecha estranha bem aqui. Não se preocupe com isso. Se você simplesmente esclareceu isso, ele vai embora. E cada erro que você pode simplesmente limpar e não quebra o jogo não é tão ruim. Ok, então a próxima coisa que vamos fazer é entrar em planos
personalizados e aqui temos o liquidificador, então nós simplesmente arrastamos isso e para enviar uma máquina e agora nós podemos criar nossas terras personalizadas. Então vamos em frente e fazer isso. A primeira terra que vamos criar será de marcha lenta e correr. E será uma facilidade de entrar e sair. E o tempo que levará para fazer isso será, eu acho que deve ser muito rápido. Então eu vou fazer isso 0,5 segundos. E digamos que a segunda mistura será de correr para ocioso. E eu acho que a facilidade e fora deve levar, eu acho que não deve levar mais de 1,5. Então isso vai ser uma espécie de, então vamos ver como isso funciona. Se clicarmos no jogo. Agora nos movemos, movemos diretamente para a corrida. A câmera desliga imediatamente. Se pararmos, amplia-se e leva 1,5 segundos. Então, o que mais devemos fazer? Bem, nós também devemos adicionar uma câmera virtual para a escalada, mas esse será o seu desafio. E seu desafio será adicionar uma câmera estadual de escalada. Então você precisa criar uma câmera de estado para escalar. E você precisará fazer a mesclagem entre outras câmeras e câmeras escalada
grossas para seu próprio ritmo de ganho. Então vá em frente e faça um desafio, e eu estarei aqui esperando por você. Oh, ok, bem-vindo de volta. Então, o que vamos fazer? Então o que vamos fazer é duplicar a marcha lenta e
vamos chamar isso de forro de câmera virtual. Então, o que as câmeras de escalada devem fazer? Bem, eu acho que há duas maneiras de resolver isso. Acho que sempre que estamos subindo, devemos ampliar. Então o jogador faz sentido porque o jogador, quando ele está subindo, ele não pode ver muito longe porque ele está focado em subir a folha. Ok, isso não é muito lógico, mas essa é a lógica do meu ganho. Então eu vou torná-lo um pouco menor e torná-lo um 2.5. Está bem. 2.5. Talvez seja muito pequeno. Vamos fazer isso. Quanto é que ficar em marcha lenta ganha? 43. Ok, eu acho que três é bom o suficiente. Agora voltamos e as câmeras controladas pelo estado e vamos em frente e adicionar pouso. Então aqui vou escolher ir de qualquer câmera para escalar. Levará dois segundos. Eu acho que dois segundos é bom ou 1.5 quanto a 1.5. E da escalada para qualquer câmera, acho que deve levar dois, talvez 2,5, porque vamos
pensar nisso porque sempre que ele pára de subir, ele chega a isso. Ele está cansado. Ele ainda está olhando para o chão e então ele move a cabeça para cima e vê tudo. Ok, ótimo. Excelente. Então guarde isso. Eu sei que não é muito lógico, mas ficar lá comigo. E você pode criar sua própria lógica de jogo a propósito, e você não precisa seguir a minha. Então agora ele dirige a câmera e sai. Quando ele pára de correr, a câmera volta e se ele saltar e segurar
a escada ou quero dizer o lençol pendurado. Bem, eu não vi muita mudança nisso porque nós não adicionamos isso ao estado. Então vamos em frente e adicionar um estado ou novo, subindo e subindo a escada. Salvei isso de volta. E agora vamos demonstrar. Não se esqueça de adicionar os estados ou agora
corremos, ampliamos, pulamos e ampliamos. E quando ele chega ao topo, o zoom volta muito rápido. E eu não gosto desse efeito. Precisa de um pouco mais de mudança, mas não se preocupe com isso. Descobriremos isso mais tarde quando alterarmos nosso jogo. Espero que tenha gostado do vídeo. Espero que tenha se divertido nesta seção. E como última coisa que faremos é cometer nossa mudança. Como vê, tenho cometido isso o tempo todo. Espero que você também esteja. Então vamos criar estados animados impulsionados com um ponto de exclamação porque terminamos a seção. Você tem sido incrível. Quero parabenizá-lo e quero que tire um segundo para apreciar todo o trabalho duro que tem feito até agora. Então, dê-te um máximo de cinco e vejo-te no próximo vídeo.
34. Seção 5: adicionando: Bem-vindo de volta a todos a um novo vídeo e a uma nova seção. Então este será um pouco de um vídeo mais longo, mas vai valer a pena, porque estamos finalmente adicionando alguns inimigos em R C. Então, como você pode ver aqui, nosso inimigo, sempre que pressionamos no jogo, Vá para a cena. O nosso inimigo anda. E ele não só faz isso, ele realmente vira sempre que chega a uma parede. Como você pode vê-lo, ele tem uma pequena coroa em sua cabeça e ele continua saltando e saltando e pulando esquerda e direita. Agora, ainda podemos, ainda não temos a capacidade de nos magoar por eles, mas vamos acrescentar isso muito em breve. Quero duas coisas de você. Primeiro de tudo, quero muita concentração. E a segunda coisa que preciso é dos seus pacientes. Então vamos em frente e escurece. Ok, então adicionando inimigos. Finalmente, a primeira coisa que vamos fazer é
entrar nos recursos e importar o inimigo. Sprites criará uma pasta. Vamos chamar esta pasta de inimigo. E adicionaremos essas proteínas à pasta inimiga. Agora o que vamos fazer é cortar isso. Nós vamos fazer uma animação com eles e vamos
criar um novo objeto de jogo chamado inimigo com sprite, um renderizador de sprite, um corpo rígido, um colisor e tudo mais. Então fizemos todos esses passos com o jogador. Então, se você sente que você tem a confiança e, claro, a coragem, vamos em frente e fazer uma pequena corrida. Eu vou estar fazendo tudo e eu vou estar falando sobre isso para que você possa fazê-lo comigo ao mesmo tempo e vamos ver quem pode fazer isso primeiro, 0, K. Vamos começar. Então a primeira coisa que vamos fazer é ir
para o sprite vai fazer os pixels por unidade. Vamos em frente e fazê-los 30. Vamos fazer esses modos privados múltiplos, e vamos aplicar isso. Vamos para Sprite Editor e vemos que temos 123456. Vamos em frente e pegar nossa calculadora de confiança. Então temos 228 divididos por seis. Isso faz 3838. Vamos em frente e cortá-lo. Já é 38 por 28. Clique em slides e eles são perfeitos. Aplique isso, volte. E agora temos o nosso sprite cortado. Vamos em frente e criar um objeto de jogo vazio. Vamos reiniciá-lo para o local original. Vamos colocá-lo aqui na plataforma, e vamos em frente e renomeá-lo para inimigo. Agora temos um objeto de jogo inimigo. Peso. Não renomeou inimigo. Por favor, entre, e agora é um inimigo. Vamos em frente e adicionar um renderizador de sprite ao nosso inimigo e escolheremos um sprite padrão para ele. E agora ainda não conseguimos vê-lo porque precisamos criar algumas camadas. Então vamos adicionar uma camada de classificação ao nosso inimigo. Vamos chamar esta camada de separação de inimigo. E vamos colocá-lo entre a escalada e o jogador. Então ele vai ser processado e inundações na frente do fundo, mas atrás do jogador e do primeiro plano. Ok, isso está feito. E agora volte para o inimigo, faça a camada de classificação deste produto como inimigo. E lá vai você. Temos nosso inimigo presente na cena. Vamos torná-lo um pouco maior. Eu quero fazer eu pensar 22. Vamos fazer com que ele tenha 22. Está bem. Agora ele é maior e parece um pouco melhor, maior que o jogador. Excelente. Da próxima vez que vamos fazer é adicionar um corpo rígido. Então o componente Rigid Body 2D vai torná-lo cinemático. E vamos adicionar um colisor ao nosso inimigo. Então eu vou escolher um colisor cápsula também libera a rotação no Zed para o corpo rígido. Feche isso. Acho que não precisamos fazer isso. Vou fazer isso só para fazer isso, só por precaução. Então vamos em frente e editar o colisor vai torná-lo pequeno. Não precisamos torná-lo grande. E este é o colisor que determinará quando nosso jogador será atingido. Então eu vou torná-lo pequeno, o mais pequeno possível enquanto ainda torná-lo justo. Então eu acho que um pouco grande é bom o suficiente. Então, só assim. Oh, ok, ótimo. Você não quer adicionar um grande hit box para o seu inimigo porque isso faria o jogo um pouco injusto. Ok, agora estamos prontos para ir. Certo, então nuvem casual, o que mais precisamos? Bem, precisamos de um animador no inimigo Gn, e precisamos criar uma animação. Então vamos fazer isso. Selecione os sprites, clique com o botão direito do mouse e crie a animação em execução. Então, correndo. E vamos em frente e levá-lo para a pasta de animação. Mas a primeira coisa que precisamos fazer é ir para a animação e criar uma pasta. Vamos ligar para este jogador para começar a organizar tudo para que não tenhamos várias corridas. E então criaremos uma pasta e chamaremos de inimigo. Adoro criar pastas. Ele realmente nos dá um campo muito organizado para o nosso jogo e nossa hierarquia. Agora dentro do inimigo, dentro da animação, vamos criar um controlador animador e nomeá-lo inimigo. Então vamos voltar para os sprites e pegar nossa animação, colocá-la dentro da pasta inimiga, e adicioná-la ao animador aqui em nosso painel. Certo, mais um passo. Temos que adicionar o animador ao Animador e nosso inspetor para o inimigo salvou isso. O que mais precisamos? Bem, nós temos tudo, então vamos em frente e demo. Veja o que acontece se funcionou. Lidar com a visão da cena e nosso inimigo não está fazendo nada. Por que é isso? Bem, eu acho que porque ele não está looping. Guarde isso, volte para o modo de jogo. Procura a cena, e agora o nosso inimigo está a fugir. Um muito, muito, muito legal. Ok, ótimo. Agora o que precisamos fazer é adicionar comportamento a este inimigo e fazê-lo ir, pelo
menos agora para o lado esquerdo da nossa tela. Então vamos criar um roteiro para o inimigo, e vamos chamar isso de simplesmente inimigo. Então digite significa criar um novo script era o nome do inimigo, criar e adicionar peso para o Visual Studio. Por que abriu? Ok, agora temos o roteiro inimigo voltar para os ativos e colocar o inimigo dentro das saias para não perdê-lo. Está bem, obrigado. Visual Studio. Por que você continua se abrindo de volta para os scripts agora, clique duas vezes em inimigo, e agora temos um novo script para inimigo. Sim. Então, o que queremos fazer? Bem, nós queremos fazer o nosso inimigo se mover, pelo
menos por enquanto para a esquerda. Por que é isso? Por que é a esquerda? Bem, porque descrito por padrão está olhando para a esquerda. Então vamos em frente e fazer isso. A primeira coisa que precisamos para fazer o inimigo se mover para a esquerda é criar uma referência de corpo rígido. Então vamos criar um corpo rígido para a variável, que vamos chamar de corpo rígido inimigo. E nós vamos ter o componente bem aqui no início. Então, qualquer corpo rígido é igual a o, o que é menos quatro é igual a obter componente. E é um tipo de Corpo Rígido 2D. A próxima coisa que precisaremos fazer, uma atualização fará com que nosso corpo rígido inimigo seja executado para a esquerda. Isso significa que vamos escrever inimigo corpo rígido velocidade ponto é igual a novo vetor dois. E o que devemos escrever dentro do vetor dois? Bem, queremos que ele se mova para a esquerda, no plano horizontal na direção esquerda. Então só será adicionando algo ao flutuador x nada ao y. e já que estamos adicionando algo ao X e é diferente, digamos, classe de
fluxo, vá em frente e esterilize-o. Então faça um campo serializado. Será um carro alegórico e chamaremos a velocidade de corrida inimiga. E vamos em frente e fazê-lo. Eu não sei, talvez cinco F Podemos mudá-lo quando você quiser, por agora, vamos fazer cinco F, e vamos adicionar à velocidade inimiga Ron. Mas uma coisa, e na direção y, vai ser 0. Mas uma coisa que você tem que ter em mente é que porque estamos indo para a esquerda, isso significa que a velocidade deve ser negativa. Então vamos colocar um menos logo atrás da corrida inimiga. Guarde isso. Vamos voltar para a Unidade e ver se funcionou. Então guarde isso, salve tudo. Clique no jogo. E vamos nos certificar de que vimos e agora nosso inimigo
corre e corre e continua correndo atrás do primeiro plano. E ele, onde você está indo? Oh, espere, espere, espere. Está bem. Então, pelo menos, está funcionando. Agora o que precisamos fazer é fazer nosso inimigo virar sempre que ele chegar na borda da plataforma. Dessa forma, ele vai girando e girando de um lado para o outro. Então ele vai correr para o Edge, Hill, virar aquela borda e correr de volta para a parede. E sempre que ele chega à parede, ele precisa virar de novo. E isso é parte do seu desafio, ou o seu desafio é fazer o inimigo virar. Agora, este não é um desafio fácil porque quando o inimigo chega ao fim de uma plataforma, precisamos fazê-los virar e ir para a outra direção. Então vou te dar algumas dicas. Primeiro de tudo, você precisa virar horizontalmente como fizemos no jogador. Você precisará usar um colisor para determinar quando virar. Então você precisará adicionar outro colisor ao inimigo. E esse colisor saberá que sempre que chegarmos a uma parede ou enriquecermos o fim de uma plataforma, você precisará, bem, esse é o colisor de caixa que você precisará adicionar para detectar as colisões. E eu vou te dar uma grande dica. Essa grande dica é usar algo chamado “On Trigger exit”. Agora não cobrimos a saída de açúcar ou entrar ainda. Mas eu vou fazer, eu vou te dar esse grande desafio para que você descubra algo novo. Porque, como eu disse, meu objetivo é torná-lo um especialista em
solucionadores de problemas e não apenas me ver criar um jogo e pesquisar tudo para mim mesmo. Então, basta dar-lhe os recursos e a documentação e mostrar-lhe isso agora. Então é um colisor 2D, que seria, claro, o colisor, o colisor de caixa que o inimigo tem. Ele vai usar algo chamado Onsager sair para d, que leva em um colisor 2D. Então, se você ler a descrição, ela é enviada quando outro objeto deixa um colisor de gatilho ligado a este objeto. Então, sempre que saímos com o nosso colisor de caixa, algo que deve ser o chão ou a parede. Teremos a habilidade de fazer algo dentro das saídas sem gatilho. Então vamos acabar com isso. Mas primeiro, pausar o vídeo e ir fazer o Challenger. Oh, ok, bem-vindo de volta. Então, como vamos fazer esse desafio? Precisamos virar nosso inimigo. A primeira coisa que vamos fazer é adicionar um colisor de caixa a este inimigo. E este colisor de caixa representará algo chamado Periscópio. Então, se você não sabe o que é um periscópio, é algo usado nos submarinos. Sabe o que é um submarino? É um navio que flutua ou não flutua na verdade que nada em Eu não tenho certeza se é frio, nada debaixo d'água e tem um Periscópio. E esse periscópio é como uma lente que sobe do navio e pode olhar sobre a água. Tenho certeza que você já viu isso em desenhos animados ou em alguns tipos de filmes. E chamamos isso de periscópio porque será como um submarino, mas invertido. Então este colisor de caixa irá certificar-se de que estamos saindo pela plataforma. Então, se pegarmos nosso inimigo agora e começarmos a movê-lo, então ele se move, se move, se move, se move, se move. E sempre que ele chegar ao limite aqui, tudo bem. Ele irá acionar a saída não-gatilho, que é uma função que vai virar ou um flip 12-v dentro dele. Mas a saída do empreendedor é usada sempre que nosso colisor de caixa sai de uma certa coisa. Então, sempre que isso acontecer, precisamos virar o sprite para menos 1 e então nosso inimigo
começará a correr na outra direção até chegar à parede. E quando ele chega à parede e sai pelo colisor, então novamente, nós viramos mais uma vez e ele volta para o outro lado. E por que isso funciona? Bem, porque como você pode se lembrar, em primeiro plano temos isso. Onde está o colisor de compostagem? Temos este colisor composto, e é assim que funciona a saída do empreendedor. Sempre que o nosso Colisor ou o Colisor do inimigo sair por aqui, por exemplo, por aqui, por esta parede aqui. Quando ele sair através dele, vamos acionar, vamos usar a saída do empreendedor e o que estiver dentro da saída Onsager, que será o nosso sprite flip será executado e nosso jogador sprite vai virar. Certo, então espero que não tenha sido muito confuso. Nem sequer tenho a certeza. Então, vamos guardar isso. Vamos voltar para o Visual Studio e vamos em frente e começar. A primeira coisa que faremos é criar a saída Onsager. Então, se nós simplesmente descer aqui e começar a escrever no gatilho, Visual Studio são incríveis e melhor amigo nos dá um monte de sugestões. E um deles está na saída do gatilho também. Então agora o que devemos escrever e ao sul da saída de gatilho braço, primeira coisa que temos que escrever é o
lado de resolução flip sprite da saída do empreendedor criará uma função que será flip sprite. E este flip sprite vai ser muito semelhante ao do jogador. Mas a única diferença é que, neste momento,
nós estamos, nós realmente não temos nenhuma corrida horizontalmente ou velocidade, ou nós não precisamos verificar se há nada porque todo o movimento é dinâmico. Então a única coisa que precisamos é esta linha aqui, que verifica a direção ou o sinal da velocidade no corpo rígido. Então vamos em frente e gerar o método e simplesmente colar isso aqui. E mais uma coisa que precisamos mudar é o corpo rígido inimigo. Ok? Então agora, sempre que acionarmos a saída do empreendedor dois D entrarão no orgulho flips, e este método flip sprite irá verificar para o inimigo corpo rígido ponto velocidade ponto x seno. Então, baseado nisso, ele vai virar o sprite. Oh, kay, caret. A próxima coisa que precisamos fazer, e agora isso funciona perfeitamente bem, mas o único problema é que nossos inimigos ainda vão
na mesma direção que ele está indo porque nós não mudamos como ele corre. Ainda é uma atualização. Temos nosso inimigo que a velocidade rígida do corpo ainda está na mesma direção. E, a fim de corrigir isso, vamos criar um método que é chamado está virado para a esquerda. Então, qual é esse método? Vamos em frente e criamos e veremos o que ele faz. É um booleano. Será um booleano e é chamado está virado para a esquerda. Caso O. Então o que é, está virado para a esquerda? Bem, é um booleano que irá retornar a transformação ou ponto escala local ponto x. e ele irá verificar se essa escala é maior ou menor que 0. Por que é isso? Bem, porque se voltarmos para sua unidade, ele e olharmos para nosso inimigo, podemos ver que quando ele está se movendo para a esquerda ou para a esquerda. Aqui na transformação, vemos que a escala dele é uma. Então, se ele está virado para a esquerda e isso significa que sua escala é maior que 0, isso significa que a função ou método está voltada para a esquerda retorna true. E se ele não está virado para a esquerda é se ele está virado para a direita, isso significa que sua escala será menos um. Isso significa que retornará falso. E como vamos usar isso? Vamos usar isso aqui no corpo rígido do NMI ou aqui na atualização. Então vamos em frente e fazer isso. Então este está virado para a esquerda irá verificar para a transformação pontos locais couve e ponto x é claro. E ele vai verificar se é maior que 0. Então efeito é maior que 0. Isso será verdadeiro e essa função ou método retornará verdadeiro. E isso significa que se está virado para a esquerda, está virado para a esquerda. Vamos fazer, vamos fazer nosso inimigo ir na direção esquerda. Senão. Isso significa que se ele não está virado para a esquerda, vamos em frente e copiar isso. E removeremos o sinal de menos. Então vamos remover isso, fazer tudo apertado e bom. E vamos verificar se isso funcionou. Então vamos colocar o inimigo bem aqui. Vamos clicar no jogo. Vamos entrar na cena do crime. E não funcionou de todo. Por quê? Onde diabos esse cara foi? Então, se ele chegar ao muro, ele também não faz nada. Por que é isso? Bem, acho que é por causa disso. Nosso inimigo ainda não tem uma camada. Então vamos em frente e adicionar uma camada Inimigo. Então camada inimiga. E guarde isso. E vamos para a matriz e certificar-nos de que o nosso inimigo só interage com o jogador e com o solo. Então guarde isso. Vamos ver se isso funciona. Agora, volte, clique no jogo, verifique arsine e nossos inimigos ainda vai e ele continua indo até que ele atinja a escalada. Então, qual é o problema? O problema é que devemos fazer deste colisor de caixa um gatilho. E isso é muito importante, e eu esqueci de fazer isso. E por que isso é importante? Bem, por causa do nome da função que estamos usando, chama-se “On Trigger Sits”. Então este inimigo deve ser um gatilho. Quero dizer, o colisor de caixa deve ser um gatilho. Então, se voltarmos bem, vamos colocá-lo aqui para termos tempo para verificar se o inimigo vai pecar e ele deve virar e ele acaba com a parede. Ele também vira. E se ele voltar, ele também vira e tudo funciona perfeitamente. Então vamos rever o código um pouco, porque eu sei que pode ser confuso. Portanto, nosso inimigo tem uma velocidade NME Ron e essa velocidade inimiga Irã é constante sempre, mas seu próprio joelho muda de direção com base na direção que nosso inimigo está enfrentando. Então o que fizemos é que usamos o está voltando para a esquerda função ou método que verifica se o nosso jogador está virado para a esquerda com base na transformação que escala local 0.8x. Então, se o nosso jogador está virado para a esquerda, escala será um e sua direção será para a esquerda. Por isso, colocamos um menos ao lado da velocidade inimigos Ron. E se ele não está encarando o amado, isso significa que ele está virado para a direita. Isso significa que sua escala local é negativa. Isso significa que a velocidade da urina deve estar na direção certa. A próxima coisa que fizemos foi criar uma saída de açúcar. E esta saída de empreendedor é ativada quando outro nosso colisor de caixa que criamos como um periscópio sob nosso inimigo. Ele, sempre que sai de um certo, devemos chamá-lo, um certo Colider. Sempre que ele sai que, ele é acionado e o que está dentro desse método é executado. E o que colocamos dentro dele é um flip sprite, que vira baseado no sinal de velocidade dos corpos rígidos inimigos. Espero que tenham gostado do vídeo. Espero que não tenha sido muito confuso. Eu sei que foi uma longa. Por isso, obrigado por me acompanhar e vemo-nos na próxima.
35. Hit para jogadores: Voltem todos para um novo vídeo. E neste vídeo vamos tornar o nosso jogador vulnerável aos nossos inimigos. Agora, sempre que tocamos nosso inimigo, você pode ver que voamos para longe e tocamos uma pequena animação que nos
deixa brancos e não podemos nos mover por cerca de dois segundos. Então, se tentarmos nos mover agora, não podemos, mas depois de dois segundos, não podemos. Então este vídeo também é um pouco longo, mas também vale muito, muito a pena, porque estamos começando a criar mecânicas para o nosso jogo. Então não vamos perder mais tempo e vamos começar. A. Então vou começar por te dar um desafio. Então seu desafio será criar uma cabeça dramática. Então, quando o jogador toca o inimigo, precisamos desencadear algum tipo de chutes. O medo terá de mudar a animação dos jogadores. E precisamos parar a habilidade de nos movermos por dois segundos. Então eu sei que isso é difícil e estamos defendendo o desafio, mas tenho certeza que você está à altura da tarefa. Pause o vídeo agora mesmo e vá fazer o desafio. Ok, bem-vindo de volta. Então, antes de começarmos, a primeira coisa que eu quero que você faça é que você vá para a ondulação, vá para o controle de versão ou árvore de origem, e vá em frente e prepare tudo do vídeo anterior. Nós não tivemos tempo para fazer isso, então vamos em frente e chamar isso de inimigos adicionados e transformá-los em volta. Ok, isso é o suficiente comentário que, e agora ele está salvo em nosso controle de versão. Vamos voltar para a Unidade e pensar no que vamos fazer. Bem, queremos que nossos jogadores sejam atingidos sempre que ele tocar no inimigo. Então vá para o script do jogador e vamos ver o que vamos fazer. A primeira coisa que vamos fazer é adicionar um método chamado hit camada. E este jogador atingido só deve ser chamado quando o nosso jogador está tocando o inimigo. Então vamos precisar ir em frente para a unidade. E algo que precisamos fazer antes é fazer nosso inimigo, a camada inimiga, na camada Inimigo. E outra coisa que podemos fazer, podemos realmente pré-fabricar são inimigos ou agora temos um pré-fab do inimigo porque já temos tudo configurado nele quase. Então vamos voltar e ver aqui. Então hit jogador só pode ser chamado se o nosso Colider caixa, ponto
2D, não, eu sou E meu colisor caixa. Então meu colisor caixa, enquanto que, My Box Collider 2D ponto está tocando, está tocando camadas. Desculpe, não sei o que deu no Visual Studio. Então está tocando camadas, camada,
máscara, ponto obter mesquita y. o que não fez isso capitalizado? Ok, então agora máscara de camada, ponto obter máscara. E finalmente, podemos adicionar o inimigo aqui mesmo. E porque é uma referência de string, vamos para o inimigo, clique na camada Adicionar e encontrar a preferência de string para o inimigo. Volte para o Visual Studio e agora abra os colchetes. Agora, se você está curioso como eu estou movendo isso. Bem, na verdade eu realcei em espera Alt e eu pressiono a seta para cima. E agora uma ordem para recuar para a direita, basta clicar em Tab ir taxa. Agora vamos em frente e gerar esse método. Temos um ataque de jogador agora. E o que devemos fazer dentro do hit do jogador? Bem, o que queremos fazer é antes de tudo, nosso jogador no ano. Então vamos em frente e criar uma variável para isso. Será um campo serializado. Será um fator dois. Será um fator dois porque queremos que o jogador chutado na direção x n e na direção do vento. Vamos chamar isso de chute. E vai ser um novo vetor para, com quais variáveis devemos torná-lo? O que, quão difícil ou quão alto deve ser? Acho que 50 F por 50 F é um bom chute. Podemos ser capazes de mudá-lo em nosso Inspetor mais tarde, então não se preocupe. Vamos apagar isto. E vamos adicionar este chute de sucesso à nossa velocidade rígida do corpo. Então, minha velocidade rígida do corpo, velocidade dos
pontos, ok, vai ser atingido pontapé. Mas isso não é suficiente. Nós queremos multiplicá-lo por algo e que algo vai ser nosso Eu apenas escreveria e eu vou te dizer o que é. Então vai ser menos transformado escala local de ponto, ok? Dot x e um F. Então guarde isso e deixe-me explicar o que isso significa. Primeiro de tudo, é claro que você entende o que é um chute, mas por que estamos multiplicando? Era um novo vetor dois com a escala local de menos transformação lote. Bem, digamos, por exemplo, nosso jogador está caminhando em direção ao inimigo. Então vamos pegar esse jogador e ele está correndo em direção ao inimigo. Então a escala dele é uma. Então, se ele for atingido, ele será lançado no ar. Ok? Mas o problema é que não queremos que ele se atire no inimigo. Queremos que ele se afaste do inimigo. Então é por isso que colocamos His, multiplicamos o chute de acerto por um novo vetor que é menos transformar ponto escala local. Assim ele está enfrentando os inimigos dessa maneira, ou do lado esquerdo, certo? Ou nessa direção, ele será atingido por um menos e ele saltará para a esquerda. Ou, e se ele for deste lado e sua escala for menos1, ele será enviado para aquele lado. Certo, então espero que isso explique isso. Então clique no jogo. E vamos ver se deixamos o inimigo golar, tocamos nele e saltamos para longe. Então vamos ver isso de novo. E ele realmente ficou preso na escalada. Vamos dar outra batida. E vamos ver novamente mais um livro de tempo ou gays, correto. Podemos, talvez mudemos o golpe ou a força do golpe mais tarde. Mas, por enquanto, acho que é bom o suficiente. Então, se você neste momento sentir que você tem tudo sob controle e você quer continuar desafiando sozinho. Encorajo-o a fazer isso. Se não, vamos continuar. Vamos importar nosso chefe de espírito dos recursos que eu te amei. Vamos em frente e colocá-los dentro de onde estão
os sprites dentro dos sprites Conquistadores, ótimo. Então esta é a cabeça. Vamos fazer com que 30 pixels por unidade. Vamos fazer com que seja múltiplo. Vamos aplicar isso e entrar no editor de sprite. Vamos grade por tamanho de célula, e eu vou deixar este foi 58 por 58 com uma fatia de preenchimento de 20 pixels que para cima, perfeito. Então 58 por 58 com 20 estofamento, aplique isso. E agora vamos em frente e criar a animação para nossos jogadores atingidos. Então vá para a animação e nós vamos, como devemos chamar isso? Bem, recebendo um hit, Salve isso, e movê-lo para
a pasta de animação e para a pasta do jogador dentro da animação. E o que faremos agora? Bem, vamos adicioná-lo ao nosso animador. E como vamos fazer as transições aqui? Então, vamos fazer a transição de ter filhos de qualquer estado. O que isso faz é onde qualquer que seja o nosso status, se todos jogarem como correr estão saltando. Não sei, escalando, ocioso. Se ele toca o inimigo, ele precisa acionar o ser atingido e acionar a animação de ser atingido. E vamos ver a animação agora mesmo. Se conseguirmos a cabeça, vamos ver isso. Oh, ok, excelente no trabalho. Tudo bem. E o que devemos fazer? Devia estar em loop. Não, acho que não deveria ser. Então, sempre que nosso jogador é atingido, seu B pode ser de qualquer estado e então ele deve voltar para a marcha lenta. E vamos ver como devemos fazer essas transições. Então, como sempre, vamos transformar a duração da transição para 0, então é instantânea, instantânea. E precisamos, claro, adicionar uma condição aqui que será um gatilho, não um booleano porque não precisamos voltar. Só precisávamos ser um gatilho. E vamos chamar isso de bater só para ficar consistente com os gatilhos acima dele. E agora vamos adicionar essa condição aqui, e vamos ver como vamos usar este gatilho em vez do booleano. A próxima coisa que vamos precisar para a transição de volta para o alargamento, e eu acho que vamos fazer essa transição para. Vamos ver como essa transição B. Primeiro de tudo, isso seria 0 aqui. Então guarde isso. E para ir da batida na parte de trás para a marcha lenta, acho que vamos fazer o tempo de duração. Podemos realmente fazê-lo, digamos um. Ok? Então, sempre que a batida, sendo atingido terminar ou podemos fazê-lo, por exemplo, vamos ver como isso acontece depois de realmente parar o jogador de se mover. Então vamos em frente e salvar isso e ir e acionar a animação quando somos atingidos, a maneira como fazemos isso é conseguindo nosso animador. E em vez de definir Bool, vamos usar isso aqui. Isso se chama “set trigger”. E leva também uma referência de string. Então vamos buscá-lo. Acertando o Controle C. Bem, não, aqui não. E agora a nossa animação deve ser acionada. E como adicionamos um tempo de saída, ele sairá por conta própria. Então clique no jogo. E vamos ver se isso funciona. Então nosso inimigo lá e nós somos atingidos, e como você viu, nós tocamos a animação. Vamos fazer isso de novo. E voltamos a ficar ociosos ou gays, ótimo. Novamente. Então vamos parar com isso. Vamos passar para o próximo passo, que é, vejamos, nosso desafio novamente é parar a habilidade de se mover por dois segundos. Então, como vamos fazer isso? A primeira coisa que vamos fazer é criar uma variável bem aqui que será um booleano. E esse booleano vai ser algo que vamos chamar de está machucando ela. Pense, ok, e o que essa dor faz? Bem, em primeiro lugar, vai ser falso quando começarmos o jogo. E o que essa variável deve fazer? Bem, dentro da atualização, se está doendo. Então, se o nosso jogador está sofrendo ou livre negado, então vamos adicionar um ponto de exclamação. Então, se o nosso jogador está sofrendo, mantenha pressionada Alt e mova-o para cima e pressione Tab e tudo está ótimo. Então, se o nosso jogador está doendo, não
queremos ser capazes de correr,
saltar, escalar ou qualquer coisa. Queremos parar o nosso fingido morto em seus trilhos. Então o que fizemos aqui é que criamos uma variável que é, está doendo, que só vai, que será verdade sempre que nosso jogador for
atingido e false mais tarde criará algo para ele. Então, se doer, se está doendo é verdade, isso fará com que toda esta declaração seja falsa e
não seremos capazes de inserir os seguintes métodos. Mas se está doendo é falso, a declaração com o ponto de exclamação negando será verdadeira e será capaz de fazer tudo isso. Então vamos definir, está doendo muito verdade. Sempre que somos atingidos. E vamos ver se isso funciona. Volte para Unity, clique em jogar. E nos machucamos. E nós não podemos nos mover mais no entanto, nós tentamos. Então, vamos clicar em jogar novamente, sair e voltar para o Visual Studio. Então, agora, o que devemos fazer? Bem, precisamos transformar essa dor de volta em falso. E como vamos fazer isso? Depois de dois segundos? Vamos fazer isso usando algo chamado Cole Teens e o que nossas co-rotinas. Bem, é um método que pode suspender a execução da instrução até uma determinada condição seja atendida ou certas condições com um s sejam atendidas. Então, essas suspensões são conhecidas como rendimento. E no nosso exemplo será usado, será suspender o tempo até que o nosso jogador pode se mover novamente depois de ser atingido. Então virar é reverter para falso. Eu amei as documentações de unidade para rotinas de
carvão nos recursos para que você possa ir e ler tudo sobre eles. Mas esta é a idéia principal por trás de revestimentos. E corotinas são extremamente importantes e unidade o desenvolvimento do jogo. Então é uma grande habilidade para aprender. E vamos em frente e fazer um revestimento. Então, a maneira como iniciamos uma rotina de chamada é a seguinte. Então nós digitamos I, enumerar tudo. Então eu no numerador. Vamos chamar isso de parar de doer. E é isso. A próxima coisa que precisamos fazer é escrever rendimento, retornar. E a próxima coisa que precisaremos é de novo. Espere quatro segundos. Então agora podemos esperar por uma certa quantidade de segundos. E como dissemos, vamos fazer dois f porque é preciso um flutuador. E depois de esperarmos por dois segundos, vamos virar está doendo de volta para falso. E seremos capazes de mover o nosso jogador novamente. Agora, antes de
continuarmos, precisamos chamar a rotina. E a maneira como chamamos corotinas como nós simplesmente digitamos e começamos co rotina e dentro dela, nós damos o nome co-rotina para que ele pare de doer. Feche os parênteses, salve isso, e tudo deve funcionar. Volte para Unity, clique em jogar. E agora somos atingidos com mosca de distância. E depois de dois segundos podemos voltar de novo e tudo funciona perfeitamente. Pegamos a cabeça, vemos a animação. Paramos por dois segundos. Agora precisamos sintonizar tudo porque continuamos correndo, mas tudo bem. Vamos transformá-lo mais tarde. Então vamos ver tudo aqui. E vamos ver o que devemos explicar. Então, a primeira coisa que verificar se estamos tocando o inimigo, e se estamos tocando o inimigo vai entrar na cabeça jogo. Dentro da jogada hit, nós adicionamos a velocidade que é atingido chute. E esse chute de hit é multiplicado
pela outra direção que estamos enfrentando usando a escala local de transformação ponto x. então
definimos o gatilho de bater. Vamos definir o está doendo muito verdadeiro, que nos impediu de usar todos os métodos dentro de, dentro de atualização. Em seguida, começamos uma co-rotina que espera por dois segundos e, em seguida, volta para trás está doendo para falso. Espero que o vídeo não tenha sido muito difícil. Espero que não tenha sido muito confuso. Se ainda estiver confuso, vá em frente e faça isso de novo e de novo, e certifique-se de entender o que eles chamam de roteamento, porque é muito importante. E vejo-te no próximo vídeo.
36. Solte o BOMB: Bem-vindos de volta a um novo vídeo. E neste aqui, como podem ver aqui, temos uma bomba. E o que esse vínculo faz? Bem, por enquanto, não faz muito, mas explode. Então, se chegarmos perto dele, ele começa a queimar e explode em uma enorme explosão unida. Mas o nosso jogador ainda não se machuca. Então não vamos perder mais tempo e vamos começar. O K. Então, a primeira coisa que vamos fazer, e a parte mais importante de começar algo novo é que vamos para sprites e vamos criar uma pasta. Então a pasta será o vínculo, e é aí que colocaremos sprites pompa. Então vamos para os recursos e obter todas as bombas orgulhosas que eu forneci a você. E agora podemos ver que nascemos boom, colidir e bombardear. Então agora o que vamos fazer é criar um objeto que será um vínculo. Então vamos em frente e criá-lo. Chamaremos isso de bomba, e reiniciaremos sua transformação. E agora podemos encontrar isso bem aqui. Ok, bom. A próxima coisa que faremos, na verdade, vamos em frente e colocá-lo aqui com nosso jogador aqui em cima, que
possamos colocá-los um ao lado do outro e experimentar como quisermos. A próxima coisa que vamos fazer é adicionar um renderizador. Então renderizador, enquanto o renderizador, e vamos precisar adicionar um sprite padrão. E para fazer isso, vamos em frente e começar a cortar nossos sprites. Então vamos escolher múltiplo aqui, mesmo que seja apenas um único sprite, aplicar que vão para esse orgulho e vamos cortá-lo, cortá-lo. É 52 por 56, e isso é o quanto queremos que nosso sprite seja. Então eu estou fazendo isso muito rápido porque você já está familiarizado com os passos. Ir para a bomba, em, fazer a mesma coisa, aplicar tudo, cortá-lo, 52 por 56, aplicar, que veio. E finalmente temos o Boom. Boom também deve ser 30. Acho que vamos fazer isso maior mais tarde para ter uma explosão maior. Mas o corte será o mesmo. Então aplique tudo e agora estamos prontos. Então vamos em frente e adicionar o sprite da bomba. Então é simplesmente bombardeado e não podemos vê-lo. Por que é isso? Bem, claro que você já sabe que é porque não temos uma camada de classificação adequada. Então vamos em frente e adicionar uma camada de classificação que chamaremos de bomba. E vamos torná-lo renderizar e frente do atrás do jogador, ou mesmo apenas atrás do primeiro plano. Então guarde isso. E agora voltamos à bomba e escolhemos a bomba, e agora temos uma bomba. Oh, ok, correto. A próxima coisa que vamos fazer é criar animações. Então vamos em frente e fazer isso. Primeiro, vamos criar uma pasta. Um vídeo tão incrível para as pastas. Então crie uma pasta chamada Bombe, e dentro dela vamos criar, é claro, controlador
animador também cobre bomba controlador
animador e simplesmente arrastá-lo para a bomba. E agora se você clicar no objeto bomba, você pode ver que temos um animador pronto para usar animações nele. Então, de volta ao Sprite, escolha os sprites da bomba e vá em frente e crie uma animação. Vamos chamar isso de queima de animação. Vamos em frente e soltá-lo em animações de colisão. E vamos em frente e criar a animação óssea. E chamaremos isso de animação também. Boom. Ok, adicione quantos O's u1, arraste-o para a bomba. E agora vamos para o animador da bomba. Então, o que devemos fazer agora? Bem, a primeira coisa que vamos fazer, claro, é adicionar a queima. E esse fardo irá diretamente da entrada. Então, após a queima vai para o boom, mas não, não assim. Antes de fazermos isso, precisamos de algum estado ocioso porque, como sabem, a bomba não aciona imediatamente. Queremos que isso ative em um determinado momento que discutiremos mais tarde. Então a primeira coisa que precisamos é criar uma animação a partir deste único sprite. Então vamos fazer isso. Permite-nos fazer isso e chamaremos este ídolo de Bob ocioso. E será uma animação de um sprite. Vamos arrastá-lo para colisão. E este será o primeiro uma animação que será o primeiro estado se você quiser, que será definido a partir da entrada. A próxima coisa que faremos é adicionar a queima. E esta queima será desencadeada por algum tipo de gatilho que irá adicionar. Então, se adicionarmos um gatilho aqui, chamaremos isso de queimadura. E finalmente vamos adicionar o boom. E esta bomba será acionada ou entrará
na transição usando algo chamado tempo de saída. Já falamos sobre tempo extra, mas discutiremos isso mais agora. Então vamos em frente e criar a transição de ídolo colisão para queimar e queimar para vaiar. Então, da bomba ociosa à queima, se
olharmos bem aqui, não precisamos de nenhuma duração de transição e não precisamos de tempo de saída. Tudo o que precisamos é de uma condição, e essa condição seria o nosso gatilho. Em seguida, precisamos fazer a transição entre a queima e o T-Boone. E essa duração de transição seria 0, mas o tempo de saída agora será um. Então queríamos fazer a transição automática da queima para a explosão, que é a animação do boom. E por hora de saída, se você passar o mouse sobre ele, você pode ver esse tempo de saída em tempo normalizado a partir do estado atual. Então, o que isso significa? Se você olhar para a linha do tempo bem aqui, a forma como esta animação funcionará enquanto nos movemos através da queima. E finalmente, quando a queima terminar, vamos fazer a transição para a animação do boom. Então isso acontecerá automaticamente sem a nossa ajuda. Portanto, se, por exemplo, esse tempo de saída não for em segundos, ele só mede o tempo necessário para a animação de explosão. Refiro-me à animação em chamas para terminar. Então digamos que adicionamos um dois aqui. Você pode ver que ele vai levar a quantidade de tempo de duas animações de gravação para terminar, e então ele vai fazer o livro. Vamos fazer um. E o que vamos fazer é ir, vamos fazer a animação em chamas um pouco mais longa. Então clique na bomba, vá para a animação, e clique na bomba em nossa hierarquia, vá para a animação e clique em queimar. Clique nesta pequena seta aqui, e podemos ver que temos estes sprites queimando. Então vamos em frente e copiá-los e escolher o quadro que queremos colar e com base nisso, e novamente, colado em outro momento. Então agora nossa animação como um pouco mais, se clicarmos no jogo, podemos ver que nossa mãe está queimando e pronto para explodir. Então está tudo pronto. Tudo funciona bem. Acho que isso é salvar isso. E o que devemos falar a seguir é sobre a mecânica de bombas que vamos ter. Então, quais são os nossos mecânicos encadernados? Então, a primeira coisa quando um jogador se aproxima do vínculo, o vínculo começará a queimar. Então a ligação terá um raio de explosão. E se o jogador dentro deste raio de sangue, se o jogador está dentro do raio da explosão, ele é jogado e é atingido, então ele vai precisar se machucar. E finalmente, as bombas devem desaparecer quando a explosão terminar. Tentei fazer este vídeo em uma única fita, mas acontece que é muito longo e não quero que se canse. Então o que vamos fazer é quando a capa deste vídeo, quando o jogador chegar perto da bomba e começar a queimar, e então cobriremos o desaparecimento da bomba. Então vai explodir a bomba vai destruí-la. E no próximo vídeo, faremos esses dois pontos. E é hora do seu desafio. E seu desafio será continuar com a mecânica da pompa. Então a primeira coisa que você precisa fazer é acionar a queima quando o jogador se aproxima e você faz isso usando algo que chamamos de um gatilho entrar. Então, a primeira coisa que você precisa fazer é adicionar um colisor de caixa ou qualquer cor que você vê caber em nosso objeto bomba. E você precisa usar algo chamado On Trigger entrou para D. Claro que eu forneci o link e os recursos e é, é uma espécie de semelhante à saída do empreendedor 2D que usamos anteriormente. Vá em frente e leia tudo sobre isso nas documentações da unidade e use-o. E a próxima terá a bomba desaparece quando a animação de explosão terminar. Então eu vou te dar uma mão por isso. Além disso, você precisa destruir um objeto usando destruir sempre que a animação de explosão de bomba terminar. E isso vai ser um pouco complicado porque vamos apresentar algo novo. Mas vamos, eu vou te dar outra dica, que são os eventos. Então, adicionando eventos e animações. Ok, então pausar o vídeo agora mesmo. Vá fazer uma pesquisa. Vá fazer o seu melhor, e não se preocupe em cometer erros. Vejo-te daqui a pouco. Oh, ok, bem-vindo de volta. Então, o que devemos fazer primeiro? A primeira coisa que vamos fazer é entrar em bombas. Foram, já estamos aqui e vamos adicionar um colisor de caixa. Por que um Colisor de Caixa? Bem, isso não importa. Você pode adicionar qualquer colisor que você gosta. Mas, por enquanto, vamos adicionar um colisor de caixa. E acho que vamos fazer isso um pouco maior. Assim que cobrimos. Então, quando o jogador entrar neste raio, ele começará a queimar e nós vamos torná-lo um pouco menor aqui, sair do modo de edição e salvar isso. A próxima coisa que vamos fazer é criar um script de bomba para a nossa bomba porque vamos modificar o seu comportamento. Então criar, bomba, New Script, e criar e adicionar. E agora vamos entrar em nossos ativos e colocar esse roteiro e sag de scripts. Gosto de fazer isso antes de pularmos o Visual Studio. E eu gosto de fazer isso antes mesmo de clicar
no vínculo porque ele vai apresentar algum problema se não fizermos isso primeiro. Mas de qualquer forma, vamos começar o roteiro das bombas. Então a primeira coisa que vamos fazer é criar um gatilho de braço entrar no método. E se entrarmos nos recursos, podemos ver aqui que ele é enviado quando outro objeto entra no colisor de gatilho. Então, quando um objeto entra no colisor de nossa bomba, ele irá acionar este método, que é empresários entrar para o, que é diferente de Onsager saídas, que, que desencadeia sempre que sair do colisor e antes de esquecermos, para que não cometamos o erro que cometemos anteriormente. Precisamos ter certeza de que o colisor de caixa é um gatilho. Então salve isso e volte para o Visual Studio. Então, o que devemos fazer aqui? Bem, como já dissemos, quando o jogador entra no empresário, quero dizer, quando o jogador entra nas proximidades da nossa bomba ou entra no colisor de colisão na bomba. Deve começar a animação. Então a primeira coisa que faremos é obter uma referência ao nosso animador. Então animador, e vamos chamar isso de meu animador. E nós vamos obter o componente desde o início, que será obter animador componente. E estamos prontos. A próxima coisa que faremos é acionar o Burn. Então está pronto, Trevor, abra isso. E porque diz verdadeira referência do anel, sempre
voltamos e pegamos. Então copie isso, cole, feche isso, salve isso. E vamos ver se funcionou. Então espere pela unidade. Clique no jogo. E agora, se tocarmos na bomba, explodirmos, avançaremos. Mas vamos fazer isso de novo, porque quero te mostrar uma coisa. Se chegarmos perto, você pode ver que
essas partículas aqui ainda estão presentes. Então o que precisamos fazer é nos livrar deles. Ok. E antes de fazermos isso, quero fazer a explosão um pouco maior. Então, vamos clicar no vínculo, e vamos para a animação, o boom. E vamos escolher este. E quero torná-lo maior. Então clique neste orgulho e vamos em frente e torná-lo 15. Veja como está bem, é bom o suficiente. Vamos fazer dez. Sim. Uma explosão gigante. Sim, é exatamente o que precisamos. Ok, ótimo. Guarde isso. E agora como vamos destruir usando o método de destruição? E se você entrar nos recursos e na documentação do Unity, podemos ver que há um método que nos permite fazer isso. E o que ele faz é remover um objeto ou componente ou S. Então ele irá remover o objeto bomba completamente de nossa cena. Então vamos fazer isso. E a maneira que vamos fazer isso é vamos criar uma função aqui ou um método. Vamos torná-lo nulo e chamaremos de “destrói bomba”. E só faremos uma coisa e destruiremos bombas e destruiremos. Estamos abertos os colchetes e vamos enviar o objeto do jogo. E este objeto do jogo representa o objeto do jogo, que é o nosso vínculo que tem este script mãe anexado a ele. Portanto, é uma referência muito simples e fácil para a nossa bomba. Guarde isso. E agora o passo final é onde vamos chamar essa função ou método? E onde vamos chamá-lo é do livro. E como eu lhe disse, é sobre eventos. Então, se nos movermos aqui e nossos quadros, o último quadro é onde queremos eliminar a bomba. E se você olhar de perto bem aqui, você pode ver que temos este botão que não está nos dizendo nada, mas isso é um evento. E se clicarmos nele, você pode ver que adiciona uma pequena cápsula aqui, isso é um evento. E o que este evento de animação nos permite fazer, ele nos permite escolher uma função do script que está anexado ao vínculo. Então, se clicarmos nele, podemos ver que temos o empreendedor entrar em 2D ou a destruição bombardeada. Vamos escolher a bomba destruída, e é muito simples. É muito rápido. Vamos guardar isso. Vamos cobrar em jogo. E agora, se entrarmos nas proximidades da bomba explode, e como podem ver, ela é destruída. Então não vemos mais isso em nossa cena. E também não vemos mais isso aqui na nossa hierarquia do lado esquerdo. Então saia do modo de jogo e vamos em frente e preferir nossa bomba. Então prefab o vínculo. Nós temos isso em nosso pré-fabricada, exceto que tudo é bom. E no próximo vídeo, vamos machucar nosso jogador e vamos mandá-lo voar. Então, vemo-nos na próxima.
37. Explodindo nosso Exploding: Bem-vindo de volta meus desenvolvedores de jogos favoritos para um novo vídeo. E neste aqui, nós vamos realmente fazer nossos títulos bombas reais. Porque não só explode agora, um livre está muito perto da bomba. Ele nos joga fora e não podemos nos mover por dois segundos até que possamos nos mover novamente. E podemos ir lá. Então vamos tentar de novo. O Balmer também desaparece. Então não vamos perder mais tempo e vamos começar. Agora temos de magoar o nosso conquistador sempre que ele, quando a bomba explodir, da próxima vez. A primeira coisa que faremos é atualizar as atividades aqui mesmo. E vamos criar um método para fazer isso. E esse método vai ser vazio, vazio, explodir, bomba. Ok. E o que devemos fazer dentro da colisão explorada? Temos de verificar se a nossa jogada está nas proximidades da bomba quando ela explodir. E a maneira que vamos fazer isso é usar algo em Física 2D chamado círculo de sobreposição. Como você pode ver, ele tem vários parâmetros nele, mas vamos usar principalmente o ponto, o raio e a máscara de camada. E nós também, como você pode ver aqui, ele tem um tipo de retorno de Collider 2D, que é útil saber. E na descrição você pode, você pode ver que ele verifica se um colisor cai dentro uma área circular também estará visualizando a área circular. Mas a primeira coisa que precisamos fazer é usar a função. Então é física 2D ponto sobreposição sobre círculo de volta. Então, o que é? Onde é que está? Então se sobrepõe círculo. E como você viu antes, leva o ponto que é o centro, vai ser a nossa posição transform.py. Leva também um raio. Então, como o raio pode ser variável, vamos em frente e criar uma variável para ele. Então é um campo serializado, que será um flutuador, e vamos chamar este raio. E agora o raio será, eu acho que três, f é suficiente. Então vamos em frente e adicionar um raio. E, finalmente, precisamos adicionar uma máscara de camada. Por que adicionar uma máscara de camada? Bem, porque queremos que a bomba só interaja com o jogador, não
queremos que ela exploda, qualquer outra coisa. Então vamos em frente e adicionar uma máscara de camada. Já sabemos como fazer isso. É muito semelhante à camada surpreendente, e requer uma referência de string ou vamos pegar isso do jogador. Clique nas camadas,
as camadas de adição e simplesmente copie a camada em que o jogador reside. Guarde isso, e tudo deve estar funcionando bem. A próxima coisa que vamos fazer é visualizá-lo. E a maneira como vamos visualizar é usando os aparelhos. Como você pode se lembrar. Lembre-se, os aparelhos foram usados aqui em união quando queríamos tornar nosso ícone de câmera um pouco menor. Está aqui no topo. Como você pode ver, são aparelhos e podemos afetar muitas coisas. Então, o que são aparelhos? Gizmos são usados para visualizar os auxiliares de depuração e configuração. E a maneira como ele faz isso, ele se desenha na cena. E estes são um dos seus métodos estáticos. E o que vamos usar é o campo de desenhar fios. Então vamos fazer isso. E uma outra coisa que vamos precisar é este mono comportamento dot OnDraw gizmo selecionado, que vamos usar para uma ordem para usar a velocidade do fio de palha gizmo. Então vamos ver como isso acontece. Sei que isto pode ser confuso, mas isto é muito importante e não é assim tão excitante. Então vazio privado e no sorteio gizmo selecionado, é isso. A próxima coisa que precisaremos são os fios. Então vamos escrever gizmos ponto desenhar fios medo. E como você pode ver aqui, os parâmetros são o Centro, que naturalmente será a posição do ponto de transformação. E claro que precisaria do raio. Então, vamos simplesmente dar-lhe o raio que criamos. E isso é extremamente doloroso porque agora, se entrarmos em nossa cena e clicarmos no vínculo, você pode ver que isso nos dá um, o que eles chamam de um fio, um fio esférico em torno de nossa bomba. E agora sabemos o quão grande ou pequeno precisamos fazer o raio. Então, algumas gotas aqui e o script das bombas, você pode ver que você pode aumentar o raio e torná-lo menor e maior. E é muito útil porque vai nos dizer quão grande ou pequeno queremos fazer a explosão. Ou pelo menos o raio da explosão. Ow, kay, então agora devemos começar a adicionar diferentes comportamentos ao jogador. Antes de fazermos isso, gostaria de verificar se tudo está funcionando. Então vamos em frente e criar uma condição “if”. E o que devemos colocar dentro da condição “if”? Devíamos verificar se temos um jogador dentro do raio. Então, como você pode ver, o círculo de sobreposição retorna um colisor 2D. Então vamos em frente e colocá-lo dentro de uma variável. Vamos chamar este jogador colisor. Vai ser igual a este círculo. Então, se Jogador Collider, isso significa que se nós realmente encontrar um, um colisor jogador, nós vamos imprimir para a tela, hey, treinador você correndo. Certo, então guarde isso. E agora, se voltarmos para a Unidade, veremos algo impresso no console. Então, se chegarmos perto da colisão, ela explode, mas não podemos ver nada. Então, por que isso? Bem, porque ainda não ligamos para a explosão. Então, onde vamos chamar a bomba explosiva? E vamos chamá-lo de um evento
usando o evento de animação que discutimos no vídeo anterior. E eu vou te dar um mini desafio. Então eu quero usar os eventos de animação a
fim de chamar a bomba explorada quando ela explodir. Então, pegue este mini desafio agora, pause o vídeo e tente fazê-lo. Oh, veio mini desafio. O tempo acabou. Então agora vamos para cima. Não, isso impediu isso de volta para baixo, indo para a animação. Clique na bomba e escolha a animação boom. Então vamos ver em qual quadro devemos adicioná-lo? Acho que deveria estar nesta moldura. Ok, então clique em Adicionar Evento, e agora podemos escolher uma função, vai escolher a bomba explode. Então temos destruir a bomba, que destrói a bomba e explode bomba, que explode a bomba. E vamos tentar de novo. Então, agora o nosso jogador se aproxima, ele explode. E em nosso console de código podemos ver que temos, hey, CO2 rodando. Vamos tentar de novo, mas não estar perto da bomba, então nós a acionamos, fugimos e nada é impresso na tela. Excelente. Então agora não queremos imprimir nada. Em vez disso, queremos jogar fora o jogador no ar. A maneira como vamos fazer isso também é usar algo chamado corpo rígido ponto adicionar força. Ok, então este vídeo, tem um monte de coisas novas, mas eu deixei tudo nos recursos e você pode ir conferi-los, ler o quanto quiser sobre eles. São coisas muito básicas. Não precisa se preocupar com isso. Então adicione força, função muito útil para adicionar que adiciona uma força para o corpo rígido. E como você pode ver, é preciso um vetor, três quartos e um modo. Acho que não vamos usar o modo agora, talvez mais tarde. Assim, uma força é aplicada continuamente ao longo da direção. E é disso que vamos precisar. E como podem ver, é aplicado a um corpo rígido. Então excluímos a impressão digital. Então agora vamos adicionar uma força ao jogador. E a maneira como vamos fazer isso é em primeiro lugar tipo e aqui eles estão ponto colisor. Então agora precisamos pegar o corpo rígido dos jogadores usando este colisor. E para fazer isso, vamos simplesmente usar o componente get, que é super útil. Então o colisor do jogador vai tirar o componente rígido do corpo dele. Tão Rigid Body 2D que está presente neste colisor. E vamos adicionar uma força a esse corpo rígido. E agora, como você pode ver, precisamos de um vetor dois 4, e vamos em frente e criá-lo. Assim, como o raio, esta força também é variável e também pode ser usada pelo inspetor vai chamar isso de fator dois e vamos chamá-lo de força de explosão. Oh, tudo bem, excelente. Vai ser um novo vetor dois. E o que devemos dar-lhe uma força de, deve ser 200. Opa, 200 por Devemos adicionar na direção y? Sim, claro por que não? Então vamos adicionar 100 F na direção y. Guarde isso. E agora vamos em frente e colocá-lo dentro da força de explosão. Fechado lá em cima, salvar tudo isso. E o que mais deveríamos fazer? Deveríamos testar isto e ver se funciona. Então agora estamos ao lado da bomba. Queima e mal se move. Ele se mexeu, acho que meia polegada ou até mesmo meia polegada. Então vamos para bombardeado e aumentar isso para e vamos fazer 2 mil só para ver se funciona. Então agora a bomba queima, explode e move nosso jogador um pouco mais, mas ainda não o suficiente. Faremos isto sete mil, sete mil. Salve esse clique no jogo. Vamos, explosão de bomba, jogue-nos para o ar. Ok. Isto não é mau. Southern 1000 é bom. Ok, eu acho que nós não devemos adicionar nenhum na direção y, e vamos adicionar um e outro 0. Então isso é 10 mil salvos que eu acho que isso deve ser suficiente. Ok, eu acho que é o suficiente. E agora é hora do seu desafio. E o teu desafio será acertar o nosso jogador. Então precisamos ferir o conquistador se o seu dentro do raio explodir. E eu vou te dar algumas dicas. Primeiro de tudo, você precisa ter certeza de que o hit do jogador é público, porque vamos
usar o colisor que encontramos para obter o script do jogador e acessar o jogador, bater e bater o nosso jogador. Então, pausar o vídeo agora, esse desafio não é muito difícil. Você é, eu acho que você tem todas as habilidades necessárias para completá-lo. E eu vou te ver em apenas um oh, ok, bem-vindo de volta. Então o que devemos estar fazendo agora é precisamos chamar o jogador de sucesso, que irá acionar a animação e causar dano ao nosso jogador. E como eu disse, notei que é um privado, então vamos torná-lo público. Então podemos usá-lo a partir de scripts diferentes. Salve o jogador, volte para a bomba. E agora devemos escrever aqui, jogador ponto colider get componente. Nós acessamos o, Não, não o avião, nós acessamos o jogador. Então agora temos acesso ao script. E o que podemos fazer aqui é agir como o jogador acertou, salvo isso. E vamos apagar esta linha aqui porque não prejudica a nossa organização. E vamos para a Unidade e ver se isso funciona. Então, o que é suposto acontecer aqui? Que quando entrarmos nessa colisão e isso explodir, devemos nos afastar alguns metros dela. E então não devemos ser capazes de se mover por dois segundos e devemos ver a animação. Então vamos tentar. ato explode, e não podemos nos mover. E vimos a animação. Por que é tão bom? Está bem, desculpa. Então, você viu o quão forte essa explosão governa? Então vamos tentar de novo. Isso foi inesperado, explode, voamos para longe e podemos nos mover por dois segundos. Novamente. Vamos tentar. Em explode. Se voarmos para longe, não podemos nos mover. E depois de dois segundos podemos. Excelente trabalho. Eu não tenho certeza do porquê. Então. Agora o nosso jogador voa para longe. Devíamos configurar mais o EBIT da explosão. Vejo você no próximo vídeo.
38. Adição da habilidade de ataque (como usar arres: Bem-vindos de volta, meus desenvolvedores de jogos favoritos. Neste vídeo, nós vamos adicionar
a capacidade de R player para se defender dos inimigos. Então, se clicarmos no jogo e formos até nosso inimigo enquanto ele está nos atacando, podemos socar ele com o martelo. Claro que nada acontece. Mas aqui podemos dizer, haha, eu acertei o inimigo, então nós batemos nele de novo. Claro que ainda nos mata, mas podemos dar-lhe um soco agora. E no próximo vídeo vamos matar o inimigo. Então agarrem-se aos vossos lugares e vamos começar. Oh, ok. Então a primeira coisa que vamos fazer é importar os sprites de ataque. Então vamos para o Conquistador e vamos em frente e pegar os ataques sprites dos recursos que eu deixei para vocês. E vamos dissecar. Ou quer dizer, fatia faz 30, faz este múltiplo. Você está bem familiarizado com o procedimento agora. Então vamos em frente e fazer dissecação manual. E quanto deve ser? Vamos cortá-lo e ver o que acontece. Então, montar fatias, qual é o problema? Por que não quer que cortemos, por favor? Oh, caso ou vamos mudar isso para 58. Agora podemos cortá-lo? Ok, então isso é muito pequeno, vamos torná-lo maior. Então eu acho que sim grande, que é 78 por 5878 por 58, cortá-lo. E agora temos um deck sprites cortado. Aplique isso. E vamos em frente e criar uma animação para a animação, vamos chamar isso de deck. Ótimo. Vamos colocá-lo dentro de animação e animação, vamos colocá-lo dentro do player. Então agora no animador, o animador do nosso jogador, precisamos adicionar o ataque, a animação atacante. Então arraste isso no animador. E como vamos fazer as transições para o animador? Quero dizer, por atacar. Assim, o ataque pode ser acessado de marcha lenta e de correr. Então você pode atacar enquanto corre e enquanto está parado. E é claro que teremos um retorno a
esses dois estados para que você possa correr e matar todos os inimigos em seu caminho. Isso significa que vamos fazer um booleano. E vamos chamar isso de ataque booleano só para ficar consistente com as coisas acima dele com os outros gatilhos. Assim, a transição de marcha lenta para ataque deve,
naturalmente , ter uma duração de transição de 0 e não deve ter qualquer tempo de saída. E a condição disso será atacar deve ser verdadeira. O mesmo vale para correr com uma duração de transição de 0 sem tempo de saída e com condições de ataque para serem verdadeiras. Agora, as transições de volta devem ter uma duração de transição de 0. E na verdade, você sabe o que, atacar não deveria ser um booleano e deveria ser, sim, apagar isso. Deve ser um gatilho e chamaremos isso de etiquetagem. Vou te dizer o porquê em um segundo. Então vamos voltar. A condição ainda é verdadeira aqui, e a condição está funcionando bem. Ótimo. Quão útil é a unidade? Então, agora, quando entrarmos em animação de ataque e queremos voltar, faremos um tempo de saída e esse tempo será um. Então, quando a animação de ataque termina, voltamos para ociosidade ou podemos voltar para a corrida se já estamos rodando com uma duração de transição de 0. Então guarde isso, certifique-se de transformar o ataque em um gatilho, não um booleano. E vamos em frente e fazer um desafio. Então seu desafio é fazer nosso jogador atacar. Queremos que nossos jogadores atacem quando pressionamos um certo botão. Então vou te dar alguns eventos. Você precisa usar o botão get para baixo porque é muito semelhante ao salto. Queremos que o ataque aconteça imediatamente. Vamos acionar uma animação de ataque. E, finalmente, vamos usar física para o semelhante ao usado e vínculo para obter tudo e focar na palavra todos os inimigos no alcance de ataque. Então, vamos ter que usar não sobreposição círculo, mas sobrepõe círculo o. Então o desafio, as duas primeiras coisas não são tão quentes. Já os fizemos, acho que várias vezes. Mas a parte difícil será a física para D porque tem um aumento nele. Então, se você acha que pode lidar com isso, vá em frente e pause o vídeo e faça o desafio. Ok, bem-vindo de volta. Então vamos ver se nossa animação de ataque realmente funciona. Então, clicamos no jogador, escolha o ataque. E vamos ver se isso funciona. Vamos ampliar o nosso jogador e clicar em jogar. Ok, então a animação de ataque está funcionando perfeitamente bem. Então vamos fechá-los. Salve tudo isso, e vamos para o script do jogador e ver o que precisamos fazer aqui. Então primeiro precisamos criar um método de ataque. Então vamos fazer isso. Então, que etiqueta aqui? E vamos em frente e gerar esse método. Então, para gerá-lo, não. Certo, não se preocupe. E vamos em frente e criar o nosso próprio. Então, nulo privado porque não tem nenhum valor de retorno na Tech. Excelente, então agora a linha vermelha rabiscada deve desaparecer e desaparece. Então, o que devemos fazer um ataque? A primeira coisa que vamos fazer é obter uma entrada do jogador. Então, se plataforma
cruzada, plataforma cruzada, gerenciador de entrada ponto obter botão para baixo, é claro. E o que devemos escrever aqui dentro? Bem, devemos olhar para as entradas em nossas configurações de projeto ou vamos para lá no Unity. E vê-lo no gerenciador de entrada, o que temos para nos ajudar, e uma das coisas que pode nos ajudar é o fogo, que usa o controle esquerdo ou o botão do mouse 0. Então vamos copiar, disparar mais um 0, eu acredito que é o botão mais esquerdo. Então vamos copiar isso. Vamos voltar e colocá-lo aqui entre as duas aspas. E vamos abrir nossa condição se e o que devemos escrever dentro da condição f? A primeira coisa que eu acho que devemos cobrir é acionar a animação. Então, meu animador aciona e nós devemos acionar o anúncio atacando. Vamos fazer isso menor. Isso é entrar em um animador. Copie isso de volta para o Visual Studio. Clique nisso, salve isso. Vamos ver se funciona. Então clique no jogo. E nosso jogador agora ataca sempre que pressionamos o botão do mouse e pára, volta para ocioso ou para correr. Então, se explodirmos seu livro, legal. Então agora podemos correr enquanto batemos e podemos continuar a correr. E se estivermos em pé ocioso, também
podemos bater e voltar para qualquer um deles. Excelente. A próxima coisa que precisamos fazer é criar uma caixa de dano para o nosso jogador. E essa caixa de dano vai nos ajudar a determinar o, bem, usar o círculo de sobreposição na caixa de rebanho, a fim de acertar os inimigos. Então vamos fazer isso. A primeira coisa que faremos é criar um objeto de caixa machucada. E você verá o porquê em um momento. Então vamos em frente e criar a caixa de rebanho. Lá está ele. E vamos redefinir o 0 agora, quero dizer o eixo z. Então agora temos no nosso avião. E vamos ver, vamos chamar essa caixa de ferimento. E o que vamos fazer com esta caixa de ferimentos é que
vamos realmente fazer uma criança para o nosso jogador. E saberás porquê. Na verdade, vou dizer por que agora, como aprendemos sobre crianças e relacionamentos com pais, as crianças vão com os pais e queremos que os insetos feridos estejam sempre ligados ao nosso jogador. Então, como você pode ver agora, se o nosso jogador se mover para a direita, nossa caixa de rebanho se move com o jogador e permanece na mesma posição que podemos predeterminar. E consertaremos a posição do hotbox mais tarde. Mas agora o que precisamos é de uma referência a essa caixa e a nossa repreensão. E a maneira como fazemos isso é que vamos realmente criar um campo serializado que é criado aqui embaixo. Então vamos criar um campo serializado. E este campo será, é do tipo transformar. Então esta será uma caixa ferida do tipo transformado e vamos simplesmente chamá-la de caixa ferida. Guarde isso se voltarmos para a Unidade agora. Certo, volte para a Unidade. E se abrirmos o roteiro no jogador, podemos ver que temos um lugar para adicionar nossa caixa de rebanho. Então vamos simplesmente arrastar isso lá e colocá-lo dentro. Vamos tentar aplicar tudo isso. E agora a caixa do rebanho será parte da pré-fabricada do jogador. Então, se olharmos em pré-fabricada, podemos ver que a caixa de dano será parte do pré-fabricada, que é muito útil. Certo, então o que vem a seguir? Em seguida, precisamos adicionar um raio, assim como fizemos para a ligação. Então precisamos criar um raio para a caixa de ferimento. E vamos em frente e fazer a primeira coisa que precisamos para serializar campo novamente. Então agora vamos em frente e criar um flutuador e vamos chamar este raio de ataque e este raio de ataque por enquanto, vamos apenas fazer três e veremos como podemos consertar isso mais tarde. E outra coisa que faremos é visualizar o raio de ataque. E este será um mini desafio onde eu quero ir e pegar o aparelho OnDraw e usá-lo para raio de ataque. Então, pausar o vídeo e fazer o Desafio Menu. O K Min, o tempo do desafio acabou. Entramos em bombas. Vamos simplesmente copiar isso e vamos colocá-lo na parte inferior do nosso script player, porque não vamos usá-lo muito. E uma coisa precisamos mudar como o raio aqui. Então vamos chamar de raio de ataque. E, claro, não será a posição do ponto de transformação, mas em vez disso, estará na lista de chumbo que estará na posição do ponto da caixa ferida. Então, a transformação do nosso rebanho e não o jogador. Então agora voltamos para a Unidade. E se clicarmos no jogador, podemos ver que agora temos a caixa de rebanho e se a movermos, camadas
VIP, caixa ferida, ou o raio se move com a caixa de rebanho. Então, o que mais devemos fazer? Acho que devemos reduzir o raio de ataque porque é muito grande. E o que, como vai realmente calibrar isso é vai entrar em animações do jogador. Vamos clicar em atacar. E, a propósito, você pode fazer isso como quiser. Mas, por exemplo, eu queria, eu quero que o raio seja exatamente tão grande quanto este martelo balançando, talvez um pouco maior. Então vamos colocá-lo aqui e vamos fazer o raio menor. Ok, então assim. E, e eu acho que isso é suficiente. Sim, acho que isso é bom o suficiente. Ou talvez possamos empurrá-lo um pouco para a direita. Não se preocupe com isso. Não será perceptível. E de fato, para ser ainda melhor porque vamos acertar o inimigo à distância e ainda assim sentir que o atingimos da maneira correta. Você pode calibrar, calibrar isso durante o jogo. Não se preocupe com isso, desde que funcione corretamente agora. Certo, o que mais deveríamos fazer? Bem, agora temos de verificar os inimigos, inimigos dentro desta caixa de cabeça. E a maneira como vamos fazer isso é usar o círculo de sobreposição. Então vamos tentar fazer isso e atacar. Quando clicamos no botão de fogo, nós, nós acionamos a animação atacante. Mas o que mais vai fazer é que vamos usar, vamos estar procurando por qualquer inimigo que esteja nas proximidades. Então física 2D, ponto sobrepõem-se ao longo de toda a volta. Considerando que sobre o círculo de todos. E vamos abrir e ver o que ele precisa. Então, primeiro de tudo, ele precisaria do ponto que será, claro, a posição do ponto
da caixa machucada. A próxima coisa vai precisar do raio, que será o raio DAC. E, finalmente, precisará de uma máscara de camada. Então vamos em frente e adicionar a máscara de camada do inimigo. E nós vamos, mesmo sabendo como escrever inimigo e é super fácil, mas como sempre, nós vamos e obter a referência de string que eu citei, eu acho que quase 1000 vezes agora. Espero que esteja realmente enraizada em sua mente e continuo dizendo isso porque
passei horas e horas tentando descobrir o que há de errado com meu código. E foi tudo porque escrevi a referência da string da maneira errada. Então, apenas dizendo, de qualquer maneira, por enquanto, vamos ver o que precisamos fazer é se passarmos o mouse sobre este círculo de sobreposição, tudo o que podemos ver que ele retorna um colisor 2D. Mas não retorna apenas um colisor 2D. Ele retorna uma matriz de Collider 2D. Você sabe, é uma matriz por causa dos pequenos suportes que estão presentes dois bem aqui ao lado do colisor para o. Então vamos falar sobre um aumento. O que é uma corrida? Bem, eu levantei, permitir que você armazene vários objetos do mesmo tipo em uma única variável. Como é que isso funciona? Bem, nós os declaramos assim como fazemos com variáveis onde temos um tipo, temos um nome, e temos o valor que damos a essas matrizes. E a única diferença entre uma raça e variável
normal são estes dois suportes aqui. Então isso é basicamente um array. É uma coleção de objetos com o mesmo tipo. Então, como você pode ver aqui, temos inteiro e é um array, ele tem um nome, é o número de inimigos, e o valor é 461171. E outra nota que você precisa ter em mente é que o, esses valores são contados de 0. Então este é o 0, este é o um, o dois e o três. Então começa a partir de 0. Isso é muito importante para lembrar e ter em mente. E eu acho que isso é muito associado com arrays. E algo que vamos usar agora são loops. E vamos usar para cada loop. E existem diferentes tipos de loops, mas vamos falar sobre o loop for e eu acho que em alguns vídeos mais tarde, mas por enquanto vamos usar o foreach. Explicaremos isso para cada um. O loop for-each permite que você passe por cada coisa em uma coleção de coisas do mesmo tipo em uma matriz. Então, por exemplo, este não é um exemplo, esta é a estrutura. Então é assim que escrevemos. É um foreach. Nós temos o tipo, nós temos a coisa que deve ser do tipo, que tipo? E está dentro de coisas que é uma matriz que tem objetos do tipo, este tipo bem aqui. E o que isso faz é nos ajudar a passar por cada coisa nas coisas e fazer algo para que possamos aplicar um método, algum tipo de método a essa coisa. Ou podemos usar essa coisa em um método ou podemos executar outras coisas fora do reino dos métodos que eles têm ou o que quer que seja. Então vamos em frente e fazer um exemplo e ver como isso será útil em nosso código. Então vamos voltar para o nosso código visual e vamos em frente e criar uma matriz aqui, que seria do tipo chamado 2D. Será uma matriz usando esses colchetes e vamos chamar esses inimigos para ir, para acertar é igual a este. Então agora temos uma série de inimigos para acertar. O que precisamos fazer agora é revisar cada um
desses inimigos e imprimir algo. E a propósito, uma pergunta que sempre me perguntam, por que estamos usando círculo de sobreposição? Oh, bem, vamos usar overdubs círculo tudo porque talvez mais tarde você queira adicionar vários inimigos que atacam você ao mesmo tempo. Então nós queremos atingir todos eles e não apenas um único e amar o outro, atacar-nos porque isso não seria muito ilógico. Como podem ver, o nosso conquistador aqui tem um Thor ish gigante, um martelo que vai esmagar qualquer grande que tente atacá-lo. É por isso que estamos usando sobreposições, circulando tudo para colocar todos os inimigos na nossa frente. E vamos voltar aqui. Então vamos criar um for-cada loops para cada um. A primeira coisa que precisamos fazer é escrever um tipo que estará fora do colisor para D. Então a coisa que podemos nomear o que quisermos com o nome inimigo. Então, cada inimigo em inimigos para acertar vai simplesmente por agora apenas imprimir Haha, espere, nenhum haha capitalizado. Eu bati em você. Acertei o inimigo com mais dois pontos de exclamação só para acrescentar o drama. Guarde isso, e vamos ver se alguma coisa funciona. Então clique no jogo aqui. E vamos descer, encontrar o inimigo. Espere, espere. E se acertarmos o inimigo e entrarmos no console, podemos ver que haha, eu acertei o inimigo. Então vamos tentar de novo. Quando o inimigo vem em nossa direção, nós o atingimos e o atacamos novamente. Assim podemos ver remover o colapso. Podemos ver que batemos nele quatro vezes. Não se preocupe com isso. Mais uma vez, se chegarmos, batemos neles com o martelo de, é claro, nada acontece com ele, mas ainda podemos ver que tudo funciona perfeitamente bem. E esta é uma parte muito emocionante da nossa jornada de desenvolvimento de jogos porque finalmente temos os meios para defender o nosso conquistador. E vejo-te no próximo vídeo.
39. Protegendo nossos inimigos: De volta meus colegas desenvolvedores de jogos e este vídeo, nós adicionamos a capacidade de matar nosso inimigo. Então agora não soco ar vazio. E agora, na verdade, quando nosso inimigo amínico tenta nos matar, nós o matamos primeiro. E como você pode ver, seus rabiscos no chão apenas um pouco e depois desaparece. Ok, ótimo. Espero que você esteja animado para este vídeo porque é incrível. Estamos finalmente matando coisas que estão em nossa tela. Temos a habilidade de destruir toda a gente. Então não vamos perder tempo. Vamos começar. Ok, então a primeira coisa que vamos fazer é importar esses preços e sprites e cortá-los e fazer o habitual criando uma animação de tempo. Então você já está familiarizado com isso. Então eu vou fazer isso rápido. Então clique na dívida e recursos ir e arrastá-lo para sprites. E sprites, coloque-o dentro do inimigo. E vamos cortar o sprite. Quão grande era a corrida? Era 22. Interessante. Não me lembro de fazer isso. Então 22 múltiplo aplica editor sprite. Quanto devemos juntar isso? Então 64 por 64, não, não é bom o suficiente. Mas veja 28 cortado. Talvez mais. Veja 32s sobe para implorar. Quão maior? 30, talvez não, maior, maior, só um pouco maior. O que isso significa? Oh não, bem, espere, são 1230 tipos para então eu acho que isso deve ser vamos ver. Não, 36, vamos lá. Ok. Calculadora, vamos ver, 152 dividido por quatro, é 38. Então 38, tão perto 38 satélites que para cima, aplicar tudo e agora ir em frente e criar a animação. Então a animação estará morrendo e vamos colocá-la dentro da pasta inimiga e animação. E escolheremos o inimigo. E vamos em frente e adicionar os moribundos. E esta morte pode ser de qualquer estado. Então vamos ampliar um pouco para ver o que estamos fazendo. Esta morte pode ser de qualquer estado, então faremos a transição. E, claro, vamos adicionar um parâmetro que será um gatilho. Então será dy, simplesmente Dai De Yi. E a próxima coisa que vamos fazer é ir para o onde é isso? Vamos ampliar o nosso inimigo. Então nosso inimigo agora tem a morte e vai mudar a duração da transição para 0 tempo de saída. Não há tempo de saída e a condição será morrer. Então você está condicionado a morrer é hoje. E a animação, se clicarmos de volta em nosso inimigo e clicar em mergulho, jogar essa animação. Ok, legal. Então nosso inimigo morre e ele olha. Perfeitamente bem. Excelente. Que tal fazermos um segundo? Então, se morrermos, ele continua lutando no chão. Não estamos tentando ser sádicos ou algo assim. Só queremos tornar a animação mais longa para o nosso prazer. Ainda soa estatística para mim. Então controle v. E novamente controle V. E agora nossa animação deve ser assim. Então nós morremos e ele continua balançando no chão. Ótimo. Então guarde isso. Tudo funciona perfeitamente bem. Acho que adicionamos o gatilho e agora é hora de criar um método pelo qual nosso inimigo morrerá. Então vamos para o Visual Studio. E Visual Studio, vamos entrar no roteiro inimigo. E aqui em atualização, vamos adicionar os moribundos. Mas antes de fazermos isso, vamos fazer um pouco de organização para manter a atualização atualizada. E vamos extrair este método e chamá-lo de inimigo. Movimento inimigo. Gay e sob o movimento inimigo criará os moribundos. E como essa morte deve funcionar? Então vamos criar isso. Então deve ser um público porque vamos estar acessando,
acessando do lado de fora. E será um vazio. E vamos simplesmente ligar para ir. Vamos em frente e abri-la. E desculpe-me. Não precisamos e atualizamos. Apenas uma força de hábito. Então morrer, um grande o que precisamos dentro de morrer? Bem, por enquanto, vamos simplesmente acionar a animação. Então, temos uma referência ao nosso animador? Não, não temos. Vamos em frente e pegá-lo. Então vai ser um Animador. Animador, e vamos chamá-lo de meu animador. Só para tornar as coisas simples, vamos obter o componente como sempre obter o componente do animador. E agora temos uma referência. Apague isso. Agora temos uma referência, não é? Sim, nós temos. Então meu animador vai definir o gatilho e qual gatilho vai ser? Vai ser dy e vamos em frente e ser selvagem sobre isso e
não vamos copiar a preferência de string porque é uma palavra de três letras Ku. A próxima coisa que precisamos fazer antes de demo, precisamos checar o jogador dele. E em vez de imprimir algo, precisaremos acessar os moribundos. Então a maneira que vamos fazer isso é porque estamos passando por cada inimigo. Assim como fizemos com a bomba. Vamos escrever inimigo. Então inimigo, que é o inimigo bem aqui, ponto vai pegar o componente. Então pegue o componente. E vai ser o roteiro inimigo. E a partir daí vamos usar o método da morte. Então guarde isso e vamos ver se funciona. Então chamará os moribundos. Os moribundos irão definir o gatilho para morrer e o nosso inimigo irá comprar. Então. Onde nosso jogador, vamos colocá-los lá embaixo porque não queremos pular sempre. Adivinha. Vamos colocá-lo aqui e clicar no jogo e ver o que acontece. Então clique no jogo. Vamos esperar que o nosso inimigo viva e nós nos separamos. Ok, então como você viu antes de irmos voar. Oh, uau, OK. Vá com calma. Como podem ver, nosso inimigo morreu, mas ele ainda pode nos machucar e ainda está se movendo. Então, o que devemos fazer sobre isso? Olha, ele ainda está nos machucando. Então, o que devemos fazer sobre isso? Bem, o problema é que todos os componentes dele ainda estão funcionando e você vai para o inimigo. Podemos ver que o colisor capturado ainda está funcionando, o que nos machucou. Seu corpo rígido ainda está ligado, o que lhe dá a habilidade de se mover. Ele ainda tem o colisor de caixa, que lhe
dá, dá-lhe a capacidade de virar sprite e ir na outra direção. Então o que precisamos fazer é desligar tudo isso. E os tipos de corpo rígido devem ser ajustados para estáticos, a fim de desligá-lo. Então vamos fazer isso. Então vamos voltar ao código. E ao lado de morrer após o gatilho terá o componente para o colisor da cápsula e não
precisará criar uma referência lá em cima porque vamos usá-lo apenas uma vez, então está tudo bem para obtê-lo. Então, o colisor da cápsula, o que devemos fazer para desligá-los? Vamos definir o habilitado como false. E o que isso faz é que se entrarmos na Unidade, volta à Unidade e ao inimigo bem aqui, você pode ver que cada um desses componentes tem uma caixa de seleção ao lado dele. Então, quando escrevemos ponto incapaz é igual a falso, isso significa que desligamos este colisor de cápsula. Vamos ligá-lo novamente e mantê-lo aplicado a tudo para que você tenha a idéia. Agora também precisamos desligar o colisor de caixa e precisará definir o tipo de corpo de corpos rígidos para estático. Se você quiser fazer um mini desafio agora, vá em frente e continue com isso. Então você precisa desligar o colisor caixa e disse que o tipo de corpo para estática. Ok. Você tentou fazê-los em um desafio? Espero que tenha tentado. É só um par de códigos, um par de linhas de código. Então agora vamos em frente e acessar o colisor de caixa. E esta caixa chamada isqueiros e habilitados será transformada em falsa. E finalmente, o corpo rígido, que temos uma referência para o que é. É o peso corporal rígido do inimigo. Por que nomeei meu animador e um corpo rígido? Então este é um ótimo momento para aprender um novo truque. Então, realce este clicando em, clique duas vezes. E se você segurar o controle e pressionar R, R2 vezes, você pode modificá-lo em todos os lugares em que ele está presente. Então olhe para todos os casos em que chamamos meu animador. Olha o que acontece agora se apagarmos o meu inimigo certo. Muda todos os lugares onde usamos esse nome. E isso é tão legal e extremamente útil. Ok, chega disso, vamos para o meu inimigo ponto de corpo rígido. E vamos em frente e digite tipo de corpo. E isso nos permite mudar o tipo de corpo. E Visual Studio nos ajuda imediatamente, dizendo-nos que
precisamos digitar corpo rígido tipo dois D. Clique na guia. Agora já o temos. E podemos escolher entre cinemática dinâmica. E, claro, escolhemos estática. Guarde isso. E vamos ver se isso funciona. Então, clicamos no jogo. Nosso inimigo vai para o outro lado, nós perfuramos e agora ele se move apenas um pouco no chão e ele fez taxas de meninas agora nós temos o poder e nós não podemos bater mais nele. Ele pode ele não pode nos machucar mais e não se move. Excelente. Outra coisa que precisamos fazer é apagar ou destruir nosso inimigo da cena. Precisamos que ele desapareça depois de dois segundos. E isso será parte do seu desafio. E esse desafio é destruir o inimigo. Então espere dois segundos e destrua o inimigo. Você vai fazer isso. Depois que eu lhe der uma dica, que é usar revestimentos que aprendemos nas lições anteriores. Portanto, é um ótimo momento para aplicar seu conhecimento da equipe de coral, que será uma habilidade muito útil no futuro. Pause o vídeo agora mesmo e vá fazer o desafio. Ow, kay, bem-vindo de volta. Então vamos em frente e completar o desafio. A primeira coisa que vamos fazer é ir para os moribundos. E aqui vamos criar um enumerador de olhos. Então eu no numerador. Numerador, vamos chamar isso, na verdade. Vamos chamar isso de morrer ou não, não. Vamos chamar isso de destruir, destruir inimigo. Certo, então agora vamos destruir o inimigo e isso será uma co-rotina. Isso significa que teremos que recuperar o retorno e o novo esperar quatro segundos. E quantos segundos devemos esperar? Acho que dois é bom o suficiente. E depois de dois segundos, vamos simplesmente destruir o objeto do jogo. Então, como eu disse, o objeto do jogo, este objeto do jogo é uma referência ao objeto do jogo, que tem o script inimigo anexado a ele. Poupe isso, vamos voltar para a Unidade. E isso deve, em teoria, funcionar perfeitamente bem. E temos cabeça, vamos tentar de novo. Então o inimigo ataca e nós lhe damos um soco na cara em segundos. E ele ainda está aqui. Por que ele ainda está aqui? Vamos lá. Vá embora. Vamos ver o que fizemos de errado. Oh, nós não ligamos para a co-rotina, então vamos em frente e começar o coltan. Espero que não tenha cometido o mesmo erro que eu. E seu desafio enquanto você estava fazendo o desafio, se você está fazendo o desafio, não apenas olhando e esperando por mim. Então comece a co-rotina, destrua o inimigo. E agora clicamos no jogo. E nós batemos e não, corremos atrás dele e batemos e dois segundos depois, ele fez. Oh, ok, ótimo. Espero que tenha gostado do vídeo. Espero que tenha sido divertido e te vejo no próximo vídeo.
40. Seção 6: Controlando nosso jogo - adicionando níveis: Bem-vindos de volta a todos a um novo vídeo e a uma nova seção. Então, como podem ver aqui, as coisas rapidamente saíram do controle. De alguma forma, temos três níveis. Temos esse nível minúsculo bem aqui. Então temos esse nível um que temos usado até agora, mas eu tenho usado até agora, não
sabemos o que você criou. E finalmente, temos este último nível que é ainda mais estranho e ainda maior do que o anterior. Então eu estou tão animado para adicionar um novo jogo de loja de nível e falar sobre design de níveis. Então vamos pular e ficar pontilhada. Ok, então a primeira coisa que vamos fazer é entrar em nossas cenas, que não temos sido muito ultimamente. E vamos em frente e renomear este nível 0 para o nível um. E ele vai nos pedir para recarregar, basta clicar em sim, duplicar isso, e replicar isso mais uma vez. Então agora temos um nível um e nível dois e nível três. Vamos mudar o nome do menu principal do nível 32. E agora eu vou ensinar a vocês uma técnica muito legal para
que possamos carregar todos os nossos níveis e a mesma cena ao mesmo tempo. A maneira como fazemos isso é realmente muito simples, mas você tem que ter muito cuidado ao fazer isso. Então, a primeira coisa que você faz é simplesmente clicar no nível dois e arrastá-lo. E agora você tem dois níveis e você pode realmente também ir em frente e arrastar o menu principal. Então agora você tem três níveis
na mesma cena em que estão agora em cima um do outro. Então, como os desmontamos? Para fazer isso,
você tem que selecionar tudo e eu quero dizer tudo e você tem que
ter certeza de que tudo em sua hierarquia é selecionado para isso, por exemplo, para o menu principal, basta clicar nesta seta. Se você não vê-lo, clique no w ou clique em cima aqui e arraste-o para a esquerda ou para a direita. Depende de como você quer fazê-lo. Mas para mim, por exemplo, eu quero que o menu principal esteja à esquerda. E então vá em frente e faça o mesmo para o nível dois. Então eu estou segurando Shift e eu estou pressionando o último aqui e arrastando tudo para a direita. Ok, então agora como você pode ver, nós temos esses três níveis Simon simultaneamente presente em uma cena. Agora, por que isso ajuda? Enquanto, digamos, por exemplo, você deseja fazer uma série de níveis. Podemos colocá-los um ao lado do outro e ver como eles fluem e como eles olham do lado de fora. Esse E1 é maior, um é mais escuro, mais brilhante, um é mais fraco, o que quer que seja. E um outro bom benefício para ele. Talvez você queira criar um grande nível gigante. E esse grande nível gigante é uma série de pequenos níveis. Então você pode ir em frente e diminuir o zoom e criar todos esses níveis e ver cada um deles e conectá-los da maneira que você deseja conectá-los. Então, a próxima coisa que faremos é ver como cada um deles funciona. Porque agora se clicarmos no jogo. Ok, então espere que isso carregue. Nem sequer sabemos em que cena estamos a tocar. E se voltarmos, podemos ver que estivemos tocando em todas as três cenas. Ok, então vamos sair do molde de jogo. Então o que você pode fazer, você pode realmente ir, vamos salvar tudo isso. Então você pode realmente ir, Por exemplo, no nível dois, direita, o clique sobre ele e você pode descarregar a cena. E assim não está mais carregada. E, por exemplo, você pode descarregar a cena de nível um. E agora, quando você clicar em jogar, você só estará jogando no modo de menu principal. Quero dizer, nível do menu principal. O que mais podemos fazer? E aqui, eu acho que é hora de fazer o nível manual principal. Então, no Menu Principal, não
teremos nenhum vínculo, não
teremos um inimigo. E as câmeras controladas pelo estado serão simplesmente desligadas. Por que é isso? Bem, agora você vai descobrir porque nós vamos pegar nosso jogador, colocá-lo aqui, e o menu principal não terá nada nele. Então eu vou remover tudo isso. E o menu principal só terá estas cortinas aqui e esta pequena coluna. E será um nível de experimentação para o jogador apenas correr e saltar dentro E é isso. Então faça um nível, eu concordo. Vou criar um nível em cerca de 30 segundos usando, é
claro, a magia da edição. Vejo-te daqui a pouco. Oh, K. Então bem-vindo de volta. Como podem ver, construí este nível muito rapidamente. Cometi alguns erros e não há nada de extravagante nisso. Ou jogador apenas se move e salta ao redor e nada muito emocionante, mas este é o nível Menu Principal. Então agora o que vamos fazer é eu vou te dar um desafio. E esse desafio é fazer três níveis. Então, você precisará criar, primeiro lugar, um menu principal. Você pode fazer o mesmo que eu. Você pode torná-lo diferente. Você pode remover as cortinas, talvez só para que nosso jogador aprenda a andar, pular e correr. E o outro é criar um nível um que você já tem. Você pode ajustá-lo, você pode torná-lo diferente. E, finalmente, você precisa criar um nível dois. E esse nível final será de seu próprio projeto. Não vou mostrar-te o que estou a fazer porque quero que o sapato crie um. Só vou mostrar o produto final. E em seguida, você precisa ter em mente que você precisa fazer a progressão lógica entre os níveis. Então você não quer tornar o nível muito mais fácil do que nível um porque isso não vai sentir muito progresso. O jogador que estiver jogando seu jogo não sentirá a progressão. Não vai sentir a sensação de realização que ele está em um segundo e mais difícil nível. Portanto, certifique-se de adicionar mais variedade em seu segundo nível e assim por diante, assim por diante e assim por diante. E, finalmente, você precisa determinar onde o ponto final de cada nível deve ser. Então você não quer que seu jogador apenas andando sem rumo no mundo. Você precisa saber qual é o ponto que ele precisa alcançar para completar o nível? Então pause o vídeo agora e vá em frente e crie mais dois níveis. Então, bem-vindo de volta. Como você criou seus níveis? Espero que tenha se divertido tanto quanto eu. Então este é o nosso menu principal, então escolhemos para King, nunca fazemos isso. Selecionamos todos os componentes nele. E vamos arrastá-lo até aqui. E como podem ver, ainda
temos o nosso mundo confinado. Então podemos editar isso e torná-lo menor. Podemos até apagá-lo, mas não importa. Então vamos fazer assim, torná-lo menor. E deixa-me mostrar-te os meus segundos níveis. Então, como você pode ver, eu criei meu nível também. Eu não adicionei nenhum inimigo ou bomba ainda, então eu vou adicioná-los mais tarde. Mas deixe-me mostrar o que eu criei. E estes são os meus jogadores para que eu possa passear com ele. Então ele começa do nível bem aqui. Ele salta para baixo. Ele talvez eu tenha um inimigo aqui com algum, talvez um galo e uma bomba bem aqui. Então o jogador precisa pular. Há uma bomba aqui, há um inimigo bem aqui, então ele precisa saltar rapidamente direto para esta plataforma. E então ele anda, caminha, caminha, e então ele salta para cá. Talvez haja um inimigo que ele precise matar. Então ele salta bem aqui, há uma ligação, haverá uma bomba bem aqui. Ele salta, agarra as cortinas e começa a escalar para salvar sua vida. Então, enquanto o meu jogador, ok, ele começa a subir e subir e subir. Aqui terá algum tipo de diamante e talvez três diamantes bem aqui protegidos por um NME pico esperando por ele. Então continuamos subindo, Wikis continuam subindo. E finalmente chegamos a esta plataforma bem aqui. E haverá o destino que o jogador precisa alcançar. E este é o meu nível. Portanto, não se esqueça se você criou seu segundo nível. Não se esqueça de fazer o BO apenas o mundo confinado lá. Como você pode ver, não é perfeito de forma alguma, mas funciona. Eu tentei e funciona perfeitamente bem. Então eu espero que você goste de criar seu segundo nível e Menu Principal. E o que mais devemos fazer? Bem, devemos finalmente falar sobre algo muito importante, que é design de nível. E é muito, muito crucial que você entenda o fluxo. Então, por exemplo, aqui, não
há nada muito chique. Bem, esta semana vamos pensar muito no nível um, mas como podem ver aqui, talvez devêssemos ter removido toda a habilidade de escalada e talvez não adicionar bombas, por exemplo. E, em seguida, no segundo nível, adicionamos bombas e talvez no terceiro nível adicionamos bombas e inimigos. E talvez você possa obter para, quero dizer, então cada nível deve ter seu próprio talento. Então, talvez mais tarde você possa fazer plataformas que são invisíveis. Talvez você possa fazer níveis escuros e et cetera, et cetera. Mas, por enquanto, terminamos o vídeo. Espero que tenha gostado. Espero que você tenha dado o seu nível muito pensamento, porque é a parte mais divertida de criar jogos. É a essência da plataforma 2D, então eu vou vê-lo no próximo vídeo.
41. Porta de saída: Bem-vindos de volta a um novo vídeo. E neste estamos realmente colocando nosso jogo para reunir porque agora não só matamos inimigos, não só explodimos, mas também temos um idiota. Bem, não é apenas adoração, ele realmente se abre. E se chegarmos perto dele e clicarmos no w, ele fecha e nós realmente vamos para o próximo nível, como você pode ver aqui, nós temos um nível dois. E em nossa cena, se reduzirmos o zoom, nós realmente fomos para o segundo nível, que é muito emocionante e muito legal e realmente dá autenticidade ao trabalho. Então não vamos perder mais tempo e vamos levar nosso conquistador em uma aventura oito. Ok, então a primeira coisa que precisamos é ir para este nível dois e definir o nosso jogador aqui como a posição inicial. E a próxima coisa que vamos fazer, vamos para o nível um, ver como isso é útil e vamos definir a posição dele, eu acho bem aqui. E isso deve ser bom. Então guarde tudo isso. E agora vamos em frente e descarregar as cenas. Então vamos descarregar o nível dois e removê-lo. Então vamos descarregar o menu principal e remover a cena. Guarde isso. E a próxima coisa que vamos fazer é ter de visualizar a nossa saída de nível. E a maneira como vamos fazer isso é adicionando sprites. E antes de
fazermos isso, vamos criar uma pasta. Tão divertido. Então vá em frente e dê um nome a esta porta. Agora, vá para os recursos e vá e pegue todos esses sprites que eu te amei lá. Então vá em frente e coloque-os dentro da porta. E agora vamos cortar aqueles bebês. Vamos fazer este 32 e vamos torná-lo múltiplo, e vamos aplicá-lo e ir para o editor de sprite, cortar isso. Está perfeitamente bem do jeito que está. Então é 46 por 56. Aplique isso. Vá para a abertura. Na verdade, temos sprites abrindo e fechando sprites. Então faça este 32 múltiplo aplicar, desfazendo isso muito rápido porque eu acredito que você já sabe como fazer tudo isso. Então, grade por tamanho de célula, o quanto isso era 48 por 56. Não, não é usado uma calculadora. Nossa calculadora confiável classifica 30 dividido por 12345 e obtemos 46 ou 4646 por 56 mentiras que até. A próxima coisa, vamos em frente e cortar o nosso considerando de fechamento. Então vamos em frente e fazer este 30 para fazer este múltiplo aplicar tudo que tem o sprite renderizar e cortá-lo, Aplicar. E agora temos um fechamento e abertura. E então o que vamos fazer agora? Bem, nós vamos criar um objeto, e esse objeto vai ser redefinido. E vai ser chamado de porta de saída, que é o nome do nosso vídeo. Legal, não é? A próxima coisa que faremos é adicionar um renderizador de sprite e adicioná-lo. Um sprite padrão, que eu acho que será a porta ociosa. E como você pode ver, não podemos vê-lo do lado de fora do reino do nosso mundo. Então, a fim de corrigir isso, vamos precisar criar camadas e você ir em frente, pausar o vídeo e criar essas camadas. Não. Ok, então vamos em frente e adicionar camadas. Primeira coisa que vamos adicionar uma camada, não uma camada de classificação, porque vamos usá-lo mais tarde. E somos chamados de Caça-Vampiros em terceiro duplo ou apenas interagíveis. Ok. Escrevi interactable corretamente? Então vamos copiar isso e vamos adicionar uma renderização de camada B de classificação na frente do primeiro plano. E eu acho que na frente da bomba ou não na frente da bomba. De qualquer forma, não importa. Vamos fazer isso em frente ao primeiro plano. E vamos guardar isso. Vamos voltar e para a porta de saída, torná-lo um interactable e sua camada de classificação também será o interactable. E agora temos uma porta Ku. Da próxima vez que vamos fazer é criar a animação. Então vamos para a animação e fazer a melhor parte de tudo. E agora vamos voltar para a porta e vamos criar a animação de encerramento. Então, crie um fechamento de animação e criará também o ocioso. Então é uma animação de um sprite. Inativo, não há necessidade de ligar ocioso. Já sabemos o que é isso. E, finalmente, a abertura. E vamos em frente e criar a abertura. Oh, ok, ótimo. Então vamos em frente e clicar em todos eles e arrastá-los para a animação. E levaremos isso de novo. E vamos arrastá-los para a porta. A próxima coisa que faremos é criar o animador. Então controlador animador, vamos chamar esta porta de saída. E fora do nosso animador, primeira coisa vai arrastar o animador e para a porta de saída. E agora, se clicarmos na porta de saída, temos um componente Animator que foi adicionado automaticamente com porta de saída nele. E agora, o que devemos fazer no nosso animador? Primeiro de tudo, vamos fechar nossa calculadora útil e entrar em animador, calculadora
animadora, tudo dentro de R. Então agora vamos adicionar ocioso. Então a porta ficará ociosa quando começarmos a ganhar. Em seguida, vamos adicionar a abertura da porta e, em seguida, a porta vai fechar porque eu
nunca honestamente nunca vi uma porta que fecha antes de ser aberta. Isso é uma piada de mau gosto. E agora precisamos criar as transições. Então vamos fazer uma transição de Ídolo e para abrir, e depois de abrir e fechar. E agora vamos adicionar parâmetros para mantê-los sob controle. Então vamos em frente e adicionar um parâmetro que será um gatilho, que abrirá a porta. E vamos adicionar um parâmetro,
quero dizer, um gatilho ou um parâmetro de gatilho que irá fechar a porta. E vamos em frente e remover a duração da transição, irá remover o tempo de saída e vamos adicionar uma condição que é aberta que vai de ocioso para abertura. E então, na transição da abertura para o fechamento, também
removeremos a duração da transição, removeremos o tempo de saída e o gatilho de fechamento. Guarde tudo isso. E agora precisamos achar um jeito de mudar os gatilhos ou atleta,
ou o que quero dizer é acionado esses gatilhos. E isso significa mudar o comportamento e isso significa codificar calico. E agora vamos adicionar um componente. Vamos chamar esta porta de saída. Vá em frente e crie um novo script e crie
e em, e vamos esperar a unidade para entender qual. Espere por ele. Ok, ótimo. Agora a unidade está pronta para a nossa codificação. Então vamos em frente e adicionar porta de saída aos scripts. E a partir de roteiros, se clicarmos em quem acessaremos a porta de saída. E agora o Visual Studio está abrindo. Então, o que devemos fazer agora? Bem, qual é o sentido da nossa porta? Bem, é a porta de saída, como sugere. Então o que queremos é que sempre que chegarmos perto da porta, queremos que essa porta se abra. E se clicarmos em um determinado botão, queremos que a porta feche e queremos ir para o próximo nível depois de cerca de dois segundos. Então, como vamos fazer isso? Bem, vamos começar em primeiro lugar criando uma maneira de abrirmos a porta. E a maneira como vamos fazer isso é usar o “On Trigger”. Então a primeira coisa que vamos fazer é adicionar um colisor de caixa à nossa porta e vamos em frente e ver se o colisor de caixa. Sim, acho que está perfeitamente bem. E porque estamos usando o empreendedor entrar fará disso um gatilho. Guarde isso. E antes de irmos, quero ter certeza de que só queremos que esta porta interaja com o jogador. Então o do gerenciador de entrada irá em frente e ir para a física. E aqui temos as bolhas interativas e nossa matriz de colisão de camada. Então vamos em frente e desligar tudo, exceto o interactable entre o jogador. Oh, ok, ótimo. E agora vamos para o nosso código e começar a codificação, que é a minha parte favorita depois de criar pastas. Então estamos no Visual Studio. Não precisamos de começar e atualizar por enquanto. Se precisarmos deles, vamos criá-los. O que precisamos é de um On Trigger entrar para d. E por agora simplesmente em açúcar entrar em 2D, vamos definir a animação de abertura. Então não vai precisar de uma referência ao nosso animador porque ele não vai, nós não vamos usá-lo muito. Então vai simplesmente ir em frente e obter o componente, vai ter o animador, e vai simplesmente definir o gatilho, definir. O gatilho, e esse gatilho será aberto e é uma referência de string. Então vamos copiar isso, colocá-lo dentro daqui, e vamos salvá-lo. E vamos em frente e demo. Veja esse trabalho. Então o nosso jogador se move. Ok, mal ele soca e agora a porta se abre, mas ok, então um pequeno problema, precisamos fechar a porta atrás do jogador. Então vamos voltar e para as camadas do inspetor. Ir para adicionar camada, vai verificar as camadas de classificação e vamos fazer, enquanto o interactable vai torná-lo renderizar atrás do jogador. Guarde isso de novo. E vamos ver. Clique no jogo. E agora corremos para a porta, ela se abre e fica aberta. E tudo bem. Achei que algo estava errado, mas porque estamos tocando a escalada. Ok. Não se preocupe. Então a porta se abre agora precisamos de uma maneira de fechar a porta de volta. E a maneira como vamos fazer isso é criando outro método. E esse método vai ser chamado Evite amin público, quero dizer, desculpe, público. Por que público? Vamos descobrir em um minuto. Comece a registrar o próximo nível. E por que nós criamos essa função antes de nós, vamos fazer isso um pouco e login próximo nível. Ok, ótimo. Então agora o que queremos é criar uma função ou um método que primeiro feche a porta. E em segundo lugar, queríamos levar-nos para o próximo nível. Então precisaremos usar algo chamado Gerente visto. E você aprenderá sobre como ver Manchu agora e precisará construir nossas cenas. Dependendo dos níveis. E o que mais devemos fazer? Bem, vamos precisar descobrir em qual veterano está, e precisamos ir para o próximo. Então a primeira coisa que vamos fazer é definir o gatilho para fechar. Então animador, e vamos em frente e definir o gatilho para fechar. Ok, nunca faça isso. Vamos em frente e copiá-lo. Ok. Fechar. É bastante fácil, por isso está perto. Então agora a porta se fecha. E a próxima coisa que queremos, como eu disse, queremos ir para o próximo nível, mas não imediatamente. Queremos ir atrás, acho que talvez dois segundos. Então isso significa que vamos criar uma co-rotina. Então comece a revestir. E qual deve o nome do método B? E vamos em frente e criá-lo. Vai ser um enumerador de olhos. Eu sou muito divertido. Tenho certeza que você está familiarizado com nossos enumeradores e corotinas, e vamos chamar essa carga de próximo nível. E é claro que vamos ceder o retorno. Novo, espere quatro segundos. E em vez de simplesmente escrever dois aqui irá criar uma variável que podemos editar vai realmente torná-lo um campo serializado. E chamaremos isso de carga segura. E chamaremos este segundo muito baixo. E vamos fazer dois. E esta é uma maneira muito melhor do que simplesmente adicionar um número aleatório aqui porque nos dá a capacidade de controlar o que estamos fazendo. E finalmente, vamos fazer o quê? Primeiro de tudo, vamos em frente e adicionar o próximo nível de carga aqui para evitar erros. E agora o que devemos fazer? Bem, primeira coisa, deixe-me ensiná-lo a construir os níveis um após o outro. Então volte para o Unity, vá para Arquivo e clique em Configurações de compilação. E agora configurações de liquidação embutidas, como você pode ver, temos essas cenas construídas. E, na verdade, é aqui que você constrói seu jogo e você pode mudar a plataforma que você estará usando. É por isso que estávamos usando multi-plataforma na verdade, porque agora você pode construir para um PS4, você pode construí-lo para um Xbox um, ou Android ou iOS, qualquer coisa que seu coração desejar. E por enquanto, vamos continuar com isso. E aqui é onde adicionamos essas cenas. E como podem ver, só temos uma cena no nosso jogo. E adicionar cenas é bastante simples. Entramos em nossa pasta de cenas e simplesmente arrastamos as cenas que queremos. E você os adicionará com base em como deseja que seu jogo flua. Então você não estará colocando o nível dois acima do nível um porque eles vão, como você pode ver aqui, eles estão em uma matriz ou eles têm índices que vão de 012. Ok, então agora nós colocamos nossas cenas em um índice de compilação e nós podemos simplesmente sair disso. E agora vamos voltar ao Visual Studio e aprender um par de gestão de pecados. A primeira coisa que precisaremos, como dissemos antes, como eu, como fizemos antes, usamos quando queríamos usar
a plataforma cruzada com disse que estamos usando o Stan, ativos padrão
Unity, o gerenciador de plataforma cruzada, e fará o mesmo quando queremos dizer-lhe que queremos estar usando gerenciamento visto. Então vamos em frente e adicionar isso. E estes são chamados namespaces. Não sei se já te disse isso antes. Então é Unity motor ponto visto gestão. Então agora nós podemos realmente crescer, ir de uma cena para outra. E a maneira como vamos fazer isso é em primeiro lugar, vamos ter a nossa moeda. Então, onde estamos atualmente? Então vai ser uma variável, e quando você não tem certeza de que tipo de variável vai ser, você pode simplesmente escrever. Var. E isso será, bem, TI mudará dependendo de qual variável for fornecida. Então var, vamos chamar este índice visto atual. E vai ser igual a gerente sênior. Ok, ponto ficar ativo visto. Então isso nos dará a cena ativa atual. E não só isso, mas também precisaremos ir e obter o índice de compilação. Então, o que estamos fazendo aqui? Deixa-me dizer-te mais uma vez. Nós criamos uma variável e nós a chamamos de var porque não temos certeza do que vamos obter. Vamos conseguir um número inteiro, mas talvez não tenhamos certeza, então podemos chamá-lo de VD. Então temos o nome que é a moeda no índice. E podemos obter o índice de cenas atuais usando o Scene Manager, que agora podemos acessar porque adicionamos o namespace de usar o mecanismo de unidade,
usando o gerenciador de cena do mecanismo Unity. Então vamos e pegamos a cena ativa e obtemos o índice de compilação. Então agora, por causa dessa variável, sabemos em que cena estamos residindo. A próxima coisa que vamos fazer logo depois disso é carregar a próxima cena. E a maneira como fazemos isso é usar o gerente de cena. Nós simplesmente escrever cena lope. E dentro daqui você pode ver que ele nos dá o índice de cena construído. Então ele nos pergunta qual cena você gostaria de ir a seguir? E a próxima coisa que queremos ir é a cena atual. Então é o índice de cena atual mais um. E isso nos levará ao próximo nível. Então tudo deve estar funcionando bem. Tentaremos mais tarde. Mas o que você precisa fazer agora é fazer o desafio. E seu desafio será acessar o início de carregamento próximo nível, que é uma porta de saída dos scripts do jogador. Então, geralmente usamos o script player para acessar o método de nível de carregamento usando uma determinada tecla ou o botão get para baixo ou você pode fazer o que quiser. Então, uma pequena dica, você precisa ter certeza de que acessá-lo somente quando estamos tocando o interactable. Então você precisa ter certeza de que estamos tocando a porta antes de ir buscá-la. E você precisará usar encontrar objetos do tipo, que é algo novo. Nunca cobrimos isso. E eu tenho certeza que você pode ir e pesquisar. Há muitas documentações sobre isso, e é bastante fácil. Não é assim tão complicado. Então pausar o vídeo agora mesmo e vá em frente e tente fazer o desafio. Oh K. Como você se deu com isso? Espero que não tenha sido muito difícil e espero que tenha dado o seu melhor, como sempre. Então vamos entrar em nossos jogadores corruptos e aqui que vão para cima para a atualização. E vamos em frente e criar um nível de saída. E este será um novo método que extrairemos. Então vamos em frente e gerar isso. Nós, eu não acho que vamos precisar colocá-lo aqui, mas por enquanto, vamos mantê-lo aqui em cima. Então a primeira coisa que precisamos ter certeza é que precisamos ter certeza de que ele está realmente tocando o interactable antes de fazermos qualquer coisa. Então, se e se nosso Box Collider 2D, espere, não. Por que cometo esse erro? Meu ponto Box Collider 2D está tocando camadas. E quais camadas são essas? Bem, eles são os interativos. Então vamos copiar esse back-end para Unity e vamos basear isso. E oh, precisamos adicionar uma máscara de camada a isso. Então clique no espaço ou máscara de camada, ponto obter máscara. E agora dentro desses colchetes podemos realmente colar isso. Oh, ok. E vamos fechá-lo, mas não, não, não, não por enquanto. A primeira coisa que vamos precisar para negar toda a declaração. Então, se não estamos tocando o interactable, vamos realmente acessar esta condição se e vamos retornar, que simplesmente vai sair deste método e não vai fazer nada. O que está nos dizendo que algo está errado? Está a dizer-nos que temos, está bem, por isso preciso de outro parêntese e está tudo bem. A próxima coisa que precisamos fazer é usar a entrada entre plataformas. Então, se o gerenciador de entrada de plataforma cruzada ponto obter botão para baixo, agora você pode usar algo diferente do que ficar abotoado para baixo. Talvez queira usar os machados, mas eu não recomendo. Então vamos usar o botão “get down” por enquanto. E o que devemos adicionar a esse nome de string? Bem, eu acho que eu gostaria de usar as entradas da vertical. Então, quando abrimos a porta, podemos realmente pressionar w ou nós para sair do nível. E acho que é uma boa maneira. Então vamos em frente e escolher vertical.
42. Menu principal e nível de sucesso: Bem-vindos de volta, meus desenvolvedores de jogos favoritos. Neste vídeo, vamos criar um menu principal e vamos criar um nível de sucesso. Então, o que são esses? Então o nível de sucesso, como você pode ver, é um nível estranho. Se entrarmos nisso, podemos ver que temos um vencedor, uma mensagem de felicitações do
vencedor, e podemos saltar aqui mesmo. E temos este botão do menu principal que destaca toda vez que você o revê. E se clicarmos
nele, ele nos leva para o menu principal na parte inferior nos disse, e agora também podemos ter, também
temos este botão Iniciar Jogo, que se clicarmos nos levará ao nosso primeiro nível e a porta nos leva ao nível dois e assim por diante e assim por diante. Então eu estou muito animado para este vídeo. Eu espero, eu espero que você também, e eu vou te ver em um o, kay, então a primeira coisa que vamos fazer é ir para o menu principal e vamos em frente e clicar no nosso jogador. Então, como você pode ver agora, nossa câmera, que está bem aqui, se você clicar duas vezes sobre ela, ela está bem aqui. Nossa tela está bem aqui, e isso é um resultado de nós e movê-lo no vídeo anterior. Então, vamos clicar no nosso jogador e mapa de mosaico e clicar em w e mover isso de volta para a nossa visão aqui. Então vamos ver indo para a câmera novamente, e vamos torná-la um pouco maior. Então vamos aumentar o tamanho de quatro para cerca de um ano grande, que é bom o suficiente. Vamos torná-lo um pouco maior. E tudo bem, então eu acho que é perfeito. Cou, vamos subir um pouco. Certo, guarde isso. E agora vamos em frente e criar um botão. Então, como criamos um botão? Embora seja bastante simples, basta clicar com o botão direito do mouse aqui. Em nossa hierarquia, vá para U i, e escolha o botão que está bem aqui. Então, como podem ver agora, algo muito grande foi criado ao nosso lado. E se clicarmos duas vezes no botão, podemos ver que é um enorme botão gigante e faz parte da tela ainda maior. Se você notou que algo chamado Canvas acaba de ser criado, que abriga o botão e que tem um texto nele, e um sistema de eventos. Então, o que são todas essas coisas? Então, a tela é realmente o que isso contém, tudo o que queremos imprimir em nossa tela. Portanto, o Canvas mantém o botão, texto e qualquer outra interface do usuário que você tenha na tela. E o sistema de eventos é usado para verificar se há qualquer clique do botão. Então vamos em frente e mover o botão aqui. E nós podemos olhar realmente em nossa visão de jogo, e podemos ver que o botão está bem aqui. Então vamos fazer algo legal e colocá-los lado a lado. Então agora podemos ver onde os botões. Mas como você percebe, sempre que movemos a tela, torná-la maior ou menor, o botão realmente se move. E isso não é um efeito desejável. Então, a maneira como vamos mudar isso, à
medida que vamos para o Canvas, clique em Canvas e vá para o scaler de tela. E em vez de tamanho de pixel constante, faça com que ele seja dimensionado com o tamanho da tela. Então, agora, seja como for que movamos nossa cena, o botão fica em seu lugar. Mas como você pode ver, é um movimento meio estranho. E por que isso? Bem, se você clicar no botão, você pode ver aqui que existem muitas opções e a mais importante para agora para posição sábia, É a âncora. Então a âncora, como você pode ver para o botão agora, é o meio da tela. E o que queríamos era estar no meio superior da tela. Então, agora será mais natural e dependendo do movimento do botão. Então vamos personalizar o nosso botão e eu vou mostrar-lhe como personalizá-lo. Então clique no botão e como você pode ver, temos este retângulo aqui que nos permitirá fazer o botão maior ou menor. Então clique neste círculo azul aqui, segure Alt, e você pode fazer o botão tão grande e tão pequeno quanto você quiser. A próxima coisa que vamos fazer, vamos mudar este botão, este texto de botão. Então, se entrarmos no botão, vamos embora. E o que devemos chamar a isto? Inicie o jogo porque isso está no menu principal. E vamos em frente e também chamar esse botão Iniciar jogo. Certo, e vamos chamar essa tela de “OK”, a tela do Menu Principal “Cu”. E vamos voltar ao texto e podemos realmente mudar a fonte do texto para que possamos torná-lo maior. Podemos mudar o estilo da fonte e podemos torná-lo negrito. E nós podemos ir em frente e mudar a fonte inteira se você quiser adicionar algum tipo de fonte nele. Também podemos alterar a forma como o texto é renderizado no botão. E podemos mudar a cor do texto para que possamos torná-lo verde, por exemplo, mas não estaremos transformando em verde. E também podemos mudar a aparência do botão. Então vamos começar a personalizar nossos botões. Então, a primeira coisa que temos a cor normal. Vamos mudar isso e podemos escolher uma cor da nossa cena. Então vamos escolher esta cor vermelha ou algo assim. Eu não tenho certeza. Você pode alterar as cores realçadas. Assim, quando o nosso mouse se move sobre este botão, ele será destacado. Então vamos mudar isso para ser amarelo. Vai em frente e escolher um pouco de coloração aqui. Então este amarelo, e é muito bom para fazer todas as suas cores na parte inferior da mesma forma que as cores na cena, dá-lhe um olhar mais autêntico. Em seguida, temos a cor pressionada, que fará, vamos ver o que devemos fazer? Podemos fazer o, sim, esta é uma boa cor. E o que mais temos? Podemos eu acho que é basicamente que vai mudar a cor do texto. E vamos mudar a cor porque não estou gostando do estudioso. Escolha uma cor pode ser, será a cor dos azulejos, por exemplo, não o bom. Vamos mudar. Novamente. Vamos escolher um tipo de botão amarelo. Ok, acho que isso é bom o suficiente. Não precisa ser perfeito. Por enquanto, precisa funcionar. Então agora você sabe como adicionar um botão que é redefinir isso e escolher o potente e você pode mudar a posição desse botão. Vou colocá-lo aqui no topo, no meio. Então, se entrarmos no modo de jogo e esperarmos que ele entenda. Mas agora, como você pode ver, podemos clicar no botão lá em cima enquanto nos movemos em nossa cena. Na verdade, vamos fazer essa visão do jogo maior e reduzi-lo para que você possa ver tudo. Então agora temos um botão que podemos passar o mouse sobre. E eu acho que precisamos mudar a cor do jogo inicial e podemos clicar em COOH. Agora precisamos começar a adicionar funcionalidades. Ok, então não queremos apenas um botão ali que não faça nada. Precisávamos realmente fazer algumas coisas. E a maneira como vamos adicionar coisas a ele é, bem, você adivinhou que vamos adicionar um script a ele. Então, se rolarmos para baixo, podemos realmente adicionar componentes para a parte inferior. Então vamos em frente e adicionar o componente, e vamos chamar este menu, e vamos criar um novo script de menu. Então crie e adicione e esperará por isso. E vamos esperar por isso. Ok? Agora vamos para os bens. Colocamos o menu dentro dos scripts. E a partir de scripts, vamos em frente e ir para o menu. Certo, agora temos um script do menu. Vamos apagar tudo aqui porque não precisaremos nem disso nem da atualização. O que precisaremos como precisaremos deste botão, como você já adivinhou, precisamos, sempre que clicarmos no botão, queremos começar o jogo. Isso significa que vamos para o nível um. E o que isso significa é que precisaremos carregar cenas, e isso significa que precisaremos de nossos gerentes de cena. Então vamos em frente e adicionar usando Unity motor dot sin gerenciamento. Agora podemos usar cenas. Então vamos em frente e criar nosso primeiro método. E vai ser um método muito simples que vai ser nulo. E este método irá carregar o primeiro nível. Ok, nada extravagante. E o que vai dentro dela? Vamos simplesmente tentar carregar o nível um, seja qual for esse nível. Então precisamos ver o gerente Dot vestido cena. E vamos simplesmente escrever aqui o índice da primeira cena, que é uma. Ok, porque nós atualmente no menu principal estamos vendo 0. Próxima coisa. Para adicionar essa funcionalidade ao nosso fundo, precisamos voltar ao Unity e precisamos clicar em nosso botão. E aqui você pode ver que temos algo chamado On Click, e atualmente a lista está vazia. Então, vamos clicar no plus. E isso vai dar uma, como devo chamá-lo de uma, uma missão para o botão quando sempre semana? Então, como você pode ver aqui, precisamos adicionar um objeto a ele. E esse objeto simplesmente arrastará o botão e será o jogo inicial. E atualmente não temos função. Então, se eu clicar sobre isso e entrar no menu, podemos ver aqui que devemos ter. Onde é que está? Pergunto-me onde está. Ok, ok, então precisamos ter certeza de que este é um método público. Então guarde isso. E agora, se voltarmos para o nosso botão, devemos ver aqui mesmo no menu que temos o primeiro nível de carga. Então guarde isso. E vamos entrar em jogabilidade. E dois vieram Mode. E agora podemos correr, podemos perfurar e se clicarmos no jogo inicial, vamos imediatamente para o nosso nível um. E se passarmos pela porta para segundos depois estaremos no nível 20, Kay Caret. Então agora o que você precisa fazer é que você precisa completar o desafio. E seu desafio será criar seu nível de sucesso. Então use a mesma fórmula que usamos para o menu principal para criar a tela de sucesso. Então você precisará adicionar um botão e talvez algum tipo de texto acima dele. E eu vou te dar uma dica. As únicas alterações que você precisa fazer é a carga ponto do gerenciador de cena C. Então faça o mesmo para o nível de sucesso com seu próprio botão. Mas as únicas mudanças serão duas. E você pode até usar o menu para carregar o menu principal. única mudança que precisamos ser para o gerente de cena ponto carga C. Então, pausar o vídeo agora e ir fazer o desafio. Ow, kay, bem-vindo de volta. Então vamos em frente e criar nosso sucesso Green. A primeira coisa vai entrar em visto vai pegar o menu principal e nós vamos duplicá-lo. Então agora temos o menu principal e o Menu Principal, um que mudou seu nome para o nível de sucesso. Agora temos um nível de sucesso. Vamos clicar duas vezes no nível de sucesso, e é muito semelhante ao nosso menu principal, e esse é o ponto. Então vamos antes de tudo mudar a tela para o sucesso, nível de tela. E o botão Iniciar jogo agora será o botão Menu Principal. Porque depois de terminarmos o jogo e chegarmos ao nível de sucesso, queremos ter um botão para nos levar de volta ao menu principal. E agora vamos em frente e texto, e vamos mudar o texto para Menu Principal. Oh, ok, ótimo. Não acho que precisaremos mudar a cor do botão e o que quer que o mantenha igual. Mas o que vamos fazer é adicionar algum texto. O que dirá à nossa camada que ele tem uma. Então, como você pode ver aqui, nós temos este texto e é pequeno e aqui. E a propósito, por que fazem o campus tão grande? Bem, eu não tenho certeza 100%, eu vivo os recursos na descrição para a tela. Mas acredito que é uma maneira de a unidade manter as coisas organizadas. Porque se você, por exemplo, quiser mudar as coisas em nossa cena aqui, pode ser um pouco complicado mover botões ao redor deles, colocar texto em lugares, em lugares estranhos. E também é uma maneira para a humanidade usar medidas ou algo assim, mas não é tão ruim, então não precisa se preocupar com isso. Então vamos em frente e mudar o texto aqui e vamos chamar este vencedor. Vencedor com dois pontos de exclamação. E vamos fazer isso um pouco maior e vamos alinhar o texto de uma maneira diferente, vai aumentar o tamanho da fonte. Ok, isso é muito grande. E vamos fazer o texto de cor amarela. Então é como um troféu que eles querem. E agora vamos torná-lo ousado. E vamos ao centro. Quer saber, eu vou fazer isso ainda maior e aumentar o tamanho da fonte. Oh, ok, legal. Então agora temos um vencedor, vencedor. Sempre que um jantar de frango, se você jogar Bob G. Então agora o texto será quando são tributados? Não, vamos remover a capitalização quando nosso texto. E o que mais deveríamos fazer? Oh, sim, agora precisamos fazer este botão do menu principal realmente tomar oh, e mais uma coisa, desculpe-me. Então vai ancorar este
vencedor, vencedor ao topo? Correto. Certo, onde eu estava? Ok, precisamos adicionar uma funcionalidade diferente ao menu principal. Então, em vez de nos levar para carregar primeiro nível, precisamos agora fazê-lo levar-nos para o principal. E como eu disse, a única mudança e que é 2pi carga cena. Nível de carga assim visto. Então vamos voltar e vamos em frente e criar um novo método aqui. Vamos torná-lo público, anular e carregar o menu principal. E a única coisa que vai mudar, será a mesma coisa. Então visto carga ponto do gerenciador visto agora em vez de um, vai simplesmente carregar o 0 e salvar isso. E uma outra coisa que precisamos ter certeza é
que precisamos para o nível de sucesso para o nosso built-in. Então, como você pode ver, temos o menu principal, nível
diferente de zero um em um, nível dois em dois, e agora bem-sucedido será o salvar isso. E I. Outra coisa que precisamos voltar para o botão Menu Principal e certifique-se que, em vez da função que anteriormente carregado carregar primeiro nível, ok, primeiro está escrito incorretamente. Então primeiro, primeiro, espero que ninguém tenha notado isso, volte e ele deve se consertar. Não. A propósito, teremos que mudá-lo. Então, em vez do primeiro nível de carga, precisamos ir para Menu e vamos precisar carregar Menu Principal e salvar isso. Vamos voltar ao menu principal e ter certeza de que tudo está correto. Então, botão Iniciar no menu clique. A função é carregar primeiro nível, salvar isso, voltar ao nível de sucesso, e vamos jogar e ver o que acontece. Então o nosso jogador se move ao redor, ele soca, ele salta e menu principal, se clicarmos no botão, ele deve nos levar para o menu principal. E se começarmos o jogo, começamos no Nível 1. Excelente. Outra coisa que precisamos fazer, vamos mudar o nível de sucesso apenas um pouco para garantir que o jogador entenda que estamos em um lugar diferente. Então vamos simplesmente remover os lençóis aqui. E vamos entrar em primeiro plano. Isso é remover esses. E vamos adicionar algo legal a ele. Vamos remover o fundo aqui. E vamos clicar neste no fundo. E vamos desenhar algo assim. Então, só um pouco de fundo. E vamos entrar em primeiro plano novamente. E vamos simplesmente adicionar este aqui e este aqui. E isso deve dar a sensação de ser um nível infinito. Então agora, se salvarmos isso, se entrarmos no modo de jogo, podemos ver que, ok, parece que o jogo é infinito e se saltarmos aqui, podemos sair, o que é muito legal. E se você quiser brincar com coisas,
você pode realmente fazer, você pode realmente fazer, adicionar uma caixa de colisão a este botão e o jogador pode ficar no botão e, em seguida, clique em Menu Principal e , em seguida, iniciar o jogo e, em seguida, jogar o jogo. Espero que tenham gostado do vídeo. Não foi um vídeo muito difícil, é fácil, é apenas sobre UI. Você pode ir em frente e experimentar e adicionar o que quiser. Então divirta-se, e te vejo no próximo vídeo.
43. Sessão de jogos: Volte meus desenvolvedores de jogos favoritos para um novo vídeo. E neste nós adicionamos pressão. Então, o que eu quero dizer com pressão? Fomos atingidos várias vezes e não morremos. Mas agora, como pode ver, somos atingidos uma vez. Se tentarmos fazer isso de novo, seremos atingidos duas vezes. Se tentarmos fazer isso novamente, a terceira vez estamos de volta ao menu principal, então não temos mais vidas infinitas. E isso coloca o jogador, quem quer que esteja jogando seu jogo sob pressão. Então vamos entrar e começar. Ok, então queremos começar a gerir a vida dos nossos conquistadores. Então o que vamos fazer é que o nosso conquistador tem um certo número de vidas. E quando ele é atingido, ele perde vivo. E, eventualmente, quando ele não tiver mais vidas, vamos reiniciar o jogo a partir do menu principal. Então, atualmente, se formos atingidos 100 vezes, vamos continuar jogando, que não é muito bom porque não
há consequências para obtê-lo e remove toda a pressão do jogador, que é realmente ruim, acredite ou não. Então você pode estar se perguntando, por que não simplesmente usar o jogador e por que precisamos de algo chamado uma sessão de jogo? Bem, quando vamos de cena em cena, nosso jogador é reintegrado e tudo mais com ele. Isso significa que todo o progresso no jogador e outros objetos desapareceram. O problema que temos é que toda vez que passamos de uma cena para outra, por exemplo, do nível um ao nível dois, todos os objetos do jogo são reintegrados. Então, se ele vive, são armazenados no jogador ou a pontuação, que é muito mais importante, armazenado no jogador ou qualquer outro objeto de jogo. Esse jogador é reintegrado e todo o progresso deste jogador é reiniciado. Então, por exemplo, se o nosso jogador tem 400 pontos ou tem três vidas e perde duas delas quando ele vai para a próxima cena, ou o nível de suas vidas são redefinidos para três, o que não é bom, e sua pontuação está de volta para 0, que também é muito ruim porque queremos que ele adicione níveis. Quero dizer, adicione a pontuação de nível para nível. Portanto, nosso objetivo é manter a vida da camada e a pontuação de uma cena para a próxima cena consistentes. E estamos fazendo isso usando algo chamado objeto de sessão de
jogo que manterá todos os dados persistentes nele, como Vidas e pontuação, que adicionaremos mais tarde, e etc. Então vamos em frente e criar uma sessão de jogo. E, na verdade, é extremamente simples. Vamos simplesmente criar um objeto de jogo. Vamos reiniciá-lo, sua posição, e vamos chamar isso de sessão de ganho. Ok, a próxima coisa que vamos fazer é adicionar um script que será ganho sessão, e ele vai ser chamado de sessão de jogo. Então vá em frente e crie e adicione isso. Ótima. Então agora temos a sessão de jogo bem aqui em nossos recursos. Arraste-o e coloque-o em scripts. E vamos em frente e abri-lo no Visual Studio. Clique duas vezes na sessão do jogo, e agora temos o script da sessão do jogo. O que vamos fazer primeiro com nosso roteiro de sessão de jogo? Bem, a primeira coisa que faremos é apagar o início e a atualização porque não precisaremos deles. E nós vamos realmente adicionar um método que nós
não estamos muito familiarizados com porque nós ainda não fizemos isso ou antes, que é chamado Awake. E o que está acordado
é, é um método que começa mesmo antes do início do método. Então, como eu ensinei você nos vídeos anteriores e os intros e um nosso Game Cube mágico, o método de início é o primeiro método que é executado. Mas o acordado, algo que começa bem antes do início. Então, é a primeira coisa que é executado, ou o primeiro código que é executado em todo o script está dentro do método awake. E por que precisamos acordar? Bem, porque vamos criar um padrão de singleton. Isso significa que se já existe uma sessão de jogo, cada vez que uma nova é instanciada, ela se destrói. Dessa forma, não será instanciado e permanecerá persistente em todos os níveis. O que quero dizer com isso é que sempre que entrarmos em outro nível, este script de sessão de jogo vai procurar todas as outras sessões de jogos dentro da próxima cena. Se encontrar uma sessão de jogo, ele irá destruí-la e permanecer persistente. E vamos em frente e criar este padrão de singleton e você vai ver o que eu quero dizer. Então a primeira coisa que precisamos fazer é encontrar todas as sessões de jogo nesta cena sempre que acordamos. Então vamos criar um inteiro, que será o número de sessões de jogo. E estes serão os objetos de busca. Ok, então objetos do tipo ganham sessão. E porque este é um inteiro, ele será o comprimento. Então, isso é objetos de jogo fino do tipo que você está muito familiarizado com. Por agora. Fizemos isso em vídeos anteriores. Ele procura objetos de tipo sessão de jogo, e ele verifica o comprimento porque estamos procurando objetos. Então agora temos o comprimento. A próxima coisa que vamos fazer é que vamos precisar verificar se este número de sessões de jogos, Número de sessões de jogo é maior que um. Isso significa que se tivermos mais de uma sessão de jogo, que não é a atual que
estamos usando, vamos nos destruir. Então isso significa destruir objeto de jogo. Senão. Se não tivermos novas sessões de jogos, usaremos algo chamado “não destruir em carga” e o objeto do jogo. Ok, então o que, isso é chamado de padrão singleton, e é bastante fácil. Então, a primeira coisa que verificamos para os objetos. Se tivermos objetos de tipo de sessão
de jogo, é claro, então se tivermos mais de um. Nós vamos destruí-lo, senão, nós não vamos destruí-lo e vamos manter a sessão do jogo persistente. E nós, e se tiver pontuações ou vidas, eles vão de um nível ou de uma cena para a outra. Ok, ótimo. Então, o que precisamos criar dentro da sessão do jogo, como precisaremos criar as vidas do jogador. Quero dizer, vamos processar a morte dos jogadores. Então vamos em frente e fazer isso usando um público. E porque vai ser usado a partir de scripts diferentes, público, vazio, processo, jogador, morte. E a próxima coisa que vamos fazer é adicionar uma variável que será um campo serializado. Vai ser um inteiro e vai ser vida da camada de jogador, e vai ser igual a três. Então, o que você acha que vamos precisar fazer dentro de jogadores de processo? Morte? Bem, precisamos fazer duas coisas. Primeiro, precisamos verificar se a vida do nosso jogador é maior do que uma. E se for maior do que um, vamos tirar a vida. Ou tirar a vida ou a vida. Então vamos tirar uma vida. Senão. Se não tivermos mais vidas de jogadores de oração, significa
que perdemos todos os três. Fomos atingidos três vezes. Vamos reiniciar o jogo. Está bem? Então, se formos atingidos mais de três vezes, significa
que perderemos tudo isso. Vamos reiniciar o jogo e se ainda tivermos uma vida, então se tivermos três vidas, fomos atingidos uma vez. Isso significa que as vidas dos jogadores serão duas, que significa que ainda somos maiores que uma e tiraremos uma vida. Vamos em frente e criar ambos os métodos. Então a primeira coisa que vamos fazer é gerar o jogo de reset e gerar o método. E o que devemos fazer dentro do jogo de reset? Embora precisemos levar o jogador para o menu principal, isso significa que precisaremos usar o gerenciamento de gerenciamento de cena, gerente. Então, usando Unity motor ponto visto gerenciamento. E estamos bem familiarizados com o que vamos fazer. Então, vai ser a cena de carga de ponto do gerenciador de cena. E porque é o menu principal, vai ser 0. E outra coisa que vamos fazer é
destruir o objeto atual do jogo. Por que é isso? Vamos destruir a sessão de jogo que estamos usando no momento. Porque como você sabe, se perdermos o jogo, nossas vidas seriam reiniciadas, é claro, e nossa pontuação também será redefinida. Então esta sessão de jogo atual será destruída e nós vamos criar um novo golpe. E a próxima coisa que teremos de tirar vidas, que é o teu desafio. E seu desafio é terminar o método da vida da fita. Então você precisa reduzir a vida do jogador em um. E então você precisará chamar o processo
de morte do jogador do script cada vez que nosso jogador for atingido. Pause o vídeo agora mesmo e vá em frente e faça o Challenger. Oh, OK, bem-vindo de volta. Então, como é que vamos fazer isso? A primeira coisa, vamos gerar a tomada de vidas e o método. E é bastante simples porque tudo o que vamos fazer é simplesmente digitar aqui, jogador vive e vai bem ao lado dele menos,
menos, e o que isso faz isso. E cada vez que o método take life é chamado, a vida do jogador será reduzida em um. Então, sempre que escrevermos menos ao lado de uma variável, ele reduzirá em um se for um inteiro e se escrevermos mais ao lado dele, então mais, mais aumentará a vida do jogador em um. Usaremos isso mais tarde, por enquanto, precisamos do menos, menos. Finalmente, sempre que nosso jogador for atingido precisará
chamar as sessões do jogo, processar a morte do jogador. E a maneira que vamos fazer isso é que vamos para o jogador, vamos procurar o jogador atingido. E depois de acionar a animação e se machucar. Ou você pode colocá-lo onde quiser. Isso não importa. Vai encontrar objetos de jogo, ganhar objeto porque teremos um objeto que é sessão de jogo e arsine. E vamos usar o processo de morte do jogador. E isso vai verificar para a sessão de jogo. Ele vai encontrar a sessão do jogo. Ele vai acessar o processo de morte do jogador. E no processo jogador faz. Vamos verificar se as vidas do jogador são maiores. Então um, se forem, tiraremos uma vida. Se não estiverem, reiniciaremos o jogo e nosso jogador voltará ao menu principal. Então isso, nós salvamos tudo isso. Vamos voltar ao nosso ganho de unidade. Guarde tudo isso. Na sessão de jogo temos vidas do jogador, então vamos clicar no jogo e ver o que acontece. Então o nosso Porco está a correr, vamos ser atingidos uma vez. Então as vidas do jogador é ainda maior do que um. Fomos atingidos duas vezes. vida do nosso jogador é uma e última vez que somos atingidos. E vamos estar na cena do menu principal. Excelente, então tudo funciona bem. Espero que tenha gostado do vídeo. Espero que não tenha achado isso muito complicado, especialmente se for novo no padrão de Singleton. De qualquer forma, espero que goste de novo e vejo-te em seguida. Mais uma coisa que precisamos fazer para
provar que nossa sessão de ganhos é persistente de cena em cena, é que precisaremos ver se nossas vidas de mentira de jogador realmente mudam. Se formos para outro nível. Para fazer isso, precisamos adicionar uma sessão de jogo ao nível dois. E como sabemos, a maneira mais fácil de fazer isso é pré-fabricá-lo. Então simplesmente arraste-o para a pasta Prefabs bem aqui. E também vamos arrastar a porta de saída porque já estamos na pré-fabricação. Então guarde isso e vá para as cenas e verifique o nível dois. Clique duas vezes no jogador apenas vê-lo e voltar para reverbs e colocar uma sessão de jogo bem aqui eo nível para salvar isso. Então, agora vamos testar e ver se funcionou. Então volte para o nível um, clique duas vezes no mapa de mosaico porque eles estão em posições diferentes. Então, vamos clicar no jogo e vamos ver ser atingido uma vez. E como você pode ver aqui, a sessão do jogo está sob não destruir na carga. Por isso, entende que não deve ser destruído. Então agora temos vidas de jogador para, vamos passar pela porta para o segundo nível. E no nível dois temos a sessão “Não Destruir Onload”. E como você pode ver, nossas vidas de jogador ainda são muito e eles não foram redefinidos, o que é extremamente útil. E você verá por que quando criarmos também a pontuação.
44. Pickup com corações e diamantes: Bem-vindos de volta a outro vídeo e este, como podem ver, temos diamantes e corações. Então, se clicarmos no jogo, ainda
podemos andar, podemos socar, mas se escolhermos os diamantes e os corações, podemos pegá-los e os diamantes estão realmente brilhando. Então não vamos perder mais tempo e vamos começar. Ok, então a primeira coisa que vamos fazer é ir para a pasta sprites e criar uma pasta aqui, que será chamada de “pick ups”. Ok, legal. Agora vamos para os recursos e pegar os grandes diamantes e grandes cabanas que eu lhe dei e guardá-los dentro de pickups. A próxima coisa que vamos fazer é cortar os diamantes porque temos uma animação legal neles. Então vamos fazer este 28 porque eles são muito pequenos, torná-lo múltiplo. Aplique isso, entre no modo sprite e vamos cortá-los. Vamos usar a grade pelo tamanho da célula e eles devem ser, eu acho que 18 por 1418 por 14, Sim, são 18 pixels por 40 pixels. Aplicar que eles eram perfeitamente. Agora vamos para animações e também criar uma pasta que é backups. Então, pickups. E vamos voltar para os sprites no, onde estão as pickups? E vamos em frente e criar essas animações. E esta animação é, na verdade, um diamante brilhante. Brilhante será o nome das animações. Arraste-o para captadores. E a partir daqui criará um animador. Então o controlador do animador será diamante. E dentro deste controlador animador irá configurar o estado brilhante. Correto? E mais uma coisa, precisamos ter certeza de que ele está em loop. Guarde isso. Agora, a próxima coisa que faremos é manter o jogador longe daqui, colocá-lo neste parapeito. A próxima coisa que faremos é criar um objeto de jogo. Então objeto de jogo vazio vai redefinir e colocá-lo aqui, e vamos chamar isso de diamante. Diamante. Espero que esteja correto. A próxima coisa que faremos é adicionar um renderizador de sprite. Então você está bem familiarizado com os passos, eu espero. E dentro dos captadores de sprites, o diamante, vamos simplesmente colocar o primeiro e ainda não o vemos. Por que é isso? É por causa dessas camadas de classificação. E são diamantes e corações serão interagir bolhas. Então agora podemos vê-los. E também a camada será a interactable. Então a camada de classificação e a camada física da camada será o interactable. A próxima coisa que vamos fazer e vamos fazer isso agora para economizar muito tempo, vamos simplesmente pré-fabricar o oh, antes de fazer isso, precisamos adicionar. O, Considerando que o animador para o nosso diamante. E agora podemos realmente ir para a pasta pré-fabricada e arrastar o diamante aqui. E seremos capazes de adicionar a três diamantes. Como sempre nós, quanto nosso coração deseja. Então adicione quantos diamantes quiser à cena. Guarde isso. A próxima coisa que faremos é adicionar comportamento ao nosso diamante. Então, como você sabe, quando jogos, sempre que
tocamos um diamante, nós pegamos e ele desaparece. Então é um roteiro de coleta de diamantes. Então o script de coleta de diamantes cria um novo script, é chamado de captador de diamante. E vamos criar um anúncio. Oh, ok, então está pronto. Vamos entrar em ativos e colocar a picape de diamante dentro dos roteiros, abre. Nós não precisamos dele. E vamos em frente. Considerando que Diamond pick-up clique duas vezes e temos começar e atualizar. Por isso, não precisamos que estes comecem e actualizem agora. Se precisarmos deles, podemos criá-los mais tarde. Guarde isso e está na hora do seu desafio. E seu desafio é destruir o diamante. Então, quando o nosso jogador toca no diamante, ele é destruído e destruído imediatamente. Então este deve ser destruído. Então o diamante é destruído imediatamente assim que o nosso jogador o tocar. Então eu tenho algumas dicas, mas se você está se sentindo confiante o suficiente, eu quero que você pare o vídeo agora e vá em frente e faça o desafio. Se não, se você ainda sentir que precisa de alguns eventos, eu vou dar a você. Então adicione um colisor, verifique se é um gatilho, e use o gatilho. Entra, é claro, entra em 2D para destruir o diamante. Então pausar o vídeo agora você tem todas as mãos e é muito fácil. Vá em frente e faça o desafio. Oh kay, bem-vindo de volta. Então, antes de começarmos a jogar no roteiro, precisamos ir para a Unidade e precisamos ir para o diamante. E vamos precisar adicionar um componente que vai ser um colisor de caixa para D. E é um pouco maior do que precisamos. Então vamos em frente e editar o colisor de caixa e torná-lo, sim, grande, esperança. Voltar, escolha Caixa Collider. E vamos fazer com que seja assim. Talvez um sim, um pouco maior para encher todo o diamante. Então por que preferimos bem, porque neste momento este diamante não tem um colisor de caixa, então vamos simplesmente aplicar tudo. E agora esses diamantes, todos eles têm uma caixa chamada Lidars. Mais uma coisa para organizar nossa hierarquia aqui e para não torná-la muito desordenada, vai criar um objeto de jogo vazio e nós vamos reiniciá-lo e vamos chamá-lo de pickups. Então, atenda. E vamos colocar todo o nosso diamante. E Hearts mais tarde dentro das pickups, Qu. Então agora temos nossos diamantes com caixa de colisão é o em mais uma coisa, precisamos torná-lo um gatilho. Então faça disso um gatilho e melhorado por todos, guarde isso. Agora, de volta ao Visual Studio. E como eu lhe disse, vai usar algo chamado em quê? - Não. O que é isso? Desculpe por esse Visual Studio em açúcar, entre em D. E é muito, muito, muito simples. Nós simplesmente precisamos destruir o objeto do jogo. Então guarde isso de volta na Unidade. Boa sorte pode jogar. E agora, se saltarmos sobre um desses diamantes, ele não desaparece. Por que é isso? Então vamos ver qual é o problema. E aqui nós destruímos quando não somos açúcar, entramos em D, são captadores sob demanda. Qual é o problema? Oh, espere, oh meu Deus. Nós nem adicionamos o roteiro. Então vamos em frente e adicionar o roteiro daqui, dois diamantes. E agora, espero que se aplicarmos
tudo, se aplique a todos os nossos diamantes. Oh, este tem três. Devíamos ter aplicado a partir daqui. Não se preocupe, basta removê-lo. E agora, se guardarmos isso e clicarmos no jogo, espero que eles desapareçam. E como você pode ver, não há mais diamantes exceto por aqui. Vamos em frente. Mais um diamante. Vamos até lá e as pickups estão vazias. Cooh, agora a próxima coisa que vamos fazer são os corações e o desafio é seu. É um desafio extra atrevido, é fazer exatamente os mesmos quatro corações. Então você tem tudo em suas habilidades que você precisa para completar o desafio. Então vá em frente e faça isso. Pausa o vídeo. Oh, ok, assim como fizemos com os diamantes, nós vamos, nós vamos fazer os corações. Então vamos ver onde temos os sprites para pickups. Os corações. Vai ser 28, vai ser múltiplo. Vamos aplicar tudo isso. Vamos usar este renderizador de sprite. Eu acredito que vai ser também 18 por 14, espero. Sim. É uma mentira que eu espero que você tentou o seu melhor e faz desafio porque é bastante fácil e nós temos feito isso desde então. Deus sabe o quão lento, quanto tempo. Então animação. E o coração é, o que devemos chamar a isso saltando. Então saltando para os pickups, foo, para os pickups, e dentro de pickups, vamos criar um outro controlador animador chamado hots. Capitalize isso, bonzinhos. Mesmo que seja um pouco quente. Tão brilhante, não, não brilhando, saltando dentro dos corações. Temos o estado saltitante. A próxima coisa que vamos fazer é criar um vazio,
não, vamos simplesmente duplicar este diamante. E chamaremos isso de coração ou coração. E temos o mesmo colisor de caixa. Mas agora vamos colocá-lo aqui. O renderizador de sprite será um coração. Então vamos dar-lhe um coração. E vai ter, o que mais devemos ter? O animador deve ser diferente. Então vamos para as capturas da animação e dar-lhe o coração. Animador. O que mais devemos fazer? O colisor de caixa, eu acho perfeito. E ele irá remover o componente de coleta de diamante e vamos adicionar outro componente que vai ser o coração. Pickups. Pegue, pegue, crie um novo script e crie um aplicativo. Agora, certifique-se de que você não aplicar isso porque nós precisaremos fazer uma pré-fabricada. Então vamos entrar em nossos prefabs e adicionar o coração. Basta pegar o coração e arrastá-lo e ele vai pedir-lhe para, você
gostaria de criar um prefab original ou uma variante deste prefab, basta clicar no prefab original, e agora temos corações. Então vamos para os bens e adicionar os scripts de captação do coração. Vamos ver o que mais devemos fazer? Acho que está tudo ótimo. O que mais? Certo, temos o colisor. Temos o colisor como gatilho, volta aos scripts no coração. Considerando que a
picape quente, e assim como fizemos exatamente o mesmo em açúcar entrar por agora, simplesmente
destruirá o objeto do jogo. Legal. Então vamos voltar para a nossa unidade. Vamos entrar em prefabs. Nós não precisamos duplicar, simplesmente voltar para pré-fabs neste coração bem aqui. E vamos adicionar um coração, certo? Ou, ok, não se preocupe. Ponha corações nos captadores. Então agora temos dois corações de novo. Terceiro coração. Por que não muda os nomes? Eu não acho que isso importe. Guarde isso. Clique no jogo e agora devemos ter os corações desaparecendo e D desaparecendo diamantes. Então, por enquanto, nada acontece. Mais tarde, vamos criar uma pontuação e vamos criar um Lives. E sempre que pegamos os diamantes são a pontuação aumenta e sempre que pegamos os corações, nossas vidas aumentam. Espero que tenham gostado do vídeo. Espero que tenha feito o seu melhor nos Desafios e te vejo no próximo.
45. Adição de efeitos sombras (SFX): Bem-vindos de volta, meus desenvolvedores de jogos favoritos. Neste vídeo, vamos adicionar sons ao nosso jogo. Então não só pegamos os corações e os diamantes, mas também temos um som. E se pegarmos o diamante, teremos outro som. Então eu estou muito animado para este vídeo. É um vídeo muito legal, anúncios sabor para o nosso jogo e torna muito mais autêntico. Então vamos começar. Então vamos adicionar alguns efeitos sonoros, o que é muito legal. Mas o problema antes de começarmos é que
notei um pequeno problema é que nossos corações não saltam quando clicamos no jogo. Só o diamante brilha ou os corações, pelo
menos os dois saltam. E esse é um problema muito simples de resolver. Você só precisa ir para a animação, saltando e certificar-se de que eles estão em tempo de loop. Então eles estão looping, então clicamos no jogo e agora nossos limites rígidos e são diamantes brilham. Mas agora, se os pegarmos, eles simplesmente desaparecem e precisamos adicionar alguns efeitos sonoros para torná-los muito mais frios. A maneira como vamos fazer isso é tocar um clipe de som sempre que pegarmos os corações sobre os diamantes. Mas temos um pequeno problema. E esse problema é que, se entrarmos em nossos slides aqui, nosso problema é que o efeito sonoro tocando no objeto de diamante será destruído, que significa que ele vai parar de tocar quando desta vez e pegar a palha. Então, como você se lembra, nós colocamos dentro de nosso próprio gatilho entrar em 2D que o objeto será destruído. E cada efeito sonoro que está tocando durante esta destruição também será destruído e parar de modo que, isso é um grande problema. Então, qual é a nossa solução? Bem, vamos usar algo chamado clipe de jogo público usado no ponto. E deixei-te a documentação nos recursos e vamos verificar agora mesmo. Então basicamente o que isso faz é criar uma instância de áudio do nosso efeito sonoro independente do objeto do jogo de onde ele veio, o que é perfeito para no nosso caso. Então vamos entrar na documentação do Unity e ver qual é o clipe de reprodução no ponto. Então é um método vazio estático público que leva em três variáveis. Eu sou três parâmetros. E nós vamos estar focados no clipe,
que é o nosso clipe de áudio. E nós vamos estar focados na posição. O volume não é um grande problema. Então, se você ler a descrição aqui, você pode ver que ela reproduz um, um clipe de áudio em uma determinada posição no espaço mundial. Então, esta função cria uma fonte de áudio, mas automaticamente descarta dele, quer clipe terminou a reprodução. E é perfeito para nós. Como você pode ver bem aqui. É assim que você criar uma variável que é um clipe de áudio. Você dá um clipe e então você usa essa fonte de áudio. Clipe, toque clique no clipe, no ponto, e você dá o clipe e uma posição para jogar. Então vamos em frente e tentar fazer os efeitos sonoros. A primeira coisa que vamos fazer é adicionar um clipe de áudio. Então, se formos aqui e dois corações, captadores de
diamantes, vamos fazer os diamantes primeiro. Vamos esterilizar um campo. E este campo vai ser um clipe de áudio. Então, clipe de áudio, e vamos chamá-lo de Diamond. Pegue como fx, o que significa efeito sonoro. Guarde isso. Então agora voltamos para a Unidade. Voltamos para a Unidade, e vamos para os diamantes. E agora podemos ver que temos um lugar para colocar nosso clipe de áudio. Mas quais são, quais são nossos clipes de áudio? Então vamos entrar em ativos e vamos fazer a melhor parte da criação de projetos. E está na posição vertical aqui. Por que criou direitos? Volte para os ativos. E aqui que é ir em frente e criar uma pasta que chamará como f x, que são nossos efeitos sonoros. E nos recursos que lhe dei dois clipes de áudio, que são captador de diamantes e captador de coração. Então clique neles e arraste-os para o efeito sonoro. Então, se você clicar no efeito de som e clicar em um deles, você pode ver que é um clipe de áudio e tem muitas variáveis diferentes e coisas para ajustar. Podemos ouvi-los. Então esta é a picape de diamantes. Não sei se você ouviu isso por causa do microfone, mas é um som bem legal que eu encontrei na internet. Você tem a liberdade de escolher qualquer som que encontrar. De qualquer forma, vamos para o diamante, e vamos simplesmente arrastar este diamante como efeitos para o áudio. E vamos clicar em Aplicar tudo. E agora todos os diamantes têm este efeito sonoro de captação de diamante neles. Ótima. A próxima coisa que vamos fazer é escrever o código para tocar isso. Então vamos para aqui. E quando, antes de destruirmos o objeto, vamos em frente e usar a mesma fórmula que eles nos deram
na descrição nos documentos, documentações de unidade. Então é fonte de áudio. Fonte de áudio. E então se clicarmos no ponto, temos clipe no ponto, clipe no ponto. E ele nos pede o clipe que é o efeito sonoro de captação de diamante. Em seguida, precisa de uma posição profunda. Então, onde deve a posição b? Bem, se voltarmos para a Unidade aqui, você pode ver que temos muitos lugares diferentes para colocá-la. Podemos colocar os diamantes já presentes ou podemos colocá-lo, por exemplo, no jogador. Mas eu vou colocá-lo na câmera e eu vou te dizer o porquê. Você tem este pequeno botão aqui, que é 2D. Se você clicar nele, vamos para o 3D. Molde. Então vamos fazer isso maior para que você possa ver claramente o que está acontecendo. Então, como podem ver agora, esta é a nossa câmera aqui. E como podem ver, é um pouco distante do nosso campo de jogo ou da nossa plataforma. Na verdade, isso é muito legal como você pode ver, este é o nosso jogo inteiro, mas em 3D, ainda é renderizado em um plano TD 2D. E como você pode ver, os diamantes estão um pouco longe da câmera, enquanto nossa câmera se move com o jogador. Mas, por exemplo, digamos que pegamos o diamante e fugimos, o som não seria renderizado corretamente. Então o que eu quero fazer é tocar o clipe exatamente na posição da câmera. E isso é realmente muito fácil. A maneira como fazemos isso é dar a ela a posição da nossa câmera principal. Então é simplesmente câmera dot main, dot transform, transformar dotplot sessão. Agora temos um som de captação de diamante, o fato de que toca na posição de nossa câmera principal. Então vamos tentar e ver se funcionou. Então clique no jogo. E agora você pega os corações, não
há efeito sonoro, mas se pegarmos o diamante, você ouviu isso? Então agora vamos pegar o segundo diamante e temos efeitos sonoros tocando. Então nosso jogo é muito mais legal agora, não é? Então eu quero te mostrar outra coisa. E essa coisa é a vontade de tentar cronometrar corretamente. Então, se pegarmos um diamante, ok, e pausarmos o jogo, você pode ver aqui na hierarquia que temos algo chamado áudio de um tiro. E que tudo o que ele cria uma fonte de áudio e seu clipe de áudio é o captador de diamante, assim como a documentação nos disse. E como você pode ver aqui, se clicarmos no 2D e clicarmos no único tiro, ele está na câmera. Então continuamos novamente, pegamos outro diamante e nosso jogo como função em 100% corretamente. Então a próxima coisa que vamos fazer é adicionar um efeito sonoro ao nosso coração. E esse é o seu desafio. E seu desafio é tocar o efeito sonoro de captação do coração. Então, quando tocamos nosso coração, queremos que o som toque e usaremos a mesma fórmula que usamos nos tempos limite. Então eu te mostrei como se faz. É muito, muito fácil. Pause o vídeo agora mesmo e vá em frente e faça o desafio. Bem-vinda de volta. Então, como você se saiu com isso? É bastante fácil. Entramos nos corações, fazemos a mesma coisa. Então vamos criar um campo serializado. Faremos um clipe de áudio. E este clipe de áudio será chamado de efeitos de captura de coração. Ok? E dentro daqui vamos criar uma fonte de áudio. E vamos usar o jogo. No ponto Clip. Vamos dar-lhe o efeito sonoro de captação do coração. E sua posição vai ser na câmera. A posição do ponto principal da transformação do ponto. Use o ponto-e-vírgula para fechar tudo isso, salve-o, volte para o Unity. E agora no coração, escolham o coração que quiserem e dêem os efeitos sonoros que lhes dei nos recursos. Tudo. E agora, se guardarmos isso na unidade, clique no jogo. E agora pegamos o coração, devemos ouvir os fatos duros. E nós fazemos. Vamos fazer isso de novo. E mais uma vez ouvimos o som e se conseguirmos aguentar este. Agora adicionamos efeitos sonoros ao nosso jogo. Então temos muitos outros efeitos sonoros que podemos adicionar, o que é muito legal e estará fazendo eles mais tarde em outra seção. Espero que tenham gostado do vídeo. Este vídeo é muito legal e muito agradável e acrescenta um monte de sabor ao nosso ganho. Espero que tenha gostado e te vejo no próximo.
46. Vida contínua e pontuação: Bem-vindos de volta a um novo vídeo. Como podem ver agora, temos uma pontuação ou 99 no placar, e temos 99 nas vidas ou o contrário. Então, se clicarmos no jogo agora podemos ver que temos três vidas e 0 como uma pontuação para pegar um dos corações. Agora temos quatro vidas, e agora temos seis vidas. Se pegarmos os diamantes, teremos 300 como pontuação. E o que mais? Se formos atingidos por um porquinho? Agora nossas vidas são cinco. Se passarmos para o próximo nível, temos vidas persistentes e pontuação persistente. Oh, ok, taxa de garotas. Então este é um vídeo muito bonito. Espero que goste e vejo-te daqui a pouco. Ok, então a primeira coisa que vamos fazer é criar uma tela bem aqui que terá um texto sólido. O botão direito do mouse vai para o u, i, e vá e procure texto. Ótimo, então agora nós adicionamos alguns tipos de textos. Vamos colocar o jogo ao lado da nossa visão aqui para que possamos manipular tudo. Clique duas vezes em contextos, onde está? E é muito longe de casa. Vamos colocá-lo aqui, e vamos ancorá-lo no canto superior esquerdo. Este será o texto das nossas vidas. E vamos em frente e torná-lo 99 apenas para representar quanta vida podemos realmente ter. E uma coisa que precisamos ter certeza de como vamos para a tela,
lona scaler e certifique-se de que você escala molde está na escala com o tamanho da tela. Oh, ok, ótimo. Clique duas vezes sobre isso. Vamos encontrar o nosso texto de novo. E vamos torná-lo maior e maior. E vamos fazer isso ousado. E vamos torná-lo branco para vê-lo corretamente. Certo, vamos fazer isso um pouco maior. Então vamos fazer isso talvez 4545 seja bom o suficiente. Agora temos nosso estilo de vida. Vamos duplicar isso e vamos em frente e ancorar para a direita. E acho que já adivinhou o que vamos chamar a isto. Isto não vai ser gado. Um. Vai ser o nosso texto de pontuação. Então vamos em frente e colocá-lo para a direita. E isso será, vejamos, quantos. Então eu acho que vai ser em milhares, em milhares. E acho que mais uma vez é suficiente. Esta será a nossa pontuação. Estes serão os nossos amores. Ótima. Então vamos em frente e mudar essa tela e vamos fazer disso o placar e vive Canvas. Ok, Ku, a próxima coisa que vamos fazer é acessar esses dois textos do nosso código. E nós vamos fazer isso, é
claro, em todas as sessões de jogos. Então vamos para a sessão de jogo. E aqui podemos encontrar aquela sessão de jogos de captação. Então, a maneira como vamos adicionar esses dois textos,
textos em nosso código é, naturalmente, usando esses campos serializados. E vamos usar algo chamado texto. E como você pode ver, é parte do motor Unity dot u i. Então verifique, veja o que vai acontecer aqui. Apague isso de novo. Aqui temos o motor Unity, gerenciamento de cena do motor
Unity. E se escrevermos texto e clicarmos em Tab, ele irá adicionar automaticamente este namespace ou biblioteca aqui para que possamos usar os textos. Legal. Então vamos em frente e adicionar o texto da partitura. E um pequeno truque que eu vou te mostrar. Se você tiver duas variáveis que são do mesmo tipo, você pode realmente colocá-las na mesma linha. Então vamos em frente e adicionar o texto da vida. E vamos em frente e criar um inteiro que vai ser a pontuação, e vamos defini-la como 0 no início. Certo, então guarde isso. E agora o que precisamos fazer é atribuir cada texto a uma determinada variável. E a maneira como vamos fazer isso é que vamos atribuí-los em um começo. Então vamos em frente e criar um método de início. Basta escrever início e clique na guia e nós temos o início. E o que devemos fazer aqui? Bem, queremos dizer ao código que o texto da pontuação é atribuído, ou quero dizer que a pontuação é atribuída no Texto da Pontuação
e o texto da vida tem a vida do jogador. E é muito, muito simples. Então, se salvarmos isso antes de tudo, e agora se clicarmos em vidas, texto de ponto de texto é igual a vidas do jogador. Mas não podemos. Se fecharmos isso, você pode ver que há uma seta que nos diz que não podemos converter
implicitamente tipo int ou inteiro para string. Então precisamos converter este em uma string. E fazemos isso usando um método muito simples que o Visual Studio já nos diz que devemos usar, que é string. E essa string simplesmente converte qualquer coisa que damos ao texto em uma string. E vamos fazer o mesmo com o nosso Score Text, Song, Score. texto do ponto de texto é igual a pontuar ponto para encolher. E agora, se entrarmos na Unidade, vai para a unidade. Se clicarmos no jogo. Mas este jogo aqui, se clicarmos no jogo, devemos ter aqui 0 e aqui o placar, quero dizer, o placar, as vidas serão três e o placar será 0. Mas algo que não levamos em conta é que na sessão de jogo ainda não os atribuímos. Então vive na pontuação de gado e para estes córtex. Então clique no jogo. E nós temos 30. Mas agora nada acontece. E se formos atingidos, também nada acontece porque ainda não atualizamos o discurso e as vidas sempre que morremos. Se entrarmos no próximo nível. Nada está acontecendo aqui, e vamos consertar isso também. Então vamos voltar ao nosso código e ver o que precisamos fazer. Precisamos atualizar o placar e as vidas tributadas sempre que
ganhamos diamantes ou levamos um soco na cara pelos porquinhos. Então vamos em frente e fazer isso. Em tirar a vida, bem aqui, diminuímos declarar vidas, mas precisamos também atualizar o texto. Simplesmente copie isso aqui. As vidas textos, textos para string copiar isso e colocá-lo bem sob as vidas do jogador. Guarde isso. E precisaremos fazer o mesmo com a pontuação adicional. Mas o problema é que ainda não adicionamos nenhuma pontuação. Então precisamos criar uma função ou um método para isso. Vamos em frente e fazê-lo,
vai torná-lo público porque ele será acessado a partir da pick-up de diamantes. Então, digamos um vazio público. Vamos chamar isso de adicionar a pontuação. E vamos passar-lhe um parâmetro. E esse parâmetro vai ser simplesmente chamado de valor. E por que precisamos disso? Porque talvez queiras fazer com que certos diamantes tenham um valor maior, ou talvez queiras ter diamantes pequenos e diamantes grandes. Então isso nos dá um pouco de flexibilidade ao nosso código. Então, simplesmente, vamos fazer a pontuação mais é igual ao valor. Então, o que isso mais é igual significa, é uma espécie de pontuação de classificação, pontuação mais valor. E o que isso
faz, aumenta a pontuação. Então, por exemplo, digamos que temos 0, adicionamos o valor a ele e colocamos dentro da pontuação. Então, na próxima vez que pegarmos o segundo diamante, esta pontuação será adicionada à pontuação já existente. E como o Unity I 'm in Visual Studio é muito útil, podemos simplesmente escrever mais iguais, que é exatamente o mesmo. E antes de irmos, precisamos também atualizar o texto da partitura. Guarde isso. E agora temos que usar essa pontuação adicional em nossa coleta de diamantes. Então aqui vamos nós antes de destruirmos e depois de jogarmos um clipe no ponto. Na verdade, não importa se o colocamos sob destruir ou destruir demais. o mesmo. O que precisamos fazer é encontrar o objeto do tipo. E esse objeto vai ser uma sessão de jogo. E na sessão de jogos vamos adicionar a pontuação e precisamos passar um valor. Então vamos em frente e esterilizar um campo. Porque isso nos dá a capacidade de mudar onde, sempre que quisermos, ele vai ser um inteiro e vai ser o valor do diamante. E, por enquanto, vamos fazer 100. E é isso porque é um inteiro e vamos passá-lo para o parâmetro de pontuação do anúncio Qu. Então agora temos tudo pronto. Temos a pontuação, temos o valor do texto. E agora o que vamos fazer é testar isso e ver se funciona. Então guarde isso. E agora, se pegarmos um coração, nossa pontuação não aumentou. Quero dizer, nossas vidas estão aumentando. Se pegarmos um diamante, nossa pontuação aumenta. Então vamos ver isso de novo. Diamantes aumentam na pontuação. Se morrermos, temos estes dois aqui. Vamos tentar de novo. Se formos atingidos outra hora, temos uma vida. E se formos atingidos pela terceira vez, começamos de novo. Agora vamos ver por que nossas vidas não aumentaram. E eu acho que é óbvio porque não criamos nenhum resfriado que nos dê a capacidade de aumentar nossas vidas sempre
que pegarmos um coração, que será seu desafio. Seu desafio é fazer o mesmo para a vida do jogador. Então, siga os mesmos passos para atualizar a
vida dos nossos jogadores da mesma forma que fizemos para a pontuação e torná-los necessários. Pequenos ajustes. É bastante fácil. Tem uma solução muito simples. É exatamente o mesmo que cada vez mais marcar, mas como eu disse aqui com pequenos ajustes. Pause o vídeo agora mesmo e vá fazer o desafio. Ow, kay, bem-vindo de volta. Então é exatamente o mesmo. Aqui mesmo no coração, o captador vai encontrar objetos do tipo. Vai ser a sessão do jogo. E nós vamos adicionar não marcar, mas porque eu acho que ainda é uma escola particular aqui. E vamos ver o que temos agora. Só temos a vida de tirar. Vamos criar uma função que é adicionar vidas. Então vamos criar um vazio público em duas vidas. E simplesmente vamos adicionar o jogador mais mais, o que aumentará as vidas de Thayer para um. E nós vamos copiar isso e colá-lo logo abaixo para atualizar o texto. Volte aqui, e vamos adicionar duas vidas. E nós não precisamos passar nenhum parâmetro porque ele só vai adicionar uma vida. Então, vamos voltar aqui. Clique no jogo. E agora, se apanharmos um coração, ele aumenta para quatro. E se pegarmos um diamante e aumentarmos 100, mas temos um pequeno problema. Se saltarmos em cima de um coração. Atualmente são quatro, deve ser cinco, mas se torna seis. Então, qual é o problema com isso? Vamos corrigir isso em outro vídeo só precisa de um pouco de ajustes. E por enquanto, mais uma coisa que precisamos cuidar é se clicarmos no jogo novamente, e por exemplo, pegamos diamantes e o que for. Então, o porquinho indefeso ali, pegamos uma vida e um tiro livre, por exemplo, agora mais de três vezes leva muito mais tempo para morrermos apenas para garantir que nossos mecânicos estejam funcionando. Como podem ver, fomos atingidos mais de três vezes agora. São cerca de cinco vezes e ainda podemos viver. Então vamos para o próximo nível e ver o que acontece com as pontuações e o texto. Mantenha o mesmo. Não, eles desaparecem. E isso é um problema. Que Gibbs? Bem, como você pode ver, nossas pontuações e vidas não estão sob o, não destrua. Precisamos torná-los indestrutíveis. E a maneira como fazemos isso é simplesmente criá-los para a sessão de jogo. Então, agora, se nos aplicarmos, toda a nossa sessão de jogo terá como criança, uma tela de interface do usuário com vidas e salvar isso. E agora se clicarmos no jogo e pegarmos um par de corações e um par de diamantes. Vamos para o próximo nível, e no próximo nível temos 6300, o que é extremamente útil e super legal. Espero que tenham gostado do vídeo. Espero que tenha sido muito educativo porque agora estamos controlando nosso jogo de forma muito eficaz através de pontuações e através de vidas. Você precisa fazer alguns ajustes mais tarde, mas tudo bem, desde que a mecânica do núcleo esteja funcionando. Então, vejo-te no próximo vídeo.
47. Seção de bônus: Level em nível: Bem-vindos de volta a um novo vídeo. E como podem ver aqui, temos outra porta e o nosso jogador mesmo atrás deles. Então vamos ver o que acontece quando clicamos em jogar. Então, quando clicamos no botão play, são Jogador abre a porta e aparece por trás. E agora, se formos até a porta, ela se abre. E se pressionarmos o jogador w R, não só vai para o próximo nível, mas ele também vai através da porta e sai
da porta e, em seguida, vai para a porta ao lado e vai para o próximo nível, e ele é um vencedor, Vencedor. Então é um vídeo muito emocionante. Não vamos perder mais tempo e vamos começar. Ok, então vamos em frente e primeiro mundo entrar em nossos sprites e pegá-los. Temos a porta e a porta para fora. Então basta arrastá-los e colocá-los dentro de onde estão nossos sprites? Dentro de sprites. E vamos em frente e colocá-los dentro do nosso conquistador, enquanto o nosso Conquistador, ali está a nossa conquista. E agora primeiro de tudo, vamos criar, vamos fazer isso um pouco maior. Vamos criar a porta n. Então indo para a porta, e como você pode ver que vamos em frente e fazer 30,
torná-lo múltiplo, aplicar isso e abrir estes Sprite Renderer. Então, como você pode ver, são humanos ou nosso conquistador vai de estar aqui e para desaparecer atrás da porta. Então vamos cortar lá. É 64? É 58 por 58. Espero que, uma órbita aberta não
, deve ser maior. Quão grande deveria ser? Então vamos ver. Se nós, quão grande deve ser? Devemos fazê-lo com, eu acho que um 20 estofamento. Então 20 estofamento cortado e todos eles estão no meio. Perfeito, aplique tudo isso. E agora temos nossos sprites cortados e prontos para ser uma animação. Então, selecione todos eles, clique com o botão direito do mouse e crie a animação, enquanto que animação. E vamos chamar essa animação de “peering”. Não sei se é assim que escrevemos desaparecendo. Acho que não é, e vai funcionar por enquanto. Então coloque-o dentro do jogador que abriu o animador do nosso jogador. E vamos em frente e adicionar este olhar no animador. Está bem, fixe. Precisamos brincar um pouco aqui porque eu não gosto da distribuição de estados, então é bem fácil. Vamos mover a saída aqui. Mova o NSdate para cima, mova o ser atingido. Vamos colocar o desaparecimento. Sim, por aqui. Ok, então como vamos fazer as transições? Então as transições vão ser de marcha lenta porque chegamos à porta se abre, clicamos em um botão, então vai ser de marcha lenta. E vamos adicioná-lo à espreitura. E quais parâmetros devemos adicionar? Isso será uma transmissão unidirecional porque sempre que desaparecermos atrás da porta, não
entraremos em nenhum outro estado ou simplesmente deixaremos o nível. Então vamos colocar esta duração de transição para 0, irá remover qualquer tempo de saída que temos. E vamos em frente e adicionar um gatilho. E este gatilho vai ser este desaparecimento, mas o mesmo nome. E isso vai nos poupar alguma confusão e isso vai desencadear o desaparecimento. Então vamos entrar no código e ver onde
vamos acionar essa animação de desaparecimento. Vamos para o Visual Studio. E onde você acha que devemos colocar isso ou devemos desencadear esse desaparecimento? Deixa-o entrar em um desafio. Ok, então devemos colocá-lo no nível de saída e logo antes de começarmos a carregar o nível. Então vamos em frente e pegar meu ponto de animador definir gatilho. Vamos abrir e pegar a referência. Esta é a primeira vez que eu até penso neste olhar e declarar como você escreve. Ok, vamos colá-lo aqui, guarde isso. E agora, se entrarmos em unidade, clique no jogo. Vamos fazer isso menor. Clique no jogo. E se entrarmos pela porta e clicarmos no W, ele vai embora. Mas como você pode ver, há alguns problemas. Vamos tocar isso de novo. E clicamos em, se clicarmos no w, Como você pode ver, em primeiro lugar, a porta fecha antes de sairmos. E em segundo lugar, se continuarmos a reproduzir a animação, quando ela terminar, ainda podemos ver a silhueta do nosso jogador ali mesmo. Então, dois problemas que precisaremos resolver. Primeiro de tudo, vamos corrigir o problema da silhueta de nossos jogadores ainda lá. Então isso é bastante simples. Só nós, a única coisa que precisa fazer é que teremos adicionar uma função que irá desativar o renderizador sprite. Então vamos em frente e adicionar que vai torná-lo um público, ou você não tem que torná-lo público. Então, mas vamos fazê-lo só para o caso de não se preocupar. Então é um vazio público. Virar do fornecedor Renderer sob é assim que você escreve? Então vamos em frente e vamos pegar o componente,
obter o renderizador de sprite ou renderizador de sprite, enquanto ele renderizador de sprite. E Hughes habilitado. E vai ser falso. Agora, onde vamos chamar esse método? Bem, vai ser chamado usando uma animação de evento. Então vamos voltar para o jogador e vamos escolher animação, ir para o desaparecimento. E bem aqui, ele deve desaparecer. Então vamos em frente e adicionar em evento, e este evento vai chamar a função desligar renderizadores. Então vamos ver se funcionou. Clique no jogo. Isso é ir bem aqui. Clique em W e ele desaparece completamente. Nozes. A próxima coisa que precisamos fazer é ter certeza de que o nosso
mantém-se aberto até que o nosso jogador passe por isso. Bastante simples, a maneira como fazemos isso também é usar um sistema de eventos. Então vamos para o nosso Visual Studio e vamos criar um método aqui mesmo que vai ser chamado de carga de vazio público próximo nível. E nós vamos simplesmente copiar isso aqui, que é encontrar o objeto do tipo porta de saída, não copiar realmente cortá-la. Então controle X e Controle V. Então ele deve removê-lo daqui de cima. E logo saberá por que estamos fazendo isso. E outra coisa que vamos fazer apenas para economizar um pouco de espaço vai simplesmente chamar a função desligar renderer aqui mesmo. Então, vire do Renderer. Muito bem, no próximo nível de carga. Agora vai ver por que fizemos isso. Volte para a Unidade. Clique na camada e procure o onde ele está desaparecendo? E aqui mesmo em vez deste evento, vamos mudar o renderizador de desligamento e para o, Considerando que lobed próximo nível. Então o que acontece agora é começarmos a animação de desaparecimento. Então vai começar a desaparecer. Então, após o desaparecimento ter terminado, vamos começar a carregar o próximo nível e vamos virar da renderização. Então vamos ver se isso funciona. Colete no Play. E agora, se entrarmos pela porta, ele vai fechar a porta e depois vamos para o próximo nível, Qu. Então agora é hora do seu desafio. E seu desafio é criar uma porta, entrar, entrar, Adicionar um entrou ou não uma porta de saída com seu próprio script para a cena a partir da qual você, nosso jogador entra cada vez em um nível, começar em um jogador aparecendo para o Animator e faça as transições apropriadas. E acionar o jogador aparecendo animação e começar. E, finalmente, você precisa posicionar o jogador atrás da porta em cada nível. Então crie uma porta de entrada. E essa porta de entrada deve ser quase a mesma que uma porta de saída, mas terá um pouco de diferença
no animador e uma pequena diferença na forma como o script funciona. E você precisa fazer as alterações para o jogador para que a animação de aparecer assim deve jogar assim que começarmos um novo nível e o jogador deve estar atrás da porta. Então pausar o vídeo agora mesmo e ir fazer um com o outro. Oh, ok, bem-vindo de volta. Como você se enganou com isso? Vamos em frente e criar a aparição. Então vamos para os espíritos do nosso conquistador. Vamos fechar a porta N e escolher a porta para fora. E agora precisamos cortá-los. Então faça com que este 30 minutos se aplique múltiplo. Nós vamos para o editor de sprite e como você pode ver, nosso jogador vai de uma silhueta e dois aparecendo como nosso conquistador. Então vamos em frente e grade por tamanho de célula. Quanto custou isto? Oh, era 58 por 58 e tinha um estofamento de 20. Corte isso. Estão todos no meio. Perfeita aplicação. Agora vamos em frente e criar a animação, clique com o botão direito na animação. E vamos chamar isso de espreitar. Então coloque aparecendo dentro do jogador e do jogador, vamos em frente e adicioná-lo ao nosso agora muito grande animador. Então, espreitar será definido aqui. Então, como a aparição funcionará? Bem, teremos uma transição de marcha lenta dois aparecendo, que também terá um gatilho. Vamos chamar este gatilho. Aparecendo. Bastante, simples o suficiente. Não teremos tempo de saída e teremos uma duração de transição de 0. Vamos adicionar uma condição que aparecerá. E agora precisamos adicionar uma transição de volta de aparecer para ociosidade. Agora, como é que esta transição vai funcionar? Bem, não terá Duração de Transição e terá um tempo de saída de um. Então agora vamos acionar a animação de aparecer assim que o jogo começa, então ele será instalado. E então vamos, depois que a animação terminar e nosso player aparecer, vamos fazer a transição de volta para o ocioso. Guarde isso. Vamos ver se isso, oh, antes de
fazermos isso, precisamos acionar bem aqui no começo. Então, meu ponto animador set gatilho vai primeiro de tudo disse A aparição. De modo que sempre que começarmos o jogo, cada nível que começarmos, nosso jogador aparecerá. Então, antes de criarmos o inserido ou vamos em frente e fazer isso 1 primeiro. Então, faça isso menor. Eles podem jogar e nosso jogador deve sair da parede. Vamos clicar no jogo e ver o que acontece. Ok, isso foi um pouco rápido. Vamos para outro nível para ver melhor. Passamos pela porta, aparecemos no próximo nível. E agora isso está funcionando. A próxima coisa que precisamos fazer é criar a turnê das anteras. Vamos em frente e fazer isso. Então vamos clicar com o botão direito do mouse aqui e criar um objeto de jogo vazio, redefinir sua posição, e vamos colocá-lo aqui. Vamos simplesmente pegar este diamante e colocá-lo ao lado destes dois diamantes. Então objeto de jogo. Vamos fazer isso menor. E esta será a porta. Entrar. E vamos em frente e adicionar uma fonte de renderização sprite, certo? Renderer terá por padrão, será a interagir bolhas e a camada será interactable. Na verdade, você sabe,
nós, nós não precisaremos adicionar nenhuma camada. Nós simplesmente precisaremos de uma camada de classificação. Então vamos em frente e ir para os sprites da porta e adicionar o sprite ocioso à porta. Correto. Então agora temos uma porta. O que mais precisamos? Bem, nós tivemos que criar um sprite, quero dizer, um script para ele. Então vai ser porta ou vamos manter consistentes. Então e terceira ordem para entrar na porta. Sim, entrou ou assim criando um novo roteiro e Theodore e vamos esperar pela unidade. Correto. Vamos entrar nos ativos e colocar a porta dentro dos roteiros. Então vamos em frente e abri-lo. E o Visual Studio até a porta, assim como a porta de saída, mas com um toque. Então, o que terá a porta de saída? Bem, começar começará com a abertura. Oh, nós não, nós não fizemos no animador. E de alguma forma ainda é chamado de objetos de jogo. Então vamos mudar isso. E para entrar na porta Qu,
Então, o que o animador do nosso entreter seu P? Bem, é uma reviravolta e um pouco chocante, mas vai ser o mesmo para a porta de saída. Então vamos mudar o nome da porta. Quero dizer, a saída de porta em porta, e nós vamos simplesmente arrastá-lo e adicioná-lo à porta. E vai ser exatamente o mesmo. Mas a única coisa que mudará está no script enter door. Então a primeira coisa que vamos fazer na entrada ou script é estamos indo para enquanto isso e sua porta. Assim que começarmos, vamos acionar a animação. Então vamos obter o componente ou a animação de abertura. Então nós vamos pegar o animador, enquanto ele de qualquer maneira ensinou ou, e nós vamos definir o gatilho e ele vai usar o aberto. Tão aberto. E aí está. Ajustamos o gatilho assim que a cena estocar. E agora vamos em frente e ir para o nível um. Guarde isso. Vamos lá e pré-fabricá-lo. Então, onde estão os nossos prefabs? São prefabs. Vamos pré-fabricar entrar na porta, e vamos salvar isso também. Vamos para o segundo nível. Ou antes de irmos para o segundo nível, vamos colocar o nosso jogador atrás da porta ou mesmo ao lado da porta. Então, assim, vamos voltar e para os níveis. Onde é que está? Então, nível de cenas para, sim, salvar isso e clicar duas vezes no jogador para encontrá-los. Vamos em frente e adicionar o Considerando a porta onde nossos prefabs portas tantas pastas agora. Então adicione o então este é o produto x dólares aqui. E a porta de entrada estará logo atrás do jogador. Mesmo que seja no mesmo lugar. Não se preocupe, podemos mudar isso. Então vamos pegar o jogador e a porta e colocá-los aqui para não ficarmos confusos. Ok, tão ótimo. Guarde isso. Vamos voltar ao nível um e vamos jogar e ver se o nosso jogo flui sem problemas. Então reclamando publicamente, lá está ele, clique no jogo, e assim que o jogo começa, a porta se abre, o jogador aparece. E se ele passar pela porta no nível dois, porta se abre, o jogador aparece, nós nos movemos. Posso ir para a porta ao lado, então vamos fazer isso. E, finalmente, aparecemos no menu principal, que nos diz que somos um vencedor sempre que. Então, de volta aos menus principais, iniciar o jogo e nós fazemos tudo isso de novo e de novo e de novo. Vídeos legais, então funciona bem que c entrar na porta e ver tudo e nossas animações definido assim e nosso jogador vai de um lugar para outro. Espero que tenham gostado do vídeo. Espero que você encontrá-lo tão legal como eu faço porque é muito, muito legal e dá o jogo como se não houvesse mudanças de cena. Estamos simplesmente caminhando de porta em porta e entrando em níveis novos e diferentes. É muito emocionante, é muito legal e te vejo no próximo vídeo.
48. Adição do SFX a tudo: Bem-vindo de volta a todos para um novo vídeo e o muito legal, porque estamos respirando muita vida e arcano. Como você pode ver aqui, nosso player agora tem uma fonte de áudio e muitos efeitos sonoros. Então vamos verificá-los. Assim que começarmos o jogo. Aqui, temos uma porta a abrir. Podemos pegar as coisas. Podemos andar. Se batermos no nosso jogador, ele morre e faz barulho. Nós andamos, caminhamos. Vamos até a bomba e ver como ela queima. Ele explode. E se formos até a porta, podemos passar por ela. Qu, então vamos ver como fazemos todos esses efeitos sonoros. Oh caso. Porque o nosso jogador não seria destruído cada vez que o apanhássemos. Ao contrário dos diamantes e os corações, vai usar um método diferente do que o clipe de reprodução no ponto. E essa é a loja L1. Então vamos ver o que é isso. Então esta é a documentação da Unidade, como você deve estar familiarizado com ela. E nós temos a fonte de áudio ponto tocar um tiro. Então, se lermos a descrição, ele reproduz um clipe de áudio que, claro, estará dando
a ele e escalará o volume da fonte de áudio. Agora, o volume não fará um grande alarido sobre isso depende da sua preferência. Se você quiser, você pode torná-lo maior, maior ou menor. De qualquer forma, ele toca um tiro. E se você pode ver bem aqui, como requer uma fonte de áudio para reproduzir isso. Então teremos que adicionar algo chamado fonte de áudio. Vamos voltar para a Unidade e vamos para a nossa camada. E vamos adicionar um componente que é chamado de fonte de áudio. Então agora temos uma fonte de áudio em nosso player. Ótima. A próxima coisa que precisamos fazer é dar ao player alguns clipes de áudio. Então temos muitos clipes de áudio e alguns deles farão parte do seu desafio. Farei alguns deles e deixarei o resto para o seu desafio. Então vamos em frente. Como você pode ver, podemos adicionar um clipe de áudio aqui para a fonte de áudio, mas vamos fazer uma maneira diferente que está dando ao script aqui algumas fontes de áudio e ele vai usá-los para reproduzir e a fonte de áudio. Então guarde isso. Vamos para o jogador. E aqui, precisaremos adicionar alguns campos serializados. Então vamos em frente e criar um campo serializado. E vai ser um clipe de áudio. E vamos adicionar o salto como efeitos, vamos adicionar o deck como um fax. E acho que é o suficiente por enquanto. Vamos pegá-los dos recursos. Deixei-te com muitos efeitos sonoros e vamos usá-los todos. Mas, por enquanto, vamos apenas pegar o salto e o, Considerando que, o ataque. Talvez façamos mais alguns mais tarde. Então coloque-os dentro de efeitos sonoros. E agora temos o coração, quero dizer o ataque e o salto. Então, por que não está salvo? Vamos salvar o script do jogador. E como podem ver, coloquei-os numa única linha para poupar espaço. E porque podemos fazer isso, não
fizemos isso aqui em cima, mas isto é para ter tudo à nossa frente e não confundir vocês, especialmente no início. Então, de volta à Unidade, podemos ver aqui mesmo no inspetor que temos o salto e o ataque. Então vamos atribuí-los. Então saltar para saltar e atacar para o ataque e irá aplicar também aplicá-lo para o prefab. Guarde isso. Agora, vamos voltar para o Visual Studio e ver como vamos jogar isso. Então, a primeira coisa que precisamos é de uma referência à nossa fonte de áudio. Então criaremos uma fonte de áudio e chamaremos isso de minha nova força. E então comece. Vamos em frente e atribuir a minha fonte de áudio para obter componente e a fonte de áudio presente no objeto do jogo. Então passos fáceis que você deve estar familiarizado com estes. A próxima coisa que vamos fazer é adicionar o som do salto sempre que realmente saltarmos. Então aqui podemos ver que sempre que adicionamos a velocidade é um momento perfeito para adicionar o salto. Então, vamos adicioná-lo aqui. Então, minha fonte de áudio e como eu disse, vai usar o play one shot. Então, não jogue um tiro. Tudo o que precisa é o efeito sonoro de salto. E vamos encontrar o ataque, enquanto o ataque,
certo, então aqui, sempre que tocamos a animação, pegamos os colisores. Podemos pô-lo aqui mesmo. Então é a minha fonte de áudio, ponto delay one-shot e o efeito sonoro atacante. Guarde isso. Vamos voltar para a Unidade e ver se funcionou. Tudo deve ser configurado. Então clique no jogo. Agora, se fizermos o ataque, ok, então se você atacar, nós atacamos, temos um som. Se saltarmos, você pode ver que nosso jogador tem um som e pegar os diamantes também nos dá um som. Então, ainda não estamos acostumados a matar porcos. Ok, então agora nós os matamos e temos vários sons. Se batermos várias vezes qu, próxima coisa, o que devemos fazer enquanto eu vou usar um? Vou tocar um áudio usando um evento só para mostrar a você e o resto será todo seu. E faremos isso com a porta. Agora temos duas maneiras de fazer isso. Primeiro, podemos adicionar uma fonte de áudio às portas Enter e de saída. Ou podemos simplesmente jogar clipe no ponto. Ambos são bons. Não há inconvenientes para eles anuais. Você pode fazer você pode fazê-lo da sua maneira preferida. Eu vou fazer isso usando o clipe de reprodução no momento porque honestamente, eles não precisam de uma fonte de áudio. Também podemos adicionar uma fonte de áudio. Não é um problema, mas não vamos fazer isso. Então. Vamos entrar na porta ou sair da porta, e vamos em frente e criar um método que irá reproduzir o áudio. Então vamos em frente e criá-lo. Então vai ser um vazio. Claro que sim. Vamos chamar esta peça de abertura de porta como efeitos. E faremos a abertura capitalizada porque é assim que fazemos os métodos. E dentro daqui vamos reproduzir o clipe de atraso de ponto da fonte de áudio no ponto, e vamos precisar de um clipe e uma posição. Então vamos serializar um campo. E o campo serializado terá um clipe de áudio. Clipe de áudio. E este clipe de áudio teremos a abertura oh
, não, porta de abertura capitalizada como f x. e teremos que fazer exatamente o mesmo final o Considerando que a porta abre, enquanto a porta abre a porta. Então teremos que fazer o mesmo. Vamos em frente e fazer isso. Então vamos copiar isto e isto. Então, copie isso, coloque bem aqui. E faremos o mesmo com a porta aberta serializada. Então, para a abertura agora, vamos salvar tudo isso e voltar para a Unidade. E vamos em frente e, eo efeito sonoro para a porta aberta. Então vamos adicioná-lo dentro da Unidade. E se jogarmos, vamos jogar. Então é uma porta que se abre, nada de especial nela. Porta de saída. Devíamos ter feito isso. Está bem. Ainda não o introduzimos ou oh, acho que é porque temos um erro aqui, então precisamos fazer alguns ajustes para que tudo funcione. Então vamos em frente e salvar tudo, salvar tudo salva todos os scripts não salvos. Então entrar porta deve ter agora uma porta de abertura. E vamos adicionar o clipe de áudio, aplicar tudo. E, em seguida, a porta de saída também irá adicionar o Considerando que tudo bem, lá está. E vamos nos candidatar. Agora, onde devemos tocá-lo? Bem, como eu lhe disse, vamos usar um evento para jogá-lo. Então, no inserido ou se clicarmos nele, vemos que temos nosso animador bem aqui. Se clicarmos na animação, podemos ver a abertura. E assim que a porta se abrir, vamos adicionar um evento que nos dará uma opção para escolher uma função. E a única função que temos é abrir profundamente a porta como afetos. Clique nisso e faremos o mesmo para a porta de saída. Então aberto, oh, já existe? Então aberto, y, o, estamos usando o mesmo animador. Ok, isso é muito legal e muito rápido, muito eficiente. Então, se agora quando clicarmos no jogo. Não, sem som. Nenhum som em tudo. Por que é isso? Oh, OK. Outro erro muito pateta. Então, vamos precisar adicionar a abertura como x para
a câmera principal ponto transformar posição ponto. E vamos copiar isto porque é um bocado cheio. E vamos colá-lo aqui mesmo. Então deveria ter copiado tudo. Assim, abrindo a porta como efeitos e a câmera transformar domínio a posição de transformação. E agora se clicarmos no jogo, espero que isso faça um som de porta de abertura. E então se nós agora, se saltarmos para a porta, devemos ouvir outro som e coo. E se entrarmos pela porta, ainda não
ouvimos nenhum som. Porque faz parte do teu desafio. E seu desafio será completar todos os outros efeitos sonoros. Então vou mostrar os efeitos sonoros que precisamos completar. Esses são os efeitos sonoros que não temos de novo. Então, temos o captador de diamantes, o captador de coração que já fizemos. Temos a porta a abrir, já o fizemos. Temos a morte do inimigo, morte do jogador, o ataque do jogador. Fizemos um golpe de jogador, o
que significa que sempre que o jogador é atingido, nós não temos o salto, nós temos a explosão A-M-P e a bomba queimando. Então deixe-me dar-lhe alguns eventos bem aqui. Então a explosão e a queima devem ser usadas. Bem, você pode usá-los em eventos ou você pode usá-los, usá-los dentro fora do script. Ambos são muito bons. Já tentei os dois. Talvez façamos as duas coisas. E por exemplo, enquanto que se a morte do inimigo pode ser usado usando clipe de reprodução no ponto a morte jogadores pode ser usado usando o jogo one-shot pode ser jogado com o uso de um tiro e usar a sua imaginação, fazer o que você quiser. Tente ambos os métodos. Ambos são ótimos e te vejo daqui a pouco. Oh, OK. Então vamos ver o que precisamos fazer. Primeiro, vamos pegar todos os clipes. Temos a explosão da bomba VB da mãe em chamas, a porta da morte fechada e o eu a morrer. E o que mais devemos pegar? A obtê-lo e a caminhada. Então andar será um pouco mais difícil de adicionar. Então vamos ver a explosão. Golpe. Ok, então o que devemos fazer agora? E vamos em frente e adicionar a bomba. Então, o que devemos fazer embalsamado? Primeiro de tudo, vamos aplicar tudo. E eu acho que na bomba nós temos, como eu disse a vocês duas maneiras, nós podemos adicionar uma fonte de áudio ou nós não precisamos. Mas como temos dois clipes para reproduzir, vamos em frente e adicionar uma fonte de áudio. E entraremos no roteiro para o vínculo. E vamos em frente e adicionar dois campos serializados,
que serão, naturalmente, clipes de áudio. E vamos adicionar a explosão como efeitos e a queima como efeitos. Vamos guardar isso. E onde devemos Primeiro de tudo, vamos obter o componente o. Se precisarmos primeiro criar os componentes. Então é uma fonte de
áudio, fonte de áudio, e vai ser minha fonte de áudio. Por favor. Preciso da minha fonte de áudio. Fonte de áudio. Chamamos de minha fonte de áudio para ficar consistente com meu animador, vamos em frente e atribuí-lo. Então, estes são passos muito básicos que eu fiz várias vezes. Espero que tenha feito o desafio. Espero que tenha gostado do desafio e não só de me ver fazer tudo. Não porque eu não goste, mas porque eu gostaria que você resolvesse problemas. Ok, então a próxima coisa, o que devemos fazer? Bem, dentro da bomba explorada, quando nós realmente explodimos a bomba. Isso é ir em frente e usar a minha fonte de áudio ponto colocar um tiro. E vamos adicionar o efeito sonoro explosivo, Cu. E aqui mesmo no gatilho Enter, devemos reproduzir o ponto de fonte de áudio L1 tiro, e vai ser o efeito sonoro de queima. Então guarde isso, precisa voltar para a Unidade e nunca se esqueça de atribuir os efeitos sonoros apropriados. Então explosão de bomba e explosão de bomba. Uma queima no efeito sonoro de queima. Aplique tudo. E vamos tentar o vínculo, mas a colisão está lá em cima, então vamos colocar nossa camada lá em cima. Cou, clique no jogo. Vamos ver o que acontece se chegarmos perto de K. Legal, muito, muito bom. O que mais temos? Vamos verificar o Desafio. Nós temos. Então fizemos a morte inimiga. Vamos ver a morte inimiga sentida. Então a morte inimiga, enquanto ela, inimigo morrendo. Vamos ouvir a voz. Ok, muito legal. Essa foi a minha imitação. Então vamos para o inimigo. Nós não vamos adicionar uma fonte de áudio porque temos apenas um efeito sonoro reproduz ou eu não acho que Paul precisava. Vamos ver onde está o inimigo. Vamos serializar um campo. Então serializado campo, áudio, clipe. E vai ser o momento como efeitos. E onde devemos tocá-lo enquanto devemos tocá-lo? Acho que podemos tocar aqui. Mas por enquanto, vamos em frente e adicionar um evento só para apimentar as coisas e nos divertir. Então vamos até aqui e vamos adicionar algo antes ou subscrever aqui. Então vamos chamar isso de vazio, brincar, morrer como efeitos. Então é o mesmo, mas estamos tentando coisas diferentes para ter tudo e mais armas em nosso arsenal. Então, toque clipe no Bond, vai ser o efeito sonoro moribundo. E a propósito, eu acho que tocar clipe em Point é realmente melhor aqui para o porco porque estamos destruindo o objeto. Então precisamos de um reforço, caso o inimigo morra BY deva. Quero dizer, o objeto do jogo do inimigo é destruído. Antes mesmo de termos a chance de terminar efeitos sonoros. Então, jogar clipe em Point é melhor neste caso. Então vamos em frente e câmera principal ponto transform.py posição. Então vamos adicionar os efeitos sonoros no inspetor. Então temos os moribundos e colocamos o inimigo morrendo. Aplique tudo, guarde isso. E vamos trazer o jogador para cá. Estamos movendo muito o jogador. Então coloque-os aqui, clique no jogo. E agora espere pelo maior Venha e piscina. Não, nada. Esquecemo-nos? Esquecemos de adicionar o evento. Tolo eu. Então vamos para a morte. E aqui que tocou um pouco o clipe. Onde devemos adicionar o som? Deve ser no início ou bem aqui, assim como ele cai no chão. Vamos fazer isto. Então, em uma função e onde ele deve ser colocado em camadas? Jogador nove, fato mais sólido, CRC que eu chamei o jogador morrendo de efeito sonoro. Eu fiz. Então inimigo morrendo efeito sonoro. Sério, há uma diferença. Então inimigo morrendo, areia, fato, clique no jogo. Vamos ver. O grande vem em nosso caminho e ok, aquele era eu, a propósito. Não faz isso duas vezes. Ok, ótimo. O que mais temos? Vamos ver, camada sendo atingida, o que é legal. Vamos fazer isso. Então volte para o roteiro do jogador. Então, como você pode ver, os passos são muito básicos. Se você ainda não fez o desafio e ainda tem outros efeitos sonoros para completar. Vá em frente, pausar o vídeo agora mesmo e continue. Eu lhe dei muitos exemplos. Então pausar o vídeo e ir fazer o desafio. Oh, ok, não se preocupe com isso. Então vamos ver. Vamos chamar isso de ser atingido como afetos. Guarde isso. Vamos ver onde somos atingidos? Uma boa maneira de clicar duas vezes sobre ele. E se
descermos, podemos ver onde esta fonte está aqui. E vamos ver o que devemos fazer? O que devemos fazer? Acho que podemos simplesmente adicioná-lo aqui depois, ou podemos adicioná-lo gatilho. Então minha fonte de áudio, ponto tocam um tiro e ele está sendo atingido, sendo atingido como f x. Então esses não são os nomes mais criativos que eu posso obtê-los, mas eles vão fazer por enquanto. Pegando isso, guarde isso na coxa que, e vamos ver. Então, as cabeças de nós. Está bem. Golpe. Nada mal. Então agora é o obtê-lo e atacou o mesmo? Oh, não. Está bem. Ok, ótimo. E a próxima coisa, então eu sei que estes não são os melhores efeitos sonoros. Talvez não goste deles, talvez queiras ter outros efeitos sonoros. Encorajo-te a ir procurar os teus próprios efeitos sonoros. Há muitos recursos que você pode encontrar para efeitos sonoros livres. Oh, ok, então o que mais nós temos? Vamos ver. Temos a explosão da bomba e queima. Fizemos a porta abrindo e fechando. Então, vamos fazer o encerramento. Vamos para a Unidade e vamos ver, precisamos adicionar, então saia da porta e precisamos estar na porta. Então vamos em frente e fazer isso. É um pouco complicado, mas vale a pena. Então fechando a porta como efeitos. E onde devemos jogar? Ele deve ser jogado em um evento. Sim, eu acho que um evento é bom ou podemos jogá-lo bem aqui, logo abaixo do nível de carregamento Iniciar quando acionamos a porta fechada. E podemos fazer isso na verdade. Então vamos em frente e adicionar uma fonte de áudio, ponto play clip no ponto e os efeitos sonoros das portas fechadas. Agora, você não deve estar fazendo tanto o evento e o e usando play clip no ponto. Mas nós estamos apenas, bem, você não deve estar usando ambos e um evento e tocando o clipe de áudio do código diretamente. Mas estamos fazendo isso apenas para entender o escopo
de tocar sons para todos os nossos jogos. Então você entende tudo. E agora fechando o efeito sonoro da porta. E vamos jogar isso adicionar câmera ponto domínio, ponto, transformar, ponto posição. Legal. Copie isso. Ou vamos voltar para a porta e aqui. E vamos em frente. E porque não temos nenhum código, digamos que seja reproduzido, não
temos nada que nos diga que a porta está se fechando dentro de nosso código precisará criar um método real para isso. Então vamos brincar de fechar a porta como efeitos. E vamos em frente e adicionar a fonte de áudio, não reproduzir clipe no ponto de fechamento. Está bem. Não temos a lacuna de fechamento. Então fechando a porta como efeitos. Copie isso. Coloque-o aqui, e vamos colocá-lo para a câmera. A posição do ponto principal da transformação do ponto. Guarde tudo isso. Isso foi difícil. Então volte para a porta e vamos colocar a porta para fechar. E vamos aplicar isso para esquecermos a porta de saída, a porta fechada. Aplique isso, salve tudo isso. Clique no jogo. Ok, então duas portas se abriram sozinhas. A porta se abre e se passarmos por ela, devemos ouvir o fechamento. Está bem. - Legal. Muito legal. Então, o que mais temos? Bem, há um pequeno desafio aqui e eu não acho que eu coloquei,
é o som da caminhada. Então vamos verificar o som da caminhada. Eu bebo dar-lhe como um desafio porque é um pouco pesado. Então vamos ver, onde está? A caminhada. Então, andando, vamos jogar. Como você pode ver, é um dois passos nós jogamos o caminhão. Caminhão. Caminhão. Caminhão. Está bem. Então, onde acha que devemos adicioná-lo? Então eu experimentei muito com isso. E a maneira como vamos fazer isso é usar o evento, que será, onde está? Este erro aqui, podemos esclarecê-lo. É algo sobre animações. Não é grande coisa. Não se preocupe. Qualquer erro que não quebra o seu jogo inteiramente não é tão grande de uma seta do Norte. Então vamos ver enquanto a animação, ou onde está o jogador? E vamos ver andando enquanto a corrida, ok, então dentro da corrida, nós vamos adicionar um evento e esse evento vai jogar o método que vai criar agora, que é chamado de passos. Então vamos ver como vamos criar etapas. Primeira coisa, vamos para o jogador e vamos em frente e adicionar a caminhada como f x. Agora, vamos ver onde devemos adicionar. Devemos criar um método Steps onde vamos criá-lo sob a corrida de salto de declínio e vamos adicioná-lo na corrida. Ok, então vamos chamar este método passos anulados como efeitos. E vamos ver o que devemos adicionar aqui. Então a primeira coisa que vamos fazer é verificar se o jogador está se movendo horizontalmente. Então bool, jogador se movendo horizontalmente. Em terceiro lugar, que mais curto leva dois L ou apenas um. E usaremos o valor absoluto do ponto F matemático. Já o usamos em algum lugar aqui. Eu não tenho certeza. Tão absoluto foi simplesmente escrevê-lo. Então meu corpo rígido, D ponto velocidade ponto x deve ser maior do que matemática f ponto epsilon. Então isso vai verificar se estamos nos movendo e você vai ver por que apenas um n-bit. Então, se o jogador está se movendo horizontalmente, o que devemos fazer aqui? Bem, devemos verificar se o nosso jogador está realmente tocando o chão. Então, se jogador, quero dizer, meu Box Collider 2D está tocando camadas. Com uma máscara de camada, ponto obter máscara. Será o chão e você está quebrando um pouco de regras aqui,
não, não copiando a referência da string. Não se preocupe. É fácil o suficiente, então vamos adicionar a fonte de áudio vai tocar um tiro, ok, do efeito sonoro andando. Mas há uma reviravolta porque se não estivermos nos movendo horizontalmente, faremos algo um pouco estranho aqui. E você pode encontrar isso na minha fonte de áudio, quero dizer, na Fonte de Áudio, uma documentação que é a minha fonte de áudio, ponto stop. E a razão pela qual estamos fazendo isso é porque queremos que os efeitos sonoros de caminhada só toquem se mexam se estivermos realmente tocando o chão. Porque, às vezes, se estivermos no ar e nos movermos para a esquerda ou para a direita, pode ser errado. E a outra coisa que queremos, e a propósito, o som de caminhada como vocês ouviram, é como pisar na pedra. Então precisamos disso. Então precisamos que o nosso jogador esteja no chão. E outra coisa é que precisamos ter, ter certeza de que o jogador está realmente se movendo horizontalmente. E se ele não está se movendo, então a velocidade dele é 0. Queremos parar a reprodução de áudio imediatamente. Não queremos que os efeitos sonoros de caminhada continuem a tocar, tocar, mesmo que o nosso jogador tenha parado de se mover. Então vamos ver se funcionou. Vamos para o jogador. Vamos para os efeitos sonoros e vamos adicionar os sonoros de
caminhada e caminhada ao som, o fato, e aplicar isso. E vamos ver se funciona. Guarde isso. Clique no jogo. Agora. Não, nada. Oh, nós esquecemos. Toda vez. Toda vez. Então precisamos fazer uma nota mental disso. Lembre-se sempre de usar o evento que você adicionou Michel. Então, onde está? Onde é que está? Passos, passos, som gordo, clique no jogo. E espero que seja racional. O Coop. Então, como você pode ver, nós caminhamos de consulta não, não, OK embora. Portanto, há um pouco de um bug em nosso jogo, mas pelo menos o efeito sonoro da caminhada funciona perfeitamente bem. Ir taxa, clique em iniciar. Começamos o jogo de novo. Devíamos estar atrás da porta. Todos os efeitos sonoros funcionam perfeitamente. Passamos de porta em porta fecha, podemos atrapalhar. Nós pulamos. Nós pulamos. E tudo funciona perfeitamente. Correto. Espero que tenham gostado do vídeo. É um vídeo muito, muito longo e é por isso que tive que fazer algumas pausas no meio. Mas espero que tenha gostado. Valeu a pena. Fizemos do nosso jogo um jogo muito melhor e mais legal e uma experiência muito melhor para o jogador. E espero que tenha gostado e te vejo no próximo.
49. Adição de corações: Bem-vindos de volta a um novo vídeo. E como você pode ver aqui, nós não temos mais as vidas. Na verdade, nós podemos até, vamos para a cena, vamos para os textos da vida e podemos realmente desligá-lo. Então, vamos clicar no jogo e ver o que fizemos neste vídeo. Então agora, em vez de um número, temos corações bem aqui no topo, que é muito legal. E nós estabelecemos os limites para pegar quente. Então, se apanharmos por outro coração, o número de corações não aumenta. Vamos pegar a cabeça. E como podem ver, quando somos atingidos, perdemos uma vida. E se pegarmos o slot, aumentamos o coração, que é muito legal e torna o nosso jogo um jogo real. Nós somos atingidos uma vez, nós somos atingidos duas vezes e quando temos um coração sobrando, nós não podemos mais ser atingidos porque nós vamos para o menu principal. Então não vamos perder mais tempo e isso chega
ao k. Então vamos começar adicionando alguns sprites. E vamos entrar nos recursos e pegar o bote salva-vidas. Então arraste a barra salva-vidas e onde devemos colocá-la? Vamos pô-lo nas pickups. Então, quando as recolhas, vamos ter esta barra de vida bem aqui vai fazer 34. Agora talvez nós vamos torná-lo maior, nós vamos aplicar isso. E em qualquer caso, vamos em frente e ver o que precisamos fazer. A primeira coisa que vamos fazer é ir para o Canvas,
clicar com o botão direito do mouse e adicionar uma imagem. Agora dentro da imagem, vamos ver onde está. Clique duas vezes na imagem. Está em algum lugar aqui em cima, bem aqui. Então vamos colocá-lo para as vidas. Vamos pegar o texto da vida e vamos simplesmente colocá-lo aqui embaixo, não
vai se livrar dele ainda. Então, vamos clicar de volta na imagem e vamos mudar a imagem. Então ele precisa de uma fonte que é um sprite. Vamos colocar a barra da vida bem ali. Como você pode ver, não é muito eficaz ou legal agora. Precisará mudar isso um pouco. Bem aqui. Você pode ver que podemos configurá-lo para o tamanho nativo. Então vamos fazer isso. E agora temos a imagem configurada. Vamos colocá-lo um pouco, e vamos colocar as vidas para baixo um pouco. Podemos mudar o tamanho, se quiser. Vamos fazer isso um pouco menor, então faça um pouco menor. Acho que está tudo bem. Suficiente. Legal. Então agora o que precisamos fazer é que precisaremos de alguns corações para representar,
manteremos isso só para garantir que tudo esteja funcionando e então nos livraremos dele. Então, vamos representá-los com corações sobre eles. E vamos fazer isso adicionando três “hot ts”. Então vamos adicionar um grande coração um grande difícil para mim, grande coração três. E todas elas seriam imagens. Então vamos chamar isso de imagem do bote salva-vidas, barra de vida. Ou operações de vida. Imagem da barra de vida duplicada uma vez chamado este coração. E em vez do bar ao vivo irá adicionar o grande quente. Então agora temos um grande coração, ajustá-lo para o tamanho nativo, e vamos torná-lo menor e ordenado para caber dentro do coração. Então vamos torná-lo menor. Vamos clicar em w, E vamos torná-lo também um pouco menor novamente. Então ele se encaixa bem neste coração bem aqui. Vamos duplicar isso e colocá-lo aqui. E vamos duplicar de novo e colocá-lo aqui. Agora temos três corações. Agora o que precisamos fazer é antes de tudo,
aplicar tudo para a sessão do jogo. Então temos os Corações e precisaremos pegar esses corações e colocá-los como crianças. Ok. Então ele precisa abrir o prefab que é chil eles para a imagem da barra. Guarde isso. E agora temos tudo preparado. A próxima coisa que precisamos fazer é porque só temos três corações realeza. Precisamos ter certeza de que nosso jogador, sempre que ele pega corações, ele nunca, ele nunca vai sobre os três corações. Então vamos fazer isso no Visual Studio. Bem aqui na sessão de jogos. Vamos ver onde adicionamos corações. Então adicionamos dores bem aqui. E precisaremos criar uma condição “se”. E essa condição nos dirá que se a vida dos jogadores for maior ou igual a três, nossas vidas serão iguais a três. Ok? Então, mesmo se pegarmos sete corações, ele vai verificar se a vida do jogador é maior ou maior que ou igual a três. Ele simplesmente irá colocá-lo de volta para através de R3. A próxima coisa que precisamos fazer é encontrar uma maneira de remover e adicionar essas imagens. O coração é sempre que pegamos ou perdemos uma vida. E faremos isso usando matrizes. E também vamos usar com matrizes algo chamado de loop for. Agora, eu tenho certeza que se você está um pouco acima ou você sabe, um pouco de codificação, você já sabe o que para loops são, ou você está familiarizado com o nome. Mas, em qualquer caso, vamos examiná-los e explicar o que são porque ainda não fizemos e os resultados. Então, o que é um loop for? É semelhante a um para cada um, mas repete um evento até que uma determinada condição seja atendida. Portanto, é útil ao contar ou iterar através de arrays. Vamos ver como a estrutura de um loop for se parece. A estrutura de um loop for é algo parecido com isso. Então temos o quatro, temos um inteiro i que criamos diretamente dentro do loop. E nós temos um certo limite que, e nós incrementamos o i mais N, nós fazemos alguma coisa. Então, o que isso significa? Um inteiro i, que começa a partir de 0, ou pode começar a partir de algo diferente de 0. Isso não importa. Ok? Então nós temos o eu vou, o loop for vai continuar a iterar e nós vamos fazer o algo aqui mesmo até. Ou enquanto o i é menor do que este certo limite e vamos continuar aumentando o i uma vez, duas e três vezes. Normalmente, o limite certo é o comprimento de uma matriz que temos. E vamos iterar através de
cada elemento dentro desta matriz até terminarmos a matriz. Então eu vou me tornar maior
do que o limite certo e então vamos sair do loop for. Claro que te deixei com os recursos
da documentação de um loop for nos recursos. Então ele continua a executar o código dentro até eu atingir o limite certo. E vamos ver como vamos usar isso. Na verdade você vai usar em um desafio, mas não agora, clique no Visual Studio, e aqui temos o texto da partitura, os textos da vida. E vamos serializar um campo. E nós vamos fazer este campo e imagem não apenas uma imagem. Será uma matriz de imagens e será chamado de corações. Então agora temos o coração e vamos para a Unidade. E devemos, está bem, então projectar. E na sessão de jogos, devemos ter este sem coração bem aqui. E vamos simplesmente clicar nesses três. Ok, agora, antes de fazermos isso, vá para a sessão de jogo e ancorado nesta pequena fechadura bem aqui. E vamos escolher os corações e arrastá-los para o coração. E agora temos coração, coração um e difícil de aplicar tudo isso. A próxima coisa que precisamos fazer é criar um método que atualize os corações cada vez que adicionamos duas vidas ou tiramos vidas. Então vamos fazer isso e pegar o do Clive. Sempre que tivermos o menos, vamos atualizar corações. E quando isso é cópia que atualizar corações. E sempre que adicionarmos duas vidas, bem aqui, vamos atualizar corações. E agora vamos em frente e criar o coração de atualização vai ser vazio e os corações de atualização. E o que devemos fazer dentro dela? Bem, vai ser parte do seu desafio. Seu desafio é terminar o método de atualização de corações. Precisamos habilitar ou desabilitar nossos corações com base em quantas vidas de jogadores ainda nos restam. Então vou te dar uma dica. Use para loops para iterar através da matriz de corações. Já te dei essa dica e com uma condição se que verifica quantas vidas nos restam. Então este é um desafio um pouco desafiador. É para isso que servem os desafios. E porque você vai ser sua primeira vez usando um loop for e é um pouco complicado. Levei um pouco de tempo para descobrir como desativar e habilitar dores. Mas tenho certeza que se você der sua concentração total e total atenção, você pode fazê-lo. Então pare o vídeo agora e vá ensinar caldeu. Bem-vinda de volta. Então eu espero que você tenha tentado o seu melhor. Vamos em frente e tentar atualizar os corações. Então. Vamos ver, precisamos criar um loop para verificar se há vidas de jogadores. E o, se as vidas do jogador são certo número que precisamos ativar ou desativar o quente. Então vamos em frente e primeira coisa, primeiro, criar um loop for. E o que devemos ter dentro disso para loop? Bem, vamos seguir o caminho tradicional de para loops. E qual é o limite? Então, onde deve, qual é o limite que devemos apontar para um incremento? Então vai ser i, vai ser menor do que a matriz do coração ponto o comprimento da matriz de corações. E vamos incrementar por um a cada vez. Então vamos olhar através de todo o conjunto de corações que criamos aqui, que são nossos corações que adicionamos no inspetor. A próxima coisa, a próxima coisa que precisamos fazer é checar a vida do jogador. Então, se nós temos eu, ok, vamos mover isso. Se tivermos i menos do que o número de vidas do jogador. Ok? Vamos fazer com que o coração na posição i dot i habilitado seja igual a verdadeiro. Então vamos continuar habilitando os corações que mostrarão uma hora inspetor ou em nossa imagem. Quero dizer, não o inspetor da nossa imagem na tela. Eles serão habilitados enquanto o i é menor do que o jogador vive, senão, ele vai desligar os corações. Então é, eu, bem, eu pensei que habilitado seria igual falso. Ok, então vamos ver o que acontece aqui. Temos em primeiro lugar, o loop for, e este para loop passa por todos os Vi Hart dentro da matriz de imagens que temos. Então, e ele começa a partir de 0 e ele incrementa por um cada vez com o I plus. Então temos os corações que não consigo. E o que isso faz se entrarmos na Unidade, podemos ver que se escolhermos um dos corações, por exemplo, o primeiro, podemos realmente desativá-lo. E isso significa que a habilitação é igual a falso. Se o ligarmos, isso significa que o incapaz é igual a verdadeiro. Então, o que acontece aqui mesmo na condição “if”? Vamos começar. Por exemplo, temos isso i igual a 0. Temos a IA deve ser, o limite da IA deve ser o comprimento do coração e i incrementa cada vez por um. Então, digamos que, por exemplo, temos as vidas do jogador é igual a dois para o i começa em 0. O 0 é menor que dois? É, isso significa que ele vai permitir o primeiro coração como ele irá incrementar em um e então ele vai continuar a fazer o loop. Então, eu sou menos de um? É, quero dizer, como eu sou igual a um, é menor que dois, qual é o número de vidas do jogador? - É. Então ele vai incrementar e vamos adicionar o segundo coração. E então eu incrementos é, eu torna-se dois, é dois menos do que o jogador fica com apenas dois. Não, não é. Na verdade, é igual a dois. Isso significa que vamos usar o outro e o coração final será habilitado igual a falso, menos testado fora e ver se ele funciona. Espero que sim. É um pouco confuso. Clique no jogo. E isso parou o jogo bem aqui. Então podemos socar, você, passar pela porta, nós pegamos, eles não aumentam. Se formos atingidos, espero que um dos corações desapareça. E eles fazem. E como podem ver aqui, temos dois. Vamos tentar de novo. Fomos atingidos de novo. Temos mais uma vida que vai pegar minha vida e ver se eles se atualizam. Eles atualizam. Muito agradável. Então, eu espero que você tenha gostado do lado do vídeo, mas ao longo de um vídeo curto e como você pode ver, o, porque nós encaixou a tela sob sessão de jogo, é persistente de nível para nível. Espero que tenham gostado do vídeo. Espero que goste de toda a secção deste curso e vejo-te na próxima.