Transcrições
1. Introdução: Olá a todos e bem-vindos à unidade, ao curso de mestrado. O curso é feito no Unity 2020, e esta aula é a primeira parte do curso. Esta aula é para iniciantes em programação no Unity, você vai aprender como configurar projetos 2D e conhecer a interface Unity ou assim, vamos aprender os fundamentos C-sharp que são essenciais para cada jogo. Conhecimento que aplicamos para tornar o seu primeiro simples para o mini-jogo em que você também aprendeu sobre o motor de física, como os objetos colidem e ter os objetos mover corretamente. Este mini jogo irá mostrar-lhe o processo de fazer jogos do início ao fim. E é uma pequena introdução à seção de plataformas. Se você já tem conhecimento fundamental sobre C afiada e unidade, você pode começar a partir da parte dois. Para resumir, nesta classe, você pode esperar aprender a codificar em C Sharp do zero e se familiarizar com o mecanismo Unity em geral. Obrigado pelo seu tempo e nos vemos na aula.
2. O que é o Unity Hub?: O que é o Unity Hub e por que usá-lo? Unity Hub é uma ferramenta de gerenciamento que permite instalar várias versões do editor do Unity. E dá-lhe um controlo fácil sobre os seus projectos. Como sabem, o Unity tem muitas versões. Em cada versão tem sua média, aqueles e assim por diante. Por exemplo, talvez queiramos desenvolver um jogo para PC
na versão 2019 devido ao suporte a longo prazo que a unidade oferece. E na versão mais recente, queremos experimentar os novos recursos e aprender coisas novas. É aqui que o Unity Hub é útil com o Unity Hub, podemos instalar e gerenciar essas versões do Unity. Além disso, podemos adicionar módulos por morte, quero dizer suporte para Linux e desenvolvimento móvel apenas para diversão, queremos outro exemplo. Se você está desenvolvendo novamente inversão 2020 e versão 21 acabou de surgir e ele tem algumas novas características que farão o seu jogo melhor. Você pode atualizar seu projeto e continuar desenvolvendo seu jogo na versão New Unity. Embora se a diferença entre as inversões é muito grande, eu não recomendaria por causa de possíveis erros. É uma boa prática fazer backup antes de atualizar seu projeto. Para nós, a informação básica sobre a corcunda da unidade. No próximo vídeo, vou compartilhar com a instalação um processo de registro.
3. Instalar o Unity: Neste vídeo, mostrarei como baixar,
instalar o Unity Hub e acessar o registro da sua conta. Primeiro abra seu mecanismo de busca e unidade de busca. Tente encontrar o download da página. A unidade geralmente é a primeira. É assim que a página parece. Agora, a unidade pode mudá-la ao longo do tempo, mas você quer encontrar o botão de download do Unity Hub. Após a conclusão do download, você pode iniciar a instalação e é um procedimento padrão como qualquer outro programa ou jogo, exceto termos e escolher um destino para os arquivos. Quando a instalação estiver concluída, execute o Unity Hub e você deverá ver algo assim. É uma janela de licença. Diz que você não tem licença válida para obter uma licença, uma licença livre, é claro, precisamos criar um TID único. Vá para o botão Entrar. Ele lhe dará a opção de entrar se você já tiver o Unity ID. Caso contrário, você precisa criar um. Sentir as informações em criar Unity ID. Também precisa confirmar seu e-mail. Agora, você deve estar logado. Você pode vê-lo pelas nossas iniciais no canto superior direito. O próximo passo é gerenciar a licença, ir para ativar nova licença e uma nova janela deve abrir. Unity plus ou pro são versões pagas, então você não precisa delas agora, você deve escolher uma das duas opções do Unity personal. Se você está planejando fazer jogos comerciais, escolha a primeira opção. E o último passo sob a janela geral, você pode escolher um Unity Hub irá instalar o Unity Editor. E é isso. Você criou o Unity ID com sucesso e ativou a licença. No próximo vídeo, instalaremos o Unity Editor e o Visual Studio.
4. Instalar o Unity e o Visual Studio: Após o registro, se você quiser iniciar um novo projeto, você precisará do editor Unity. Então, em instalações, clique em Adicionar e a nova janela aparecerá. Aqui. Você pode escolher qual versão do Unity você deseja instalar. Selecione a versão oficial mais recente. Para mim, é 2020, 0.1 e algo talvez haja suporte a
longo prazo para a versão da dívida no momento em que você começar com o curso. Então, se houver uma versão 2020 com LTS, escolha isso. O próximo passo é escolher os módulos que você deseja instalar. Você precisará do Visual Studio para este curso. Nós não precisamos de suporte para Android e iOS, mas se você quiser fazer jogos para Linux e Mac, escolha Linux e Mac build suporte. Vou pular isso por enquanto. Além disso, você pode incluir documentação para que você possa usá-la mesmo sem uma conexão com a Internet. Quando você selecionou todos os módulos que deseja, e não se preocupe, você pode adicioná-los facilmente mais tarde se você perder algo, basta iniciar a instalação. Unity Hub, seu primeiro download do Unity, instalou-o e, em seguida, faça o mesmo para o Visual Studio. Após a instalação, se você precisar adicionar módulos para a versão Unity, você quer clicar sobre estes três pontos e módulos de ajuda. Em seguida, selecione os módulos que deseja adicionar. Se você já tiver outras versões do Unity instaladas, você pode adicioná-las facilmente ao Unity Hub, clicar em localizar, localizar a pasta de instalação e selecionar Unity Editor. Neste momento, não tenho nenhuma outra versão do Unity. Agora você tem tudo para seguir este curso. No próximo capítulo, vamos começar com o primeiro projeto, Anglo através de Unity e C nítidas noções básicas.
5. Primeiro projeto: Agora, quando tivermos tudo para iniciar um novo projeto, vá para a janela do projeto. Atualmente, não há projetos. Você pode adicionar alguns de seus projetos antigos ou criar um novo clicando no botão Novo. E, em seguida, clicando perto do botão Novo, você pode escolher em qual versão deseja iniciar um projeto. Por enquanto, só tenho uma versão. Na nova janela, você deve ver algumas predefinições de projeto que
também podem mudar com o tempo como Unity atualiza o Unity Hub, mas queremos selecionar um projeto 2D já que vamos fazer jogos 2D. Dê a ele um nome na escolha do local para o seu projeto ou limite como ele é. Clique em Criar. Agora Unity, vamos montar seu projeto. Vamos para tela cheia. Não farei a Atualização agora. Este layout para Logs. Vamos passar pelas janelas mais importantes para que você possa ter uma idéia de como trabalhar com o Unity. Aqui está a janela do projeto em ativos, geralmente
importamos todos os sprites, sons, criar pastas e scripts é bom para a organização de seus arquivos. Em seguida, colocamos alguns dos sprites na cena e fazemos objetos de jogo como jogadores, inimigos, e assim por diante. A visão da cena é como o seu mundo de jogo. Aqui GameObjects ouviu sua posição, representação
visual e muito mais. Cada objeto de jogo é listado na hierarquia. Por padrão, somente a câmera principal está na cena. Se clicarmos nele na janela do inspetor, podemos ver detalhes sobre o objeto. Nesse caso, o inspetor de câmera principal mostra componentes e suas propriedades, como posição, rotação e escala do componente de transformação. A próxima janela é a janela do jogo. Ele irá mostrar-lhe a vista da sua câmera no jogo real. Ao pressionar o botão Reproduzir, você pode simular seu jogo e jogá-lo para ver as alterações feitas. Por enquanto, só vemos o fundo azul da câmera. Clique novamente para sair do modo de reprodução. A próxima janela é o console. Aqui podemos ver mensagens, alertas e erros de nossos scripts. Antes de irmos para os próximos três,
se você quiser iniciar manualmente a atualização desde o início do vídeo, vá para ajudar a verificar se há atualizações. No próximo vídeo, faremos um primeiro objeto de jogo no script.
6. Primeiro script: Antes de criar um script, e vamos criar uma pasta para manter as coisas boas e organizadas na janela do projeto em ativos,
clique com o botão direito do mouse em criar uma pasta. Vou chamá-lo de Scripts. Na pasta scripts,
clique com o botão direito do mouse em criar script C-sharp. Vamos chamar de informação geral. Antes de abri-la, verifique se o Unity reconhece o Visual Studio como uma extensão. Vá para Editar, Preferências, ferramentas
externas e escolha Visual Studio para o editor de scripts. Agora podemos abrir o script de informações gerais. Se for a primeira vez que abre um script, terá de criar ou iniciar sessão numa conta Microsoft. Em seguida, escolha o modo de cor. Eu vou para o modo escuro é melhor para os olhos. E é assim que nossos modelos de script padrão devem parecer. Como você pode ver, criando uma informação geral de script, criamos uma classe, uma informação geral mais sobre as classes nas próximas lições, o erro mais comum para os novos usuários é renomear um script. O nome da classe e o nome do script devem ser os mesmos. Para renomear o script, clique duas vezes nele
lentamente ou clique com o botão direito do mouse e escolha renomear. E se você fizer isso, lembre-se de alterar o nome da classe no Visual Studio, caso contrário, você receberá erros. Como você pode ver por padrão, existem duas funções, iniciar e atualizar mais sobre funções mais tarde. Mas agora você deve apenas saber que a função de início será chamado apenas uma vez quando começarmos a cena. Isso significa que quando pressionamos o botão Play, quando eu digo que uma função de início será chamada, isso significa que cada linha de código entre esses dois colchetes será executada de cima para baixo. A atualização será chamada ou executada uma vez por quadro, o que significa muitas vezes várias vezes. Para demonstrar isso, vamos usar um log de pontos de depuração para que possamos imprimir algumas mensagens para o console. Certo? Parênteses Debow DotCloud,
e usar aspas para o texto que queremos ver no console, um texto sempre precisa estar entre aspas. Coloque também um ponto-e-vírgula no final da linha. Vamos adicionar um amor de depuração na função de atualização. Agora temos duas linhas de código, uma no início e outra na atualização. Temos de salvar o guião. Você também pode pressionar Control S. E vamos voltar para Unity e pressionar play. E nada acontece. Nós cometemos um segundo erro comum dentro dele. Anexe o script a um GameObject. Vamos selecionar a câmera principal e ajudar o script de informações gerais. Clique em Adicionar componente e digite informações gerais ao quadrado. Agora pressione play. Clique em um colapso para agrupar as mesmas mensagens e obter uma visão melhor. Como você pode ver, a mensagem da função de início foi chamada uma vez. E cada quadro que imprimimos nossa mensagem a partir da função de atualização. Pressione o botão novamente para sair do modo de reprodução. Para remover um script do objeto de jogo, clique em três pontos verticais, também chamados de menu Mais Opções, e remova o script. Além disso, você pode apagar manualmente as mensagens do console clicando no botão Limpar. E, por padrão, eles serão apagados toda vez que pressionarmos Play ou construirmos um jogo. Agora, quando removemos o script de informações gerais
da câmera principal e vamos editar para um novo objeto de jogo sob hierarquia, Clique com o botão direito do mouse e crie vazio. Isso criará um objeto de jogo na cena. Também podemos criar um novo objeto clicando no botão de adição. Observe como nosso novo objeto de jogo tem apenas o componente de transformação. Objeto renomeado, como você quiser. E também há a possibilidade de adicionar um ícone ao seu objeto para que você possa vê-lo na cena. Para adicionar um script, podemos repetir o processo clicando em Adicionar componente, ou podemos simplesmente arrastá-lo e soltá-lo. Aperte play. E você deve ver as mensagens no console. Aqui está o lembrete para este vídeo. No próximo vídeo, aprenderemos sobre variáveis.
7. Variáveis: Usamos variáveis quando queríamos armazenar informações. Você pode imaginar uma variável como uma caixa na qual você pode colocar alguns dados quando você precisar dela. Basta abrir a caixa e usar os dados que armazenamos antes. Claro, como existem muitos tipos de caixas, existem muitos tipos de variáveis. Imagine um tipo diferente de caixa como um tipo diferente de variável. Então, em uma caixa quadrada, você pode colocar apenas uma informação quadrada nos livros redondos. Você pode colocar apenas em torno de informações. Podemos concluir que o tipo de variável indica que tipo de informação queremos armazenar. Em C-Sharp, usamos quatro tipos principais. Inteiro, flutuador, corda, tigela final. Um inteiro ou int é um número inteiro. Pode ser positivo ou negativo. À tona é um número decimal. Também pode ser positivo ou negativo. À tona também pode armazenar números inteiros, mas int é mais rápido. Então tente usar float apenas quando você precisa de um número decimal. Uma string é um texto como o clássico Helloworld. Escrevemos texto dentro de aspas e observamos que qualquer número dentro das aspas é considerado como texto, não como inteiro ou um flutuador. Ball tem apenas duas opções. Pode ser verdadeiro ou falso. Vamos passar pela sintaxe das variáveis. Primeiro, escrevemos o tipo de variável, por exemplo, int. Em seguida é o nome da variável. Geralmente é algo que descreve as informações que queremos armazenar. Em seguida, escrevemos um sinal de igual seguido pelo valor que queremos atribuir à variável. E, claro, um ponto-e-vírgula no final. Agora, vamos usar variáveis no script. Abra seu roteiro. Quero armazenar informações pessoais sobre mim e impressas no console sobre a função de início. Vamos criar uma string, meu nome. Agora, escrever igual a sinais de aspas. No seu caso, seu nome e ponto e vírgula no final. Fora das aspas. Não se põe um ponto-e-vírgula no final. Você verá uma notificação de erro no canto inferior esquerdo. Para abrir informações mais detalhadas sobre erros. Vá para Exibir e selecione a lista de erros. Clique duas vezes nele e ele irá mostrar-lhe vários o erro exatamente. Vamos usar um número inteiro para armazenar a minha idade. Com float, podemos armazenar minha altura ao armazenar fluxos e f após o valor do número. Isso é apenas a sintaxe. Com a tigela. Posso definir meus superpoderes para falsos. Talvez você defina isso como verdade. Eu não sei. Agora, quando tivermos variáveis, vamos usá-las. No DeBow Datalog. Vou apenas comentar a caixa de antes de usar uma barra dupla, para que não os vejamos mais no console. No novo log de pontos de depuração, escreva alguns textos. Meu nome é Anne, fora das aspas, certo? Sinal de adição seguido pela variável meu nome. Com um sinal de mais. Nós, de alguma forma, mesclamos textos na variável. Vamos ver no console. Ótima. Podemos continuar nossa nova frase e adicionar outro sinal de mais, algum texto entre aspas. O sinal de mais e a variável da minha idade. Pressione play em Unity. Estas são as impressoras no console. Além disso, podemos depurar apenas a variável que queremos. Por exemplo, superpoderes de log de pontos de depuração. Agora, no console, você deve ver verdadeiro ou falso dependendo da sua variável de superpotência. Pressione play em Unity. Ótima. Além disso, você pode ver no console há um aviso de que atribuímos minha variável de altura, mas não estamos usando em nenhum lugar para ocultar ou mostrar mensagens, avisos ou erros. Alterne estes botões na janela superior direita da consola. Aqui está o lembrete para este vídeo. O próximo vídeo é sobre funções.
8. Funções: Funções são formulários que agrupam código que executa uma tarefa específica. Eles são muito úteis quando você precisa repetir um pedaço de código em muitos lugares e muitas vezes, talvez você tenha ouvido o método de expressão. Métodos e funções são os mesmos. Eu costumo dizer funções porque é mais perto da minha língua nativa. Vamos ver como definimos uma função. Primeiro, escrevemos nosso tipo de retorno neste exemplo, void, então o nome da função, geralmente é algo que descreve o que a função faz. Em seguida, abrimos e fechamos parênteses. Dentro do parêntese, podemos adicionar parâmetros à nossa função por enquanto, deixá-la vazia. Em seguida, precisamos dos colchetes. E entre colchetes, escrevemos linhas de código que definem o que essa função fará. Talvez você tenha ouvido a expressão, escreva uma declaração. Uma declaração é apenas mais uma palavra para linha de código. Então, em outras palavras, escrevemos declarações entre colchetes. Vamos falar sobre o tipo de retorno. Neste exemplo, usamos void, que significa que não há valor de retorno. A próxima pergunta é, o que isso significa? Nenhum valor de retorno. Imagine se eu lhe der algum dever de casa e você fizer isso na função de vazio, você não precisa devolver o resultado do seu dever de casa. Para mim. Você vai fazer o dever de casa, fazer cálculos, mas você não vai devolvê-lo para mim. Eu não vou vê-lo. Se for algum outro tipo de retorno como int ou float, você vai me devolver o resultado, o que significa que a função irá retornar um determinado tipo. Espero que seja compreensível o suficiente, mas você receberá em exemplos. Vamos criar uma função no script de informações gerais dentro da classe, mas fora do início e atualização, certo? Anular informações pessoais. Este será o nome para a nossa função. Alguns parênteses e colchetes. Dentro dos colchetes. E vamos copiar os logs de depuração. Pressione Control X para cortar e Control V para colá-los dentro. Se pressionarmos Play in Unity, nada acontecerá. Não há mensagens no console. Apenas definindo uma função, não
estamos fazendo nada. Precisamos chamar uma função. Isso significa que precisamos decidir quando e onde executar instruções. Por exemplo, quero imprimir mensagens quando pressionamos o botão Reproduzir. Isso significa que precisamos chamar a função de informações pessoais no início. Para chamar uma função, escreva o nome da função, seguido do ponto e vírgula entre parênteses. Agora, quando pressionarmos play, essas linhas de código serão executadas. E aqui está a mensagem no console. Ótima. Note que podemos chamar uma função quantas vezes quisermos. Vamos chamá-lo mais duas vezes. Funções são muito úteis quando precisamos repetir um pedaço de código. Aqui está o resultado da impressão três vezes o meu nome em superpoderes. Mas neste caso, não
é divertido chamar uma função que irá imprimir o mesmo nome todas as vezes. Esta é uma ótima oportunidade para usar parâmetros. Dentro do parêntese. Nós escrevemos um tipo do parâmetro e o nome. Além disso, podemos adicionar mais parâmetros separados pela vírgula. Agora temos três parâmetros ou variáveis que existem apenas dentro da função. O que significa que entre estes colchetes, não
podemos usá-los lá fora. Vamos usar esses parâmetros no log de pontos de depuração. Substitua meu nome pelo nome local, minha idade por idade e superpoderes por poderes. Observe que temos erros agora, seja, porque quando chamamos uma função que em definição tem parâmetros, devemos fornecer esses tipos de parâmetros. Precisamos colar essa informação para a função. cada chamada, nossa função permanece três variáveis. As variáveis que fornecemos ao chamar uma função são chamados argumentos. Em definição, eles são parâmetros. Ao chamar uma função, eles são argumentos. Então, entre parênteses, precisamos colar os tipos de variáveis corretos na ordem correta. Primeiro é string, meu nome, depois inteiro, minha idade. Então, jogue superpoderes. Na segunda chamada, em vez de declarar n usando uma variável, Eu posso apenas escrever string Bateman, inteiro 40 e falso, sem superpoderes. A terceira chamada será o Super-Homem. Ele tem 36 anos e tem superpoderes. O que acontecerá quando pressionarmos o botão play com cada chamada, esses parâmetros terão os valores que
escrevemos entre parênteses ao chamar a função. Na primeira chamada, o nome local irá obter o meu valor de nome e usá-lo no log de pontos em massa. Na segunda chamada, o nome
local irá obter a string Bateman está disponível e usá-lo no log de pontos de depuração, e assim por diante. Vamos ver no console. - Legal. A função foi chamada três vezes. Você pode ver as informações sobre mim, Batman e Superman. Agora podemos criar outro tipo de função, uma função que retorna um valor, certo? Int número duplo, parênteses, int num, parâmetro, colchetes. E a palavra-chave que precisamos é um retorno. Em seguida, escrevemos o que a função retornará. Digamos que queríamos retornar parâmetro num multiplicado por 2, coloque um ponto-e-vírgula no final. Este é apenas um exemplo simples para ver a diferença entre o tipo de retorno vazio. Os tipos de retorno têm palavra-chave return e return value. Além disso, podemos chamar funções no log de ponto de depuração. Na função de início, escreva o número duplo do log de pontos de depuração. E digamos que queremos dobrar o número sete. O resultado será 14. Pressione Reproduzir. E aqui está o resultado, 14. Isto é tudo por este vídeo. O próximo é o primeiro desafio para você. Vamos encerrar as coisas aqui.
9. Funções de desafio: Aqui está o primeiro desafio para você no novo script tentou fazer duas funções. Uma função precisa retornar um produto de dois números inteiros. A segunda função precisa imprimir a adição de três números decimais. As funções precisam ser chamadas na função de início duas vezes cada. A solução para este desafio está no próximo desafio. Revisão. Boa sorte com o desafio e vejo você no próximo vídeo.
10. Revisão do desafio - Funções: Vamos criar um novo script na pasta de scripts. O nome será a solução de função. Cabe a você como você quer chamá-lo. Clique duas vezes nele para abri-lo. A primeira função precisa multiplicar dois números inteiros e retornar o resultado. Certo, int. Porque queremos retornar int, o nome pode ser multiplicação. E no parêntese precisamos de dois parâmetros int. Agora você pode digitar entre colchetes, retornado um vezes b, usar um asterisco para multiplicação e o ponto-e-vírgula no final é tão simples. Esta função irá multiplicar a e b e retornar o resultado. Você também pode fazer outra variável e armazenar o resultado de multiplicação
na variável c e, em seguida, retornar a variável C é a mesma coisa. Só mais um pouco de trabalho. Na próxima função, não
precisamos retornar o resultado. Assim, o tipo de retorno será anulado, anulado adição, três parâmetros flutuantes. E podemos fazer outra variável dentro da função, armazenado o resultado e impresso para o console com log de ponto de depuração. Agora vamos chamar funções no início duas vezes cada. Diga o roteiro. Não se esqueça de anexar o script. Vou desativar o script de informações gerais desmarcando a caixa. Agora, apenas os scripts de solução de função serão executados no console. Não serão apenas impressos os resultados da função de adição. Se você quiser ver o resultado da função de multiplicação, podemos depurá-lo, certo? As funções de multiplicação em logs de depuração. Agora você deve ver todos os resultados impressos no console. E é isso. Esta é a solução para o primeiro desafio. Espero que não tenha sido muito difícil. Sinta-se livre para continuar com o curso.
11. Cursos: Para entender as aulas, vamos falar sobre c-sharp. C-sharp é 0 p, que é abreviação de linguagem de programação orientada a objeto em OOP. E isso significa que em C Sharp, descrevemos objetos com código para descrevê-los, usamos classes. Você pode imaginar uma classe como um blueprint de um objeto específico. Digamos que queremos criar um carro novamente,
nesse caso, nós criaríamos a classe de carro que descreve um carro. Por exemplo, podemos descrever um carro com algumas variáveis como cor e velocidade. Então podemos adicionar funcionalidade ao nosso carro usando funções, o que carro pode fazer, ele pode acelerar, ele pode usar uma pausa, e assim por diante. Agora, quando temos um plano de um carro, podemos criar um carro objetos em um jogo. Criando um objeto usando uma classe é chamado criando uma instância de uma classe. Aqui está a tabela com exemplos. Um carro é uma classe e objetos ou instâncias em um jogo são diferentes tipos de carros. Você entendeu a idéia. A sintaxe é simples. Escrevemos classe seguido pelo nome da classe e colchetes. Quando criamos um script, unidade irá criar automaticamente uma classe. No entanto, ele irá adicionar um modificador de acesso. Falamos sobre eles nos próximos três dias e isso irá adicionar comportamento mono. Esta é apenas unidade da interface de programação do aplicativo ou API. Esta coluna entre o nome da classe no comportamento
mono significa que nossa classe é um filho do comportamento mono. Dizemos que a nossa classe deriva de 10 comportamento, mais sobre herança, pai e filho mais próximo mais tarde no curso. Por enquanto, basta lembrar que funções como start e desatualizado vêm do comportamento mono e
podemos usá-los em nossas classes em nosso projeto criando as informações gerais de script. Criamos a informação geral da classe. Em seguida, adicionamos esse script de informações gerais a um objeto de jogo chamado primeiro objeto. Fazendo isso, criamos uma instância da classe. Se colocarmos isso em uma tabela, informação
geral é uma classe. E no primeiro objeto, criamos uma instância dessa classe. Atualmente, estamos usando para imprimir algumas informações sobre nós. Mas e se quisermos criar mais instâncias que imprimiram informações diferentes sobre pessoas
diferentes, nomes diferentes, idade, altura e assim por diante. Para fazer isso, precisamos alterar as variáveis para cada instância. Como fazer isso? Primeiro, vamos criar dois GameObjects com o script de informações gerais. Renomeie este GameObject. E o guião. E pressione Control D para duplicar o GameObject, renomeado para o terceiro objeto de jogo. E agora temos três GameObjects com script de informação geral. Não se esqueça de ativar o script de informações gerais
no primeiro objeto de jogo e desativar o script de solução de função. Vamos dar uma olhada na nossa tela. Vou comentar rapidamente o código desnecessário selecionando-o e pressionando o botão Command. Observe que a função de informações pessoais leva essas variáveis como argumentos. Precisamos alterar essas variáveis para cada instância, então obtemos resultados diferentes ao chamar a função de informações pessoais. Se eu apenas alterar uma variável como esta, isso irá alterá-la para todas as instâncias criadas. Para o primeiro, segundo, terceiro, objeto. Para alterar variáveis separadamente. Para cada instância, precisamos saber algo sobre modificadores de acesso, o que explicarei na próxima lição. Aqui está o lembrete para as aulas.
12. Modificadores de acesso: Um modificador de acesso é uma palavra-chave colocada antes um tipo de dados de variáveis, funções ou classes. Na maioria das vezes usamos modificadores de acesso privado e público. Eles definem a acessibilidade dessas variáveis, funções e classes. O que significa que eles definem acessibilidade? Isso significa que eles determinam onde você pode ver e usar variáveis e funções. Por exemplo, variáveis, modificador de acesso privado doce pode ser visto em mudança apenas dentro de uma classe em que foram criados outros scripts. E isso significa crise novamente, ver e editar essas variáveis privadas. Em C Sharp, nosso modificador de acesso padrão é privado, o que significa que se não escrevermos um modificador de acesso, as variáveis seriam privadas. E isso, e isso são os mesmos, mas é sempre uma boa prática escrever modificadores de
acesso no script de informações gerais. Não temos modificadores de acesso, o que significa que as variáveis são privadas. Então não podemos ver variáveis privadas no Inspetor. Observe que não vemos variáveis sob o script de informações gerais. Há uma maneira de vê-los, mas você não pode editá-los no objeto do jogo, clique no botão Mais opções e selecione um modo de depuração. Agora, você pode ver as variáveis privadas, mas você não pode alterá-las aqui no inspetor. Isso é bom para depurar e monitorar suas variáveis privadas. Mas, por enquanto, vamos voltar ao modo normal. Por outro lado, variáveis com o modificador de acesso público são mostradas no Inspetor. Vamos tornar nossas variáveis públicas modificadores de acesso público antes do tipo de dados. Agora, no inspetor, podemos ver as variáveis e alterá-las para cada instância. Vamos fazer isso rapidamente. Pressione play, e no console haverá três resultados diferentes, um de cada instância. Além disso, variáveis públicas e funções de um script podem ser vistas em alteradas de outro script. A comunicação entre scripts é algo que você costuma usar em seu desenvolvimento de jogos. Vamos criar dois scripts, colocar a e classe B. Na classe a, vamos criar duas variáveis, uma privada e uma pública. Também crie dois em função pública e privada. Basta inserir um registro de depuração que imprime texto. Argilas abertas. Aqui, precisamos armazenar uma referência a outro script. Mais precisamente, referência a uma instância de uma classe. Neste exemplo, classe a. Fazemos isso escrevendo público. Em seguida, é o nome do script que queremos acessar
e, em seguida, o nome que queremos usar para referência. Observe que a referência à instância da classe a é variável, qual tipo é o nome do script? Se você der uma olhada na sintaxe, temos modificador de acesso, tipo de
dados, e o nome ou a variável. Agora temos acesso a variável e função da classe
a por variedade em referência à classe a. Isso, e aqui podemos ver o exemplo de função pública pública pública e exemple variável pública. Escolha a função, coloque o ponto-e-vírgula no final. E note que não podemos ver ou usar variáveis privadas da classe a, apenas as públicas. Podemos ver a variável pública da classe a. e vamos usá-lo no log de depuração. Volte para a Unidade. Desative coisas que não precisamos porque não queremos uma bagunça no console. Crie dois GameObjects. Um precisa ter classe a e outras argilas ser. Pressione Reproduzir. E temos um erro, nulo, erro de referência. Por que é isso? Clique duas vezes nele e você verá que o erro está na linha 10 quando estamos chamando a função da referência que não está atribuído. Se dermos uma olhada no objeto e B em que é a classe de script B, a referência de variável está vazia. Em outras palavras, não atribuímos uma instância. Precisamos dizer à unidade qual instância estamos usando. E nós queremos usar instância no objeto a. Basta arrastar e soltar objetos a. E você pode ver que agora estamos usando a classe a de objeto dívida pressione jogar a. Agora você pode ver o resultado da impressora no console. Para o próximo exemplo, podemos duplicar este objeto a e usá-lo para referência. Você pode concluir que precisa especificar qual unidade de instância precisa ser usada. Dica rápida. Se você tiver problemas para arrastar e soltar objetos, você pode selecionar Objeto B e clicar no bloqueio. Quando você seleciona outro objeto, o inspetor ainda mostrará o objeto bloqueado. Pressione Reproduzir. Ótimo, vamos encerrar as coisas por enquanto. Aqui estão as principais informações deste vídeo.
13. Ordem de execução nos scripts: Vamos passar pela ordem de execução para ver em que ordem unidade chama funções. Isso é muito importante de entender. O link para esta página está na pasta de recursos. Vou passar pelas funções mais importantes. Se dermos uma olhada na ordem de execução, você pode ver a função de início. Mas como você pode ver, ele não é chamado primeiro realmente é a função acordado que é chamado primeiro. Essas funções são chamadas apenas uma vez e, em seguida, vamos para a unidade de objeto fixo. O motor de física funciona com atualização fixa para simular todas as forças físicas e é chamado em um temporizador fixo. Isso significa que não depende da taxa de quadros. Isso garante o movimento suave dos objetos. Então temos UM gatilho e em funções de colisão que muitas vezes usaremos. E aqui você pode ver que a física está voltando para atualização fixa. Isso é um ciclo físico independente ou a taxa de quadros. Na maioria das vezes é chamado mais de uma vez por quadro. Então temos a função de atualização. A função de atualização é chamada uma vez por quadro. Então temos algumas coisas de animação, atualização
tardia na renderização. Então temos o fim de um quadro. Após a morte, temos outro lobo está indo caminho volta para a atualização fixa é o início de um novo quadro. Basicamente está passando por todas essas coisas. Novamente, você pode ver que temos um grande loop, quatro quadros em um loop menor para física. Após o quadro, temos algumas funções quando desativamos ou destruímos um script. Vamos ver como escrevemos algumas dessas funções no script. Este é apenas um script vazio. Por padrão, temos funções de início e atualização. Por exemplo, podemos adicionar a função de despertar. Você pode colocá-lo acima ou abaixo da função de início. Isso não importa. A ordem de execução é sempre a mesma. Awake é chamado antes de começar. Geralmente, é bom escrever funções na ordem em que são chamadas. Torna-o mais organizado. Além disso, da mesma forma, podemos adicionar uma atualização fixa e outras funções. Dentro de cada função, a ordem de execução é de cima para baixo linha por linha. No site oficial da documentação Unity, você pode ver explicações mais detalhadas. Para começar. Sugiro que você leia a primeira cena em voz alta antes do primeiro quadro, atualize e atualize as seções de ordem. Eles são os mais importantes por enquanto. Quando terminar de verificar a documentação, você pode continuar para a próxima lição.
14. Novo cena e layout: Antes de continuarmos VC nítido, Vamos criar uma nova cena. Aqui. Temos muitos objetos de jogo que não precisamos mais. Podemos excluí-los com o botão de exclusão. Mas para salvar o trabalho anterior, Vamos criar uma nova cena. Vá para Arquivo aqui. Você pode salvar sua cena se ainda não fez isso. Clique em Nova visualização. Observe que na nova cena e não há objetos do anterior. A câmera principal está aqui por padrão, para entender as cenas, é importante entender como os jogos são feitos no Unity. Você pode imaginar uma costura é um nível do seu jogo. Não é o papel, mas geralmente queremos ver é um nível único. Em seguida, conectamos as cenas com roteiros e temos novamente. Agora, vamos falar sobre um layout. Neste ponto, você sabe, janelas
básicas do editor Unity, e para o que usamos, você pode mover e personalizar janelas como quiser. No canto superior direito, você pode escolher uma das predefinições de layout. Além disso, você pode fazer um layout personalizado e salvá-lo. Sinta-se livre para usar qualquer layout através deste curso. Haverá mais janelas de editor que descobriremos mais tarde no curso. E na maioria das vezes, usarei o layout padrão pressionando Control S para salvar a cena na pasta Scenes. Agora, podemos continuar com C nítido no próximo vídeo.
15. Condições + [Mini Desafio +: Neste vídeo, aprendemos sobre se e trocar declarações. Com a instrução if, verificamos se há uma condição e executamos códigos diferentes dependendo se a condição é verdadeira ou falsa. Vamos dar uma olhada na sintaxe. Nós escrevemos se, então alguns parênteses e colchetes dentro do parêntese. Colocamos nossa condição. Por exemplo, podemos verificar se a superpotência variável bola é verdadeira escrevendo superpotência, o duplo é igual sinal e mastigar. Se a superpotência variável bowl estiver definida para mostrar que a condição é atendida e tudo dentro de colchetes será executado. No caso de superpotência é falsa e a condição não é atendida, podemos usar a instrução else abaixo de colchetes, certo? Else seguido por colchetes adicionais. Observe que usamos operador duplo igual para determinar essa condição. Podemos usar diferentes operadores para definir condições diferentes. Aqui está a lista de operadores. O duplo é igual a média é igual ao ponto de exclamação qubit igual a significa de sinal não é igual a. Se estamos trabalhando com números, podemos usar os sinais de maior ou menor que para compará-los. Se colocarmos um sinal de igual adicional, significa maior ou igual a, então temos um menor que ou igual a. Vamos tentar isso em um script. Crie um novo script chamado condições e edite para o objeto do jogo. Crie a variável de superpotência da tigela e defina-a como true. Na função de início, podemos escrever uma instrução if else, se então parênteses com condição dentro de colchetes, o backlog. E outra declaração com colchetes. Se tentarmos isso no Unity, esta é a mensagem no console. Para manter seu código organizado, coloque as instruções dentro de uma função. Ótimo, muito melhor. De forma semelhante, podemos verificar outras variáveis. Vamos criar velocidade variável int pública. Por exemplo, se a velocidade for maior que 0, imprima VAR adiante. Ou então estamos indo para trás. Não se esqueça de chamar a função no inspetor, defina a velocidade para qualquer número positivo. Pressione Reproduzir. Ótima. Você pode ver a mensagem. Estamos indo para a frente. Se definirmos a velocidade para um número negativo, obteremos uma mensagem diferente. Mas e se definirmos a velocidade para 0? Não queremos imprimir, estamos indo para trás. Se a velocidade for 0. Para resolvê-lo, vamos usar a instrução else if abaixo da instrução if, certo? Caso contrário, se parênteses, se a velocidade for igual a 0, traga de pé. Agora temos três casos, negativo, velocidade
positiva e nenhum caso de velocidade. Podemos adicionar quantas outras declarações se quisermos. Vamos tentar em Unity. A velocidade é 0 e recebemos a mensagem certa. Mais uma coisa sobre instruções if, é possível usar if instruções dentro de outra instrução if. Além disso, você precisa lembrar que apenas uma das instruções pode ser executada. Por exemplo, aqui temos a velocidade variável e duas declarações. Ambas as condições estão preenchidas. Cinco é maior que 04, mas apenas a primeira condição que é feita será executada e outras serão ignoradas. Portanto, tenha cuidado ao construir suas declarações. Agora, vamos dar uma olhada na declaração switch. A instrução switch é mais específica e um pouco limitada em comparação com a instrução if, geralmente eu uso a instrução switch quando eu tenho muitas instruções elseif ou eu sei os valores exatos das variáveis. Vamos fazer um int, grau
variável, e uma função para a instrução switch. Para usar a instrução switch, escrevemos parênteses switch, a variável que queremos verificar entre colchetes. Dentro de colchetes, lemos casos específicos. Estamos a utilizar o grau variável e, no meu país, as notas são de 1 a 5. Então escrevemos o caso um seguido do cólon. Isso significa que se a nota for uma, executamos o código abaixo do caso 1. Podemos usar o bug em, em
seguida, escrever uma pausa seguida de um ponto e vírgula. freio marca o fim do caso um e interromperá a verificação adicional dos casos. Observe que é possível escrever várias linhas de código em casos. Vamos criar o formulário de nossos casos para notas. Se a nota for qualquer número diferente de um a cinco, por exemplo, dez. Cobrimos isso com um caso padrão. Não se esqueça de chamar a função. Vamos tentar em Unity. Podemos verificar com a quinta série. Legal. Aqui está o mini desafio. Tentou escrever uma instrução switch para substituir a primeira instrução if. Pausar a lição e tentou converter instrução IF para alternar. Aqui está a solução. Queremos verificar a variável de superpotência. Como é uma variável bowl, temos dois casos, verdadeiro ou falso. E é isso. As condições são algo que usamos o tempo todo, então é importante entendê-las. Aqui está o lembrete para ajudá-lo.
16. Loops: Usamos loops quando queremos repetir um pedaço de código e o repetimos desde que uma determinada condição seja atendida, loops economizam tempo e tornam seu código mais legível. Neste vídeo, vamos aprender sobre loops e while loops. Por exemplo, se você quiser imprimir números de um a cinco, você pode fazê-lo escrevendo depuração cinco vezes ou usar um dos loops. Nesse caso, usaremos o loop for porque sabemos exatamente quantas vezes você deseja repetir o código do Tableau. São cinco vezes para imprimir cinco números. Vamos dar uma olhada na sintaxe. Escrevemos para parênteses, seguidos por colchetes. Dentro dos parênteses, escrevemos três declarações. A primeira instrução, definimos a variável que normalmente usamos como um contador para etapas de loop. Esta declaração acontece apenas uma vez e antes do início do loop. A variável que definimos é chamada de iterador. Em seguida, escrevemos a condição que precisa ser atendida para que o loop continue. Queremos que o nosso loop escreva os primeiros cinco números. Então nós dissemos a condição para I menor ou igual a cinco, seguido de um ponto e vírgula. Se a condição for atendida, o loop continuará como código ACLU entre colchetes, seja, as partes do que para repetições de loop. Um ciclo de repetição é chamado de iteração. Aqui queremos repetir o log de depuração que irá imprimir iterador. A última coisa que precisamos fazer é aumentar o iterador. Então não é uma sagacidade em cada impressão digital. Lembre-se, queremos imprimir os números de um a cinco. Após cada iteração de for loop, vamos isolar a terceira declaração. E essa afirmação, mudamos nosso iterador dependendo do que precisamos. Nessa situação, precisamos aumentá-lo em um para cada iteração. A notação curta para isso é I plus. E vamos ver como esse loop funciona passo a passo. Nós definimos a variável para um. Normalmente começamos de 0, mas para este exemplo, está
tudo bem começar de um. Isso acontece apenas uma vez, e então verificamos a condição um é inferior a cinco, podemos continuar. Próximo. Impressão iterador I valor é um, em seguida, aumentar o iterador em um. Novamente, verifique se a condição dois é menor que cinco, imprima o iterador e aumente-o novamente em um. Continuamos fazendo isso até que o iterador obtém um valor de 66 não é menor ou igual a 5. A condição não é atendida e saímos do loop. Agora, vamos mostrá-lo em um roteiro. Crie tubos de script e edite em um objeto de jogo. Crie uma função para o lóbulo. E dentro do loop criar o for do exemplo anterior. Tenha cuidado com a sintaxe. É um pouco complicado no início, chamado de função no início. Em Unity, pressione play. No console, você deve ver os primeiros cinco números. Existem muitas possibilidades adequadas para loops. Por exemplo, podemos aumentar o passo através do loop em dois em vez de um. Ou podemos diminuí-la. Podemos alterar a condição e o valor do iterador conforme precisamos. Tire um momento e tente adivinhar o que esse loop irá imprimir? Vamos ver no console. Agora, vamos dar uma olhada no loop while. O loop while é projetado para repetir uma ação, desde que uma determinada condição seja atendida. Normalmente, usamos o loop while quando não
sabemos quantas vezes o loop vai ser executado. A sintaxe é simples. Temos escrever um vil, parênteses e colchetes. Dentro de parênteses, colocamos uma condição, desde que a condição seja atendida, o loop while irá repetir o código entre colchetes. Aqui você precisa ter cuidado porque se a condição é sempre feita, o loop while nunca vai parar e ele vai falhar o seu programa. Confie em mim, isso acontece às vezes. Digamos que temos um temporizador e queremos reduzi-lo para 0, criar um temporizador variável e configurá-lo para qualquer número positivo que você deseja na função de início, certo? Parênteses. E queremos repetir o código, desde que o temporizador seja maior ou igual a 0. Entre colchetes, imprima o valor do temporizador e diminua-o em um cada vez que repetimos a inclinação. Salve o script. Vá para Unity e pressione play. Você pode ver que o temporizador estava diminuindo, desde a condição foi atendida quando o valor do temporizador se tornou menor que 0, o loop while parou. Como você pode ver no resultado da impressão, não
há números negativos. Ótima. Agora você sabe algo sobre loops. É hora de um desafio. Verifique o restante e em Boa sorte.
17. Desafio + revisão - loops: Para este desafio, tente fazer roupas que imprimam números pares e ímpares até 10. Tente também fazer um loop que imprimirá números pares na ordem inversa de 10 a 0. Há mais de uma solução para este desafio, Vou mostrar-lhe uma, mas se a sua solução é diferente e o príncipe os mesmos resultados, Tudo bem. Primeiro, vamos verificar a solução para números pares. Começamos de 0, definimos a condição para menos de 11, imprimimos iterador e aumentamos em dois. Para números ímpares, podemos começar de um porque é o primeiro número ímpar. Imprimir i, desde que eu seja menor que 10, porque nove é o último número ímpar na faixa de um a dez. No último loop, começamos de 10 e diminuímos o valor enquanto eu for maior ou igual a 0. Espero que todos consigam resolver o desafio e que estejam prontos para o próximo ano.
18. Arrays: Se queremos armazenar vários valores do mesmo tipo, em vez de escrever variáveis individualmente, podemos usar matrizes. Uma matriz é uma coleção de variáveis do mesmo tipo. Usamos matrizes para armazenar vários valores em uma única variável. Existem algumas maneiras de armazenar variáveis na matriz. Uma delas é escrever o tipo de variáveis que queremos armazenar. Neste exemplo. É uma corda. Em seguida, abra e feche colchetes seguidos pelo nome da matriz. Em seguida, escrevemos um sinal de igual e colchetes com um ponto-e-vírgula no final. Dentro de colchetes, colocamos os valores que queremos armazenar separados por vírgulas. Os valores armazenados na matriz são frequentemente chamados de elementos. Cada elemento que armazenamos na matriz, vamos obter um número de índice a partir de 0. Assim, o primeiro elemento tem um índice de 0, o segundo elemento e índice de um, e assim por diante. Usamos números de índice para acessar elementos da matriz. Por exemplo, se quisermos imprimir algo com Ironman, escrevemos o nome dos colchetes da matriz com um número de índice dentro. É importante lembrar que os números de índice começam a partir de 0. Outra informação que muitas vezes usamos, geralmente em combinação com lopes é RI, link. Array. Comprimento é o número de elementos na matriz. Então esta matriz tem um comprimento de quatro porque tem quatro elementos. Observe que quando você cria uma matriz e define o comprimento, você não pode alterá-la mais. Não é a dinâmica. A lista é dinâmica e pode mudar de comprimento ou tamanho mais sobre ArrayLists mais tarde no curso. E vamos ver como os arrays funcionam no script. Crie outras matrizes de script e edite para um novo objeto de jogo. Criar matriz de cordas por variedade de colchetes de cordas. O nome vingadores é igual a sinal, colchetes e algumas aventuras dentro de colchetes com o ponto-e-vírgula no final. Vamos criar outra matriz. Como eu disse, há mais de uma maneira de criar um array. Agora, para o sinal cruzado, escrevemos a palavra-chave nova, seguida pelo tipo da matriz e o número de elementos entre colchetes. Na função start, podemos adicionar elementos escrevendo o nome da matriz e
os colchetes com o índice que queremos, eu quero adicionar o primeiro elemento, então eu vou usar o índice 0. Em seguida, escrevemos um sinal de igual e o valor que queremos armazenar array vingador ainda precisa ter três elementos. Então vamos editar mais dois. Digamos que queremos imprimir todos os elementos da matriz dos Vingadores. Podemos fazê-lo individualmente, mas não é prático. Normalmente, combinamos os loops com matrizes. E vamos fazer um para loop. Vai de 0. E lembre-se que o índice da matriz também começa a partir de 0. Sabemos que matriz tem quatro elementos, então podemos escrever I menos de 4, mas também podemos usar o comprimento da matriz. Esta é a melhor solução porque se eu quiser remover um elemento da matriz, eu não preciso voltar no loop for e alterar a condição. Então aumentamos o iterador em um. E é assim que passamos pelos elementos na matriz. O iterador irá de 0 a três. Então usamos o iterador como um índice. No backlog, imprimimos elementos escrevendo o nome da matriz e o número de índice i entre colchetes. Além disso, podemos fazer uma matriz pública. Neste exemplo, matriz de ints. No Inspetor, escolhemos o número de elementos e adicionamos valores. Há mais um loop que muitas vezes usamos com arrays. É para cada loop, ele vai passar por cada elemento na matriz selecionada. Nesta situação, para cada int na matriz de números aleatórios, a sintaxe é um pouco diferente, mas nada complicado. Temos uma variável que tem que ser do mesmo tipo como elementos na palavra-chave matriz em e matriz. Agora, podemos imprimir cada elemento com log de depuração. Você pode testar isso em unidade e ir para o próximo vídeo após o lembrete.
19. Documentação no Unity: Vamos ver como você pode usar a documentação do Unity, que é ótimo a propósito. Leia sempre a documentação porque você não pode aprender tudo em aulas ou tutoriais do YouTube. Então, por exemplo, se você quiser saber mais sobre o componente de transformação, clique em qualquer objeto na cena. No Inspetor, localize o componente de transformação e clique no ícone de ponto de interrogação. Isso abrirá a documentação oficial das unidades sobre o componente de transformação. Aqui você pode encontrar todos os detalhes que você precisa. Além disso, é importante usar a versão correta da documentação. No canto superior esquerdo, você deve ver qual versão você está lendo. Certifique-se de que a versão da documentação, Mencius, sua versão do Unity. Por exemplo, quando você usa o Google para encontrar documentação, geralmente você obterá a versão mais recente, mas também receberá um menu suspenso para selecionar a unidade de versão. E é isso. Mais uma vez, minha recomendação é que você sempre leia a documentação porque você pode encontrar informações excelentes e úteis. Vejo você no próximo vídeo.
20. Configuração do projeto e nota de versão: Informações rápidas, atualizei a versão do Unity para 2020, ponto a ponto 1F1. Então use essa versão ou mais recente para iniciar esta série mini-jogo, você precisa criar um novo projeto 2D. E você também pode criar duas pastas vazias, uma para scripts e as outras quatro Sprites. O objetivo desta série mini jogo de física é ensiná-lo sobre a unidade de física, motor e gravidade, como os objetos colidem, como usar camadas para colisão e assim por diante. Além disso, aprendemos a fazer controles usando o novo sistema de entrada. É só uma pequena introdução. Você também vai aprender algumas coisas fundamentais, como o uso de componentes em scripts, criação de um prefab termina batendo objetos usando matrizes. No final, exportamos o jogo para que você tenha uma visão clara de como os jogos são feitos no Unity. Tudo o que você aprende nesta seção de mini-jogos é necessário para cada jogo que você vai fazer. Esta é a fundação. Depois de configurar seu projeto, sinta-se livre para passar para a próxima lição.
21. Criador com sprite: Às vezes, quando fazemos jogos, arte não é feita no momento em que precisamos usá-lo para economizar tempo e para ser mais eficiente, usamos espaços reservados. Os titulares de lugar são formas de arte simples que serão substituídas por arte real mais tarde. Mas até lá podemos continuar a desenvolver nosso jogo usando essas formas simples. E o legal é que o Unity tem seu próprio criador de sprite simples na janela do projeto,
na pasta sprites, clique com o botão direito do mouse. Criar sprites 2D. E você pode escolher um de várias formas. E vamos criar um círculo. Você pode renomeá-lo ou deixar um nome padrão. Para esta lição, precisamos de pelo menos mais uma forma. Então crie um quadrado. Agora, podemos usar essas formas simples em um jogo até que as reais fiquem disponíveis. Vamos usar o sprite círculo para criar um objeto de jogo e apenas arrastá-lo e soltá-lo na cena. Como você pode ver na hierarquia, criamos a mãe jogo deve o círculo nome. E se você olhar no inspetor, há um componente que não vimos ou mencionamos ele é o renderizador de sprite. renderizador Sprite é responsável pela representação visual de um objeto de jogo. Tem muitas propriedades, cor, material, camadas e assim por diante. Entraremos em detalhes mais tarde no curso. Por enquanto, lembre-se que é usado para representações visuais. Se eu desativá-lo, não
consigo mais ver o objeto. Ative novamente. Se pressionarmos Play, o círculo não se moverá. Vai ficar parado e nada vai acontecer. E quanto à gravidade e outras forças físicas? Para isso, precisamos de outro componente que adicionamos no próximo vídeo. Aqui está um lembrete rápido para esta figura.
22. Rigidbody e gravidade: Unity tem um motor de física que simula física através alguns componentes em objetos de jogo para simular a gravidade e outras forças, usamos um componente Rigid Body 2D. Selecione o objeto do jogo. Em um componente. Corpo rígido 2D. Certifique-se de adicionar um componente 2D porque há um corpo rígido para 3D. Quando anexamos um corpo rígido 2D a um objeto de jogo, o motor de física da unidade começa a influenciá-lo e controlá-lo. Vamos apenas mover o círculo para cima e mais para o meio. Podemos usar a ferramenta Mover no canto superior esquerdo. Um atalho é W, pressione Reproduzir e agora o objeto do jogo cai no esquecimento. Você pode ver no componente de transformação que a posição em y está diminuindo, apenas uma pequena digressão em um projeto 2D, o eixo x é horizontal, esquerda e direita, e eixo y é vertical para cima e para baixo. Saia do modo de reprodução. Como você pode ver, o componente Rigidbody tem algumas propriedades e a escala de gravidade é uma delas. Existem muitas outras propriedades como massa,
material, tipo de corpo, e assim por diante. Por enquanto, vamos falar sobre tipos de corpo. Existem três tipos de corpo, dinâmico, cinemático e estático. Por padrão, quando um componente de corpo rígido 2D é anexado, o tipo de orçamento é dinâmico, que significa que podemos movê-lo usando scripts e também outras forças podem influenciá-lo, como gravidade ou forças de outros objetos quando colidiremos com eles. Na maioria dos casos, seu jogador será tipo de produto dinâmico. Menos comum é o nosso tipo de modo cinemático. tipo de corpo cinemático também pode se mover, mas outras forças não podem influenciar este tipo de corpo. Em outras palavras, se você correr em linha reta, ninguém e nada do lado de fora pode mudar sua direção ou parar. Você nem é nossa. Você pode parar com o código em scripts. E exemplo de um tipo de corpo cinemático é uma plataforma em movimento. Você não quer que outras forças como gravidade ou colisão com o jogador influenciem sua placa por um momento. Mas você quer movê-lo em alguma direção do ponto a para ser um caso perfeito de tipo cinemático. O corpo estético é estático. Ele foi projetado para não se mover. Além disso, a gravidade e outras forças não influenciarão este tipo de corpo. Um exemplo de tipo de corpo estético é o chão em que jogador um suave. Vamos criar um terreno. Podemos usar uma forma quadrada, renomeá-lo para terra, e alterar a escala no componente transformar, aumentar a escala x segurando o botão esquerdo do mouse e movê-lo para a direita. Além disso, existem algumas maneiras de mudar a escala. Você pode usar a escala ou retal um corpo rígido 2D e escolher um tipo de corpo estável. Você pode notar que o tipo estático, ele não tem as mesmas propriedades que o corpo dinâmico. Vamos mover o chão para que fique abaixo do círculo. Use a ferramenta de movimentação novamente. Certifique-se de que o círculo tem um tipo de orçamento dinâmico e pressione play. Novamente, e o círculo está caindo no esquecimento. O chão não parou o círculo. Por que é isso? Precisamos adicionar outros componentes chamados colisadores. Mas a morte é os próximos três. Aqui está um lembrete para este.
23. Colliders e gatilhos: Colliders são componentes que são responsáveis por uma colisão física entre objetos para colidir uns com os outros, objetos de
jogo devem ter um componente de colisão, e vamos adicionar um ao círculo selecionado e ir para Adicionar Componente. Como você pode ver, existem muitos tipos e formas de colisores, incluindo colisores 3D. Precisamos de um colisor 2D, neste caso, um colisor circular. Agora você pode ver a linha verde ao redor do círculo. Talvez você veja melhor se eu desativar o renderizador de sprite. E o legal é que podemos mudar o deslocamento e o raio do nosso colisor. Os colisadores não precisam ter exatamente o mesmo tamanho que os sprites. Você pode ajustá-los como quiser. E vamos redefinir as mudanças. Além disso, podemos ajustar o colisor clicando no botão editar colider. Agora, eu posso facilmente mudar o raio enquanto você está segurando o botão esquerdo do mouse, segure para mudar o raio sem mudar o centro do colisor. Vamos adicionar outro colisor ao objeto de jogo terrestre. Aqui precisamos de um colisor de caixa 2D. Deixe-me alterar rapidamente a cor de fundo nas propriedades da câmera. Pressione play. E você pode ver a colisão. Observe que para a colisão é suficiente colider em cada objeto de jogo e um corpo rígido em um deles. Por exemplo, podemos remover o corpo rígido 2D do chão e pressionar Play. Como podem ver, a colisão aconteceu. Há casos em que você precisa de corpo rígido estático 2D e quando você não mais sobre isso mais tarde no curso. Agora, vamos falar sobre gatilhos. Os gatilhos permitem que objetos passem por eles, mas a colisão é detectada por meio de scripts. Vamos selecionar o círculo e configurá-lo para acionar. Agora, o círculo deve cair sem colisão. Mais tarde no curso, veremos como verificar e usar gatilhos com scripts. E exemplo de usar gatilhos é uma pick up. Se um jogador passa por uma pick-up, ele quer explodi-lo e colisão será detectada em scripts. Agora você sabe os fundamentos para colisores, e aqui está o lembrete.
24. Matriz e camadas: Em Unity, temos camadas para a câmera, mas também temos camadas colisionais com áreas colisionais. Temos bom controle sobre colisão e interação física entre objetos antes de começar a vender o círculo e desmarcar é acionado. Então temos uma bela colisão entre o círculo e o solo. No canto superior direito, você verá uma camada de seção. Não misture essas camadas. As camadas na renderização de sprite e as camadas na renderização de sprite são para a câmera. Chamamos-lhes camadas de classificação, e estas são camadas de colisão. Como você pode ver, existem cinco camadas pré-fabricadas. Clique em adicionar camadas para adicionar outra. Vamos chamá-lo de jogador. Através da camada de colisão do jogador, podemos controlar o que colide com o jogador e o que não colide. Selecione o círculo novamente e escolha a camada de jogador. Vá para Editar configurações do projeto. Física 2D. Aqui você pode definir seu valor de gravidade padrão para todo o projeto. E há um monte de outras configurações, mas estamos interessados nas métricas da camada de colisão. Deixe-me ir para a tela cheia. Como pode ver, tudo colidiremos com tudo. Se houver uma marca de seleção entre camadas, elas podem colidir. Por exemplo, a camada padrão colidirá com a camada de água da interface do usuário do jogador e assim por diante. Podemos desmarcar a colisão entre padrão e camada jogador. Certifique-se de que o solo está na camada padrão. Pressione Reproduzir. E como podem ver, não
há colisão. Volte para a matriz de colisão. Defina a colisão entre camadas como true. Você também pode adicionar camadas se você for para tags e camadas. Além disso, aqui você pode ver opções para classificar camadas e tags. Mais sobre eles mais tarde no curso. O próximo vídeo é realmente um desafio. Então vamos terminar aqui.
25. Desafio - Colisão: Neste desafio, tentou criar uma nova cena. Na nova cena, você deve recriar algo assim. Crie objetos vermelhos e azuis. Objetos vermelhos colidem apenas para recauchutar objetos e soprar dele. Bem, a solução está no desafio trivial.
26. Revisão de desafio - Colisão: Primeiro, eu vou salvar a cena com um nome diferente, então eu não preciso criar um objeto de jogo desde o início. Agora, eu posso criar duas camadas de colisão. Você pode chamá-los como quiser para mim, que será azul e vermelho. Então eu vou mudar a cor e duplicar novamente do
nosso trabalho selecionados objetos
azuis e adicioná-los à camada azul, vermelho no vermelho. O último passo vai para a matriz de colisão. Alterar colisão dessa forma para que a camada azul pode colidir apenas com camada azul e ler iterar. Vamos tentar. Tudo está bem e é isso. Vejo você no próximo vídeo.
27. Pacote de entrada de importação: Vamos importar para o novo pacote do sistema de entrada unidade para que possamos mover objetos pressionando botões. Vá para Janela, Gerenciador de Pacotes, espere um pouco até que as pressões da área da unidade, pacotes. Agora você pode ver pacotes que já estão no projeto por padrão porque
selecionamos o modelo de projeto 2D e precisamos do pacote do sistema de entrada. Então vá para o Registro da Unidade. Esta é a lista de todos os pacotes do sistema de entrada de pesquisa Unity. E, no canto inferior direito, clique em Instalar. Vai levar algum tempo. Se você voltar para em pacotes de projeto. Agora você pode ver o sistema de entrada. Vá para Editar, jogador de Configurações do projeto. E sob manipulação de entrada ativa, você pode ver que agora estamos usando o novo sistema de entrada. Voltar para a cena de exemplo na pasta de scripts, criar um script, reunir entrada, vender o círculo e renomeá-lo para jogador, ed script para o jogador. Antes de começar, note, este é o uso simples do novo sistema de entrada no projeto maior, Tiamat platformer, nós utilizá-lo totalmente. Mas para um projeto simples como este, uma solução de entrada simples está bem. Primeiro, queremos usar o espaço de nomes do sistema de entrada. Namespaces são uma coleção de classes e
funções específicas e precisamos de classes especiais para entrada, certo? Usando o motor Unity, esse sistema de entrada, veja como o nome não é branco. Está um pouco cinzento. Quando usamos alguma classe do espaço de nomes do sistema de entrada, ele se tornará branco. Criar um em variável que vamos usar um para a direção no eixo x. E queremos mover o jogador para a esquerda e para a direita, esse é o objetivo. Então precisamos de um valor positivo para ir para a direita e um valor negativo para ir para a esquerda. Verificamos a entrada na função de atualização porque queremos verificar cada quadro se o jogador estiver pressionando os botões, certo? Se teclado, que a corrente, que, Vamos usar a tecla no teclado que é pressionado. Agora, podemos verificar se a tecla é pressionada em cada quadro, e se isso for verdade, definimos a direção para um. Observe que se você tiver apenas uma linha de código abaixo da instrução if, você não precisará de colchetes. Em seguida, queremos que o valor da direção vá para a esquerda. Então, em else-se verificarmos se a tecla é pressionada, defina essa direção para menos um. Se não estamos pressionando um ou D,
em seguida, defina a direção para 0. Em Unity, pressione Play. E à medida que você pressiona uma direção ou D, o valor
x mudará. Como pode ver, não estamos nos movendo. Só estamos mudando alguns valores. À medida que pressionamos os botões para realmente mover o jogador, precisamos usar o componente Rigid Body 2D, e essa é a nossa próxima lição, mostrou o restante e até em breve.
28. Os de componente e mova o jogador: Para mover o jogador, precisamos obter o componente Rigid Body 2D no script. Vamos criar outro script. Jogador mover e editar para o jogador. No guião. Crie um fluxo público para velocidade variável e variável Rigid Body 2D. Com a variável 2D corpo rígido, queremos ter acesso a algumas propriedades como velocidade. Note que aqui acabamos de criar uma variável do tipo corpo rígido 2D. Para usá-lo, precisamos configurar nossa referência. Precisamos dizer a unidade, alcançar o corpo rígido 2D que queremos usar porque podemos ter mais objetos com o componente do corpo rígido na função inicial, certo? Rb, seguido pelo sinal de igual. Agora, queremos obter componente rígido corpo 2D que fica no mesmo objeto de jogo que este script. Se você der uma olhada no script inspector e Rigid Body 2D estão no mesmo GameObject. Por causa disso, usamos Get componente. Consulte também Obter componente em filhos, obter componente no pai e assim por diante. Uh, mais tarde no curso, nós usamos alguns deles. Por enquanto, como eu disse, precisamos obter componente porque este script e o corpo rígido estão no mesmo objeto de jogo. Suportes angulares retos. E dentro escrevemos um tipo ou o componente que queremos acessar. Ele precisa coincidir com sua variável. Em seguida, escrevemos parênteses seguido de um ponto-e-vírgula. Em seguida, usamos atualização fixa em vez de atualização. Todos os cálculos físicos são feitos em atualização fixa pelo motor de física unidade. Isso é muito, muito importante na função de atualização. O tempo entre os quadros pode variar, às vezes é menor, às vezes é mais. É por isso que você tem diferentes FPS ao jogar jogos. A atualização fixa não depende da taxa de quadros. Tem um temporizador fixo. Se você acessar Configurações do projeto na janela de tempo, poderá ver a etapa de tempo fixa. A tomada fixa é chamada a cada 0,02 segundos. Você pode alterar o timestep, mas geralmente o padrão é bom. Qual é o ponto de mover objetos com um motor de física em atualização fixa usando um corpo rígido. Bem, um passo de tempo fixo garante que o movimento será suave e, mesmo assim, usar atualização para coletar entradas e atualização fixa para aplicar momento com corpo rígido. A atualização fixa, queremos definir a velocidade de um corpo rígido. Então escrevemos RB, essa velocidade é igual a assinar novo vetor dois parênteses. E dentro dissemos dois valores separados por uma vírgula. O primeiro valor é o valor do eixo X à esquerda e à direita. E o segundo é para o eixo Y para cima e para baixo, queremos usar a velocidade em x e em y é 0. Não queremos subir ou descer. Não se esqueça de um ponto-e-vírgula no final. Em Unity, mude a gravidade para 0 para que o jogador não caia. Pressione Reproduzir. E como você mudar a velocidade, o jogador vai saber para o valor positivo para a direita, quatro valor negativo para a esquerda. A ideia é obter a direção x do script de entrada de coleta e usá-lo no vetor 2. Como você sabe, um script também é componente. Então, podemos criar a variável recolher entrada E componente portão. Reúna entrada. Agora, podemos obter acesso à variável pública direção x no vetor para multiplicar a velocidade com a direção x a partir do script de entrada Gator. Na mudança de velocidade inspetor e pressione play. Agora, quando você pressiona a direção dolorida x é negativa, vamos para a esquerda com velocidade cinco. Se pressionarmos a tecla D, vamos para a direita. Ótima. Temos os controles simples para o jogador.
29. Navegação e configuração na cena: Vamos criar um quadro em torno do jogador para que possamos restringir o movimento. Para fazer isso, precisamos saber como navegar através uma exibição de cena e como manipular objetos de jogo. Vamos passar por algumas informações úteis. Na exibição da cena, você pode se mover segurando o botão Alt e esquerdo do mouse ou apenas segurando a roda do mouse para ampliar e reduzir para comer a roda do mouse. Além disso, você pode alternar aparelhos. Você pode personalizar o que eu consome, quer ver ícones para a câmera, coliders e assim por diante. Por padrão, a vista para o mar está no modo 2D, mas você pode alterá-la para 3D, se necessário. Em seguida, podemos alternar luzes e áudio, que não temos agora. Há um novo recurso. Podemos ocultar objetos do jogo na hierarquia, e vamos esconder o jogador. E agora podemos alternar objetos ocultos. Além disso, você pode fazer um dia que a mãe não deve selecionável. Em seguida, podemos alterar a opacidade da grade. Na visualização do jogo, podemos alterar a proporção por padrão, é aspecto livre. Defina isto para 16 para 9. Agora os limites da câmera mudarão. Limites são estas linhas brancas na vista da cena? Aqui podemos mudar a escala para ampliar deu a você. Se você escolher maximizar ao jogar, a janela do jogo será maximizada quando você pressionar o botão Reproduzir. Em seguida, existem botões para silenciar. Vamos ver alguns estados e aparelhos. Para fazer um quadro, precisamos manipular o seu tamanho e posição de GameObjects. Excluído este solo selecionando-o e pressionando Delete, crie outro objeto quadrado. Reinicie a posição. Agora podemos alterar a cor no renderizador de sprite. Para manipular objetos de jogo. Usamos ferramentas no canto esquerdo. atalhos estão na tela. Já mencionamos alguns deles. Mova para baixo e esteja ciente dos limites da câmera, lugares praticamente sobre a linha de vida. Escolha a ferramenta de redimensionamento. E quando você pressiona o botão esquerdo do mouse na borda, segure para redimensionar ambos os lados ao mesmo tempo. Controle D para duplicar o GameObject, mova-o para cima. Em seguida, renovou suco de mãe homossexual para os lados, girado em 90 graus. Selecionados aqueles para objetos de jogo e adicionar um colisor de caixa. Agora, podemos colidir com rituais. Isso é tudo para este vídeo. Vejo-te em breve.
30. Funções de colisão: Vamos criar um objeto de jogo para que irá colidir com o jogador e desativar seu momento ou colisão. Podemos usar um círculo, tamanho
alterado e cor, e um corpo rígido 2D e maior gravidade para que o objeto cai mais rápido. Além disso, adicione o colisor círculo 2D. Pressione play, e você pode ver que o círculo vermelho irá colidir com o jogador. O próximo passo é desativar um momento, ir para o jogador move script. Precisamos usar a função de colisão. Como pode ver, temos uma colisão na Turquia, Udi. Esta função é chamada quando este objeto de jogo toca outro GameObject com um colisor. Então temos na saída de colisão 2D, é chamado No momento em que este objeto de jogo pára de tocar outro objeto de jogo. E a última função está em estado de colisão para a disfunção é chamado cada quadro, desde que objetos tocam uns aos outros. Precisamos em colisão entrar 2D porque queremos parar momento jogador quando o círculo toca o jogador. Você pode ver que a função tem um parâmetro, é colisão. Através do parâmetro de colisão, podemos obter algumas informações sobre o objeto a colidir para ele mais tarde individual, Vou mostrar-lhe um exemplo. Por enquanto, basta definir a velocidade como 0 quando tocarmos em outro objeto. Vamos tentar na unidade dois. Agora, eu não posso me mover. Mas há um problema com isso. Eu vou te mostrar. Não quero tocar no círculo vermelho. Vai parar o meu movimento. Então mova-o de lado. Agora, se tocarmos a parede, também
parará o meu momento. Como contornar isso muito simples. Precisamos especificar para parar um momento somente quando colidiremos com o círculo vermelho. E vamos renomear o círculo vermelho e criar uma nova camada. Vou chamar-lhe NMI. Defina o círculo para a camada inimiga. Agora no script, podemos armazenar em número da camada inimiga. Obtemos o número da camada escrevendo máscara camada, esse nome para camada de parênteses e, em seguida, o nome da camada. Então, agora, quando temos o número da camada inimiga dentro, em colisão entrar, podemos verificar se o objeto que colidiu com o jogador é de camada inimiga dívida. Usamos o parâmetro de colisão para obter informações sobre o objeto do jogo e sua camada na instrução if,
direita, colisão e que a camada de ponto GameObject dupla é igual a sinal e uma camada ML. Aqui, verificamos se o objeto do jogo com o qual colidimos é
da camada inimiga em Unity pressione Play e tentou tocar na parede. Como pode ver, ainda podemos nos mover. Mas se colidirmos com o círculo vermelho da camada inimiga, velocidade se tornará 0 e não poderemos mais nos mover. Isso é tudo para este vídeo. Vejo-te em breve.
31. Prefab: Se quisermos criar mais objetos inimigos, podemos duplicá-los. Mas e se quisermos criá-los em tempo de execução enquanto jogamos o jogo pela dívida, usamos prefabs. Vamos criar uma nova pasta. Prefabs, selecione o círculo inimigo na hierarquia e arraste-o para dentro da pasta. Agora, criamos um conjunto pré-fabricado. Ele tem todos os componentes como NMI círculo. Tudo é armazenado neste pré-fabricada. Prefab são como um modelo a partir do qual você pode criar novas instâncias na cena. Basta arrastar prefab na cena para criar instâncias. Todas as instâncias estão conectadas e, se você selecionar o prefab na pasta e alterar a cor, todas as instâncias serão alteradas de cor. Além disso, podemos selecionar uma instância prefab da cena e alterar qualquer coisa que queremos. Se quisermos que as alterações afetem outras instâncias, precisamos substituí-las no inspetor. Algumas coisas que podemos mudar apenas na visualização pré-fabricada. Por exemplo, vamos criar um objeto filho. Clique com o botão direito em uma instância e crie vazio. Isso criará um objeto filho. Podemos dar-lhe um ícone. Agora, se movermos o objeto pai, o filho seguirá a substituição para todas as instâncias. Se eu quiser remover o objeto filho, haverá uma janela pop-up. Clique em Abrir prefab. Isso abrirá a visualização pré-fabricada. Você pode ver que há apenas círculo inimigo na hierarquia. Aqui, podemos excluir o objeto filho. As alterações feitas na revisão pré-fabricada afetarão todas as instâncias do jogo. Existem algumas maneiras de entrar no modo de exibição pré-fabricada. Podemos usar o botão de seta ao lado do prefab na janela de hierarquia. Podemos clicar no botão Abrir no inspetor, ou podemos clicar duas vezes nele na janela do projeto. Usamos Prefabs para criar objetos em tempo de execução, e também podemos usá-los em todas as cenas. No próximo vídeo, vamos usar este prefab para abranger circo entrada na parte superior do quadro.
32. de instanciar (crie) objetos: Vamos excluir essa instância e criar o parceiro de objetos do jogo, ed scripts partner. No script, precisamos de uma variável pública GameObject que queremos abranger. Para criar um objeto em tempo de execução, usamos instanciate na função de início, certo? Instanciar entre parênteses. Primeiro escolhemos o objeto que queremos cuspir, e esse é o círculo inimigo. Em seguida, precisamos escolher a posição e rotação do objeto que vamos criar, certo? Transforme essa posição. Estamos recebendo o componente de transformação e sua posição do objeto de jogo que tem este script que respondem círculo inimigo
na mesma posição que a posição de transformação deste objeto parceiro. Mesmo, pagar a transformação de rotação que a rotação ir para Unity. Então, podemos configurar uma referência para o objeto de jogo para um prefab droga variável da janela do projeto para os objetos do jogo. - Lote. Avisar, aviso. Se você tiver instâncias pré-fabricadas na hierarquia, não as use para referência, você deve usar o ácido prefab do projeto para acabar. Há alguns casos em que usamos instâncias pré-fabricadas da hierarquia. Mas para este exemplo, devemos usar o ácido prefab da janela do projeto. Caso contrário, você receberá um erro. Agora, mova este pounder sobre o jogador nessa posição e o recíproco será criado. Ótima. Agora vamos criar pontos de geração através do teto. Crie um GameObject filho. Podemos usar o ícone vermelho. Use a ferramenta Mover e mantenha pressionada a tecla Control para ajustar à grade. Na verdade, vamos aumentar o valor do snapper. Vá para Editar configurações de grade e ajuste. Mude a lua, incremente, encaixe em um. Agora continue a duplicar o intervalo de pontos. A ideia é gerar aleatoriamente objetos circulares inimigos nesses pontos. Na função de instanciação de comentário de script. Precisamos de uma série de transformações para os pontos de extensão. Além disso, precisamos de um temporizador e atraso de geração porque precisamos de algum tipo de controle foi para abranger objetos. Na função de início, defina o valor do temporizador como Time.DeltaTatime. Se você olhar na descrição do tempo, esse tempo, você verá que é o tempo em segundos desde o início do jogo. Em seguida, queremos adicionar algum atraso de geração. Eu vou explicar isso em breve e apenas me siga por enquanto. Na função de atualização, precisamos instrução IF, se temporizador é menor do que Time.DeltaTatime. E, em seguida, um círculo inimigo cônjuge e aumentar temporizador por atraso de desova. Vamos passar por essa lógica. Digamos que joguemos o jogo por cinco segundos e o atraso da geração é de 1 segundo. No início, ajustamos o temporizador para cinco segundos e o aumentamos em 1. O valor ou o temporizador é seis. Na atualização de cada quadro, verificamos se o temporizador é menor do que time.DeltaTatime, que é o tempo desde o início do jogo. O temporizador é seis e uma vez que o tempo é cinco. A condição não é verdadeira. Nada acontece. Agora, relacionar-se no jogo, tempo passa e um tempo que o tempo vai aumentar. Após mais de 1 segundo, o valor do temporizador será menor que o tempo. Essa condição de tempo é cumprida e entramos na declaração if. Aqui fazemos algumas coisas e imediatamente depois aumentamos o temporizador por atraso do bico, que é de 1 segundo. Agora o temporizador é sete e que é maior do que time.DeltaTatime. Mais uma vez, lemos e repetimos o processo. Este não é o temporizador mais preciso. Talvez seja melhor aumentar o temporizador da mesma maneira que no início. Então você pode substituir isso por isso. Além disso, observe que há mais maneiras de criar um temporizador. Isso é bom para este exemplo. Um número aleatório. Para isso, usamos um aleatório que organizar. Defina o primeiro número como 0. E porque o índice de matriz começa a partir de 0 e para o último número, podemos usar este comprimento de ponto de libra. Esta função irá escolher aleatoriamente um número de 0 para ponto de bico o comprimento menos um. Como você pode ver na descrição, o valor máximo é exclusivo. Pode ser escolhido. Assim, o valor máximo é sempre liberado por um. Isso é ótimo porque se o comprimento é cinco, a matriz tem cinco elementos de transformação. E os valores de índice são de 0 a quatro. Usando o índice, podemos acessar aleatoriamente algum elemento da matriz. Agora, podemos instanciar o círculo inimigo para a posição. Usamos esta matriz de pontos de libra e nos colchetes, usamos um índice aleatório I. Em outras palavras, escolhemos PowerPoint da matriz usando um índice aleatório i. Em seguida, usamos uma rotação deste GameObject. Não é importante para esta enzima. Em Unity, vamos adicionar as transformações à matriz, alloc, ao inspetor e selecionar todos os pontos de geração. Arraste e solte-os para abranger o ponto tara, definir, abranger o LA para algum valor, e estamos prontos para jogar o jogo. Temos nosso parceiro de Randoms, mas como podem ver, precisamos destruir círculos vermelhos enquanto tocam o chão. Este é material para o próximo vídeo. Vejo-te em breve.
33. OnTrigger e destrua funções: Para destruir círculos que caem, podemos usar Trigger, selecionar a plataforma inferior e definir para o colisor para acionar. Vamos criar um script destruidor de script para a plataforma inferior. Aqui queremos usar a própria função de gatilho. Como você pode ver, temos On Trigger Enter para ficar e sair, mesmo que as funções de colisão. Mas porque definimos o colisor para acionar, usamos funções de gatilho. Vamos usar o próprio Trigger, Entrar para um D. E porque sabemos que só os círculos vermelhos podem tocar o gatilho, não
precisamos de nenhuma declaração IF e condições dentro V destruir Kmart, apenas ler a função, destruir. Dentro dos parênteses, escolhemos o objeto dois que destruiremos. Queremos destruir objetos que colidem com este gatilho. Então nós escrevemos colisão esse objeto de jogo. Em Unidade. Você pode ver que objetos serão destruídos, mas parece um pouco estranho quando nós os destruímos, no momento em que eles tocam seu gatilho, podemos destruí-los com um pequeno atraso na função de destruir no coma e atrasar o tempo. Agora, parece muito melhor. Objetos passam pela plataforma, um pouco, colisão é detectada e nós os destruímos depois de 0,5 segundos. É isso para este vídeo, verifique o restante.
34. Como classificar camadas: Como você sabe, o renderizador de sprite é responsável
pela representação visual de objetos 2D na tela. Aqui eu tenho uma instância pré-fabricada. Se você der uma olhada no renderizador de sprite em configurações adicionais, teremos uma camada de classificação. E ordem nessa camada. Com camadas de classificação, determinamos o que vemos na tela na frente e o que está no saco, primeiro plano, fundo e assim por diante. A forma da placa inferior e um círculo vermelho estão na mesma camada na mesma ordem. 0. Aqui está um possível problema no editor Unity. O círculo está aparecendo atrás e isso é bom. Mas quando você constrói o arquivo EXE do jogo, porque eles estão na mesma camada com a mesma ordem. O jogo pode mostrar o círculo vermelho na frente. Às vezes isso pode acontecer. E é por isso que precisamos alterar a ordem na camada ou criar outra camada de classificação. Quando os objetos estão na mesma camada, aumento da ordem irá movê-los para a frente. Diminuir a ordem irá movê-los de volta. Agora, quando a ordem é menos1, temos certeza de que o círculo aparecerá atrás da plataforma. Também podemos criar uma nova camada de classificação. Aqui, podemos adicionar e remover camadas usando os botões de mais e menos. Observe que a camada padrão não pode ser removida. Vamos criar uma camada inimiga. Selecione o círculo, alterou a ordem para 0 e altere a camada. Agora o círculo está na frente, mas está na camada de classificação inimiga. Vamos voltar para a lista de camadas. Aqui também podemos alterar a ordem das camadas, mover a camada inimiga para o topo da lista. Agora o círculo está para trás. Você pode ver a mudança. Como eu mudo a ordem. As camadas serão renderizadas de cima para baixo, o
que significa que a primeira camada na lista será desenhada no beck. E, de fato, você pode ver que o círculo está atrás
da placa para a última camada na lista será desenhado no topo primeiro na tela. Tenha em mente que há outra maneira de acessar a lista de camadas em Configurações do projeto, tags e camadas. Também não se esqueça de substituir as alterações para todas as instâncias. Aqui está o lembrete antes do próximo vídeo.
35. Descobrir o jogo: Estamos quase terminando o jogo. Claro, precisamos de alguma maneira para o jogador sair do jogo. No script de entrada de coleta, verifique se a tecla de escape é pressionada. Você pode usar qualquer outro botão que quiser. Em seguida, usamos o aplicativo que a função Sair para sair do jogo. Observe que se você testar isso no editor do Unity, nada acontecerá. Estou pressionando a tecla de escape e ainda posso jogar o jogo. No entanto, ele funcionará no jogo real quando você criar o arquivo EXE. Este material para a próxima lição.
36. Exportação rápida e criação: O último passo para o mini-jogo de física é construir um arquivo EXE para que possamos executar e jogar o jogo, ir para Configurações de compilação de arquivos. Nas configurações de compilação. Primeiro você vê desde área embutida aqui você pode ver todas as cenas que serão incluídas no seu jogo. Se você não vir nenhuma cena, clique no botão Adicionar cenas abertas e isso adicionará sua cena aberta atual à lista. Você também pode ver o índice construído associado à cena. Mais tarde no curso, usamos o número de índice em scripts para alterar cenas. Você também pode adicionar cenas arrastando-as na área. Não temos roteiros para mudar de cena. Então, podemos excluir esta cena do jogo desmarcando a caixa. Em seguida, escolhemos a plataforma que precisamos. No meu caso, este jogo será para Windows. Você também pode escolher arquitetura 32 ou 64 bits. Vou escolher 64 bits. Agora podemos pressionar o botão Construir. Crie uma pasta onde você deseja construir o jogo. Agora, espere alguns momentos e você terá seu jogo pronto para jogar. Abra e aproveite. E se você conseguir acertar pelo círculo vermelho, pressione a tecla Escape para sair do jogo. Digamos que você descubra algum bug ou queira mudar alguma coisa. Por exemplo, o círculo branco em alguns casos pode tocar a plataforma inferior e será destruído. Então não podemos sair do jogo porque o script de entrada de coleta também é destruído. Para corrigir isso, podemos congelar a posição no eixo y, encontrar o componente Rigid Body 2D no jogador. E sob restrições, para sua posição no eixo y colide. Não vai cair como antes. posição no eixo y é sempre a mesma. Agora, precisamos construir o jogo novamente para aplicar alterações. Note que há tantas opções para exportar o jogo que não mencionamos, como mudar a tela inicial do ícone no início e assim por diante. Isto é apenas para mostrar-lhe como obter um jogo simples trabalhando a partir do editor Unity para arquivo EXE. Mais detalhes na seção de plataformas de mapa de mosaico. Parabéns por completar esta mini-série de jogos. Vejo você no próximo capítulo.
37. Fim da parte 1 e Discord Server: Parabéns por completar a primeira parte deste curso. Agora você tem conhecimento fundamental sobre C-sharp e unidade, e também está pronto para a próxima classe, o jogo de plataformas 2D. Aqui está o link do servidor de discurso. Assim, você pode se juntar à comunidade e se conectar com outros desenvolvedores. Tenha um bom dia e nos vemos na próxima aula.