Tutoriais do Unity: a “série de jogos de doçura” | Emile Du Toit | Skillshare
Pesquisar

Velocidade de reprodução


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Tutoriais do Unity: a “série de jogos de doçura”

teacher avatar Emile Du Toit, IT Expert & Game Developer

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Aulas neste curso

    • 1.

      Apresentação

      1:09

    • 2.

      Definições básicas

      4:52

    • 3.

      Como configurar uma conta do Unity

      3:23

    • 4.

      Unity Hub: crie/abra projetos de Unity aqui

      2:29

    • 5.

      Projeto: vamos fazer um jogo!

      5:45

    • 6.

      Guia de orientação de unidade para iniciantes

      13:08

    • 7.

      Sobre o motor de jogo Unity (conceitos e definições principais)

      5:22

    • 8.

      Instale um ambiente adequado para nossa primeira cena

      4:20

    • 9.

      Apresentando Doozy, nosso herói

      2:56

    • 10.

      Prepare texturas e materiais e coloque nosso personagem de jogador em cena

      11:43

    • 11.

      PONTO de verificação do projeto através do Módulo 1.10

      6:56

    • 12.

      Referência básica de script de movimento do jogador (compare seu script)

      2:40

    • 13.

      Habilidade de salto e detalhes de personalização (recapitulando e revisando como funciona)

      5:23

    • 14.

      Detalhes da câmera virtual: configuração do Cinemachine

      3:33

    • 15.

      Explicação do roteiro de movimento do jogador (revisão: como funciona)

      1:09

    • 16.

      Dicas extras e aprimoramentos: som/ajuda/encerramento/mixador de áudio/câmera

      5:06

    • 17.

      Criar um jogo standalone compilado: introdução rápida

      1:14

    • 18.

      Visão geral do script do Game Manager - como funciona

      1:56

    • 19.

      Tutorial 2: introdução

      1:12

    • 20.

      Tutorial 2: visão geral de tópicos

      1:52

    • 21.

      Configuração de animação de captura de jogador

      1:23

    • 22.

      Crie um sistema de coleta de itens: detalhes

      12:33

    • 23.

      Pontuação de atualização e interface do usuário (UI)

      3:38

    • 24.

      Configuração adicional no Unity, incluindo Player Animator e UI

      12:02

    • 25.

      Gerar coelhos em torno de jogador com roteiro de spawner em vez de posicionamento manual

      9:49

    • 26.

      Como fazer um diálogo básico para falar com outro personagem

      10:13

    • 27.

      Série Doozy: Ponto de verificação do projeto Mod2.1 a 2.6

      10:19

    • 28.

      Limites do mapa do jogo

      2:48

    • 29.

      Adicione um temporizador e condições de jogo

      10:53

    • 30.

      Referência do roteiro: revisão final de scripts (jogador e pontuação)

      2:16

    • 31.

      Um animal de estimação raposa que segue o jogador: comportamento companheiro

      13:28

    • 32.

      Ponto de verificação do projeto (2.7-2.10)

      16:31

    • 33.

      Como fazer a Fox Find e depois atacar o jogador: comportamento inimigo

      3:56

    • 34.

      Criar/atualizar a interface do usuário para mostrar a barra de saúde para o jogador (usando um sllider)

      6:25

    • 35.

      Implemente a morte do jogador e testes

      4:10

    • 36.

      Recursos adicionais de Asset para seu jogo (opcional)

      2:21

    • 37.

      Dicas de solução de problemas para correção de bug do Spawn Manager

      1:10

    • 38.

      Projeto Ponto de verificação Mod2.11 a 2.16

      11:22

    • 39.

      Aula avançada de Doozy e The Mean Troll usando a IA Esmeralda V1

      12:00

    • 40.

      Tutorial 3: continue com a configuração de morte de Fox Attack e Doozy

      15:27

    • 41.

      Criar/atualizar a interface do usuário para mostrar a barra de saúde para o jogador (recapitulação da implementação)

      1:19

    • 42.

      Atualizações para lógica de ataque, barra de saúde do jogador, morte e condições de jogo

      2:58

    • 43.

      Como adicionar uma animação de "Get Hit" ao jogador

      4:14

    • 44.

      Como adicionar um efeito de som de sucesso quando o jogador sofre dano

      2:33

    • 45.

      DoozySeriesTut3Mod3

      2:23

    • 46.

      Tutorial 4: introdução

      1:45

    • 47.

      Tutorial 4: visão geral de tópicos

      2:28

    • 48.

      Atualize as habilidades do Doozy para ser capaz de atacar

      1:56

    • 49.

      Importar o orc e preparar sua configuração

      3:59

    • 50.

      Faça o movimento de orc, detecte e lute contra o jogador

      10:26

    • 51.

      Ponto de verificação do projeto (Mod4.1-4.3)

      14:56

    • 52.

      Doozy aprende como lutar contra um orc

      16:19

    • 53.

      Tutorial 5: introdução

      1:02

    • 54.

      Tutorial 5: visão geral de tópicos

      1:28

    • 55.

      Encontre cogumelos adequados (Loja Asset)

      0:33

    • 56.

      Prepare o(s) cogumelo(s) para coleta pelo jogador

      1:58

    • 57.

      Aplique Healing ao jogador: opções de consideração de design

      9:38

    • 58.

      Pós-processamento

      8:38

    • 59.

      Uma pedra mágica em busca de calor

      6:22

    • 60.

      Pare o movimento de orcs após a morte

      3:37

    • 61.

      Tutorial 6: introdução

      2:01

    • 62.

      Tutorial da série Doozy 6: visão geral dos tópicos

      1:21

    • 63.

      O inimigo da Fox: AiLocomotion.cs

      3:07

    • 64.

      O inimigo orc: orcLocomotion.cs; EnemyHealth.cs

      5:31

    • 65.

      O jogador: PlayerMovementV3.cs; PlayerHealth.cs; PlayerInventory.cs

      3:59

    • 66.

      Gerente de cogumelo: MushroomManager.cs

      1:36

    • 67.

      Gerente de pontuação: ScoreManager.cs

      2:27

    • 68.

      Gerente de jogo: GameManager.cs

      1:15

    • 69.

      Gerentes de Spawn: NPCSpawnerV1.cs

      4:05

    • 70.

      Scripts de pedra mágica: MagicStone.cs e StoneV2.cs

      5:41

    • 71.

      Gerenciamento de coleta de itens: ItemPickup.cs

      3:45

    • 72.

      Gerenciamento de diálogo: JoleenDialog.cs

      2:38

    • 73.

      Série Doozy: árvore de lona - câmera virtual - câmera principal

      1:30

    • 74.

      Conclusão do curso da série Doozy

      1:54

  • --
  • Nível iniciante
  • Nível intermediário
  • Nível avançado
  • Todos os níveis

Gerado pela comunidade

O nível é determinado pela opinião da maioria dos estudantes que avaliaram este curso. Mostramos a recomendação do professor até que sejam coletadas as respostas de pelo menos 5 estudantes.

18

Estudantes

--

Projeto

Sobre este curso

Visão geral do curso: desenvolvimento de jogos Unity para iniciantes

Você está pronto para embarcar em uma jornada emocionante pelo mundo do desenvolvimento de jogos? Bem-vindo à "série de jogos Doozy", um Unity para iniciantes criado especificamente para jovens aspirantes a desenvolvedores de jogos. Neste curso, você vai mergulhar nos fundamentos do desenvolvimento de jogos, programar mestre em C# e criar ambientes 3D vibrantes. Ao final, você terá desenvolvido um jogo divertido e envolvente com nosso personagem principal, Doozy, completo com desafios e aventuras. 

Prepare-se para conteúdo divertido e envolvente!

Junte-se a nós nesta aventura!

Ao longo deste curso, cada tutorial foi projetado para construir suas habilidades passo a passo, garantindo uma compreensão sólida dos princípios de Unity e de design de jogos. Vamos dar uma olhada no que você vai aprender:

Destaques do tutorial:

Tutorial nº 1: começando com o Doozy 

Comece sua jornada dando vida ao nosso personagem encantador, Doozy! Você vai aprender os fundamentos de movimento e salto, preparando o terreno para um jogo emocionante. Descobre o Controlador de Personagens e a Câmera Virtual de Seguimento da Unity enquanto explora um cenário mágico de floresta antiga. Este tutorial básico vai desbloquear um mundo de possibilidades!

Tutorial nº 2: Doozy coleta coelhos e encontra novos desafios

Junte-se a Doozy em sua missão para coletar coelhos adoráveis! Neste tutorial, você vai animar os coelhinhos, implementar um sistema de pontuação e criar diálogos com um NPC amigável chamado Joleen. Mas atenção! Doozy vai encontrar novos desafios, incluindo um companheiro que se transforma em um inimigo travesso. Você também vai aprender a criar um menu Game Over e apresentar um inimigo Troll com IA básica.

Tutorial #3: A raposa se torna uma inimiga

Continue a aventura enquanto você transforma a companheira Fox em um inimigo! Este tutorial se concentra na atualização do sistema de gerenciamento de saúde do Player e na refinação da mecânica de jogo. Teste e aperfeiçoe seu jogo enquanto Doozy enfrenta este novo inimigo, garantindo que tudo flua perfeitamente.

Tutorial #4: Doozy coleta pedras mágicas

Equipe Doozy com Pedras Mágicas para se defender de novas ameaças, incluindo um Orc! Aprenda como implementar uma mecânica de arremesso, rastrear itens na interface do usuário e criar uma IA inimiga mais complexa. Este tutorial aprimora suas habilidades de codificação enquanto melhora os visuais e a mecânica do seu jogo.

Tutorial #5: a caça a cogumelos mágicos

Ajude Doozy em sua busca pela cicatrização de Cogumelos Mágicos escondidos em toda a floresta. Você vai descobrir como gerar cogumelos aleatoriamente e implementar uma mecânica de cicatrização, tudo enquanto se concentra na escrita de código inteligente e reutilizável. Mergulhe em conceitos mais avançados que aprimoram a funcionalidade do seu jogo.

Tutorial nº 6: pedras mágicas de busca de calor e cicatrização manual

Eleve seu jogo com pedras mágicas de busca de calor que atacam inimigos! Aprenda a gerenciar seu inventário para a cicatrização manual de cogumelos, adicionando estratégia ao seu jogo. Este tutorial também se concentra na otimização de scripts existentes para melhor desempenho e gerenciamento de erros, juntamente com capturas de tela de referência detalhadas para guiar você.

Conclusão: sua jornada de desenvolvimento de jogos está à espera!

Ao final deste curso, você terá não apenas criado um jogo emocionante e totalmente funcional, mas também adquirido uma compreensão robusta de Unity, C# e princípios essenciais de design de jogo. Cada tutorial baseia-se no último, garantindo que você aprenda e desenvolva continuamente suas habilidades.

Prepare-se para liberar sua criatividade e ajudar Doozy a navegar suas aventuras!

O que você aprenderá

- Fundamentos do desenvolvimento de jogos usando Unity.

- Conceitos de programação em C# personalizados para design de jogos.

- Técnicas para criar ambientes 3D interativos.

- Como animar personagens e gerenciar mecânica de jogo.

- Estratégias para implementar elementos de interface do usuário e sistemas de pontuação.

- Melhores práticas para codificação, depuração e refinamento de jogabilidade.

- Como publicar seu jogo e compartilhá-lo com o mundo.

Há requisitos ou pré-requisitos?

- Uma paixão pelo desenvolvimento de jogos e o desejo de aprender!

- Um computer com Unity instalado (a versão gratuita é suficiente).

- Não é necessária nenhuma experiência anterior de programação, apenas entusiasmo!

Para quem é este curso:

- Jovens desenvolvedores de jogos aspirantes a aprender e criar.

- Iniciantes que buscam um guia passo a passo para o desenvolvimento de jogos.

- Qualquer pessoa interessada em aprimorar suas habilidades de codificação e design por meio de projetos práticos.

Pronto para começar sua jornada de desenvolvimento de jogos? Vamos mergulhar e criar algo
incrível.Nota:  Todo o código-fonte e extensa documentação estão incluídos para apoiar sua jornada.

Conheça seu professor

Teacher Profile Image

Emile Du Toit

IT Expert & Game Developer

Professor

Hi, I'm Emile du Toit!

With over 30 years of IT experience, I've built my expertise in Database Design, SQL, and Programming, particularly within the Telecom Network industry. I'm passionate about solving problems and helping others grow in their technical skills.

Throughout my career, I've worked in leadership positions for Fortune 500 companies, spanning from South Africa to the USA. In addition, I am the founder and owner of Blueridge Web Services and Mafuta Games Studio.

In my spare time, I love creating game prototypes and teaching technology to aspiring developers. I've developed over 10 games in Unity and enjoy sharing the knowledge I've gained through years of hands-on experience.

Join me in my courses, where I'm excited to help you unlock yo... Visualizar o perfil completo

Level: Beginner

Nota do curso

As expectativas foram atingidas?
    Superou!
  • 0%
  • Sim
  • 0%
  • Um pouco
  • 0%
  • Não
  • 0%

Por que fazer parte da Skillshare?

Faça cursos premiados Skillshare Original

Cada curso possui aulas curtas e projetos práticos

Sua assinatura apoia os professores da Skillshare

Aprenda em qualquer lugar

Faça cursos em qualquer lugar com o aplicativo da Skillshare. Assista no avião, no metrô ou em qualquer lugar que funcione melhor para você, por streaming ou download.

Transcrições

1. Apresentação: Olá e bem-vindo ao Unity Tutorials, a série de jogos Doozy Meu nome é Emil e eu serei seu instrutor. Neste curso, você aprenderá como criar um jogo completo de mundo aberto em três D no Unity e será de 0 a 0 para se tornar um desenvolvedor de jogos Unity Deixe-me dar uma rápida introdução do que você aprenderá. No Tutorial 1 do Unity, você aprenderá como mover o jogador usando um controlador de personagem em um mundo de três D. Nosso jogador se chama Doozy e faremos ele colete alguns coelhinhos, evite alguns inimigos. Ele vai ter uma raposa companheira, que depois transformaremos em inimiga. Você descobrirá o poder das pedras mágicas. Você aprenderá a curar as feridas. Você também descobrirá como curar manualmente uma pedra mágica que busca calor comendo um cogumelo e uma análise detalhada do código Se você estiver pronto, pegue o mouse, pegue o computador e vamos entrar nos detalhes de como criar um jogo completo do começo ao fim. 2. Definições básicas: Olá e bem-vindo de volta. No Módulo 1.2, veremos algumas definições básicas como controlador de personagem, câmera virtual e muito mais. Sim, em breve apresentarei como usá-los, mas vamos dar uma olhada em um pouco de teoria para entendermos do que estamos falando. Então, em termos muito básicos, o controlador de personagem em Unity é um componente especializado que permite mover um personagem, geralmente seu jogador em um ambiente de três D. Mas, diferentemente dos componentes tradicionais baseados na física como um corpo rígido, o controlador do personagem é cinemático, que significa que ele não responde automaticamente a forças físicas como gravidade ou Em vez disso, ele permite controle direto do movimento por meio de scripts, ou seja, um script nítido em C, tornando-o ideal para criar movimentos responsivos e precisos do jogador Geralmente é usado em conjunto com a entrada do player, como mover um personagem usando do teclado ou do joystick No caso do teclado, normalmente, são as WASD para mover ou as teclas de seta e a barra de espaço para pular Então, o que é um corpo rígido? Um corpo rígido em unidade é o que faz objetos se moverem e reagirem a forças como a gravidade É o que faz uma bola rolar morro abaixo, por exemplo, ou uma caixa cheia quando você a deixa cair. Cinemático significa que ele não responde sozinho a forças como gravidade ou colisão, que significa que você deseja controlar seu movimento diretamente por meio dos scripts e não será empurrado por outros objetos, e não será empurrado por a menos que você faça isso com Três ambientes em Unity são como um mundo virtual onde seu jogo ou cena acontece, é onde você joga. Ele tem três dimensões, largura, altura e profundidade nos eixos X, Y e Z. Assim, você pode se movimentar e ver objetos de diferentes ângulos, assim como na vida real. Então, em um ambiente de três D, você pode criar qualquer coisa que você possa imaginar, como paisagens, edifícios, personagens, permitindo que os jogadores explorem e interajam com ele. Uma câmera virtual de acompanhamento é um aprimoramento especial câmera principal normal do Unity e é implementada com uma máquina de cinema Portanto, ele é configurado no Unity para seguir o jogador ou outro alvo no mundo do jogo. Normalmente, queremos seguir o jogador para torná-lo o alvo. Portanto, esta câmera rastreará suavemente a posição do alvo e poderá ajustar seu ângulo, distância e campo de visão para garantir que o alvo permaneça dentro da visão da câmera A câmera de acompanhamento visual é frequentemente usada em jogos em terceira pessoa, como Doozy, aquele que vamos criar, em que uma câmera seguirá dinamicamente o personagem do jogador, fornecendo uma visão que aprimora a jogabilidade, mantendo o personagem centralizado Então, como você disse, vamos usar o pacote cinemachine para implementar isso e há muito o que aprender sobre cinemachine, mas vamos simplificar este tutorial e mostrar como configurá-lo para seguir o Doozy A câmera principal do Unity é como os olhos do jogador em seu jogo. Mostra o que o jogador vê na tela enquanto se move pelo mundo do jogo, ou pelo menos rastreia por trás o que o jogador vê à sua frente. A câmera principal captura o ambiente em três D e o transforma em uma imagem em dois D que você vê no monitor É uma parte crucial de qualquer jogo porque controla o que o jogador pode ver e como ele vê o mundo do jogo. Esta é uma nota lateral. Você pode ter várias câmeras para ver ângulos diferentes no jogo, se desejar, mas isso é um pouco mais avançado. Então, o que é C shop? C shop e nós dizemos que C shop, como o termo musical, é uma linguagem de programação usada para escrever scripts ou instruções de código no Unity, que é uma plataforma popular de desenvolvimento de jogos. No Unity, a loja C é como as instruções que você dá ao computador para dizer o que fazer no seu jogo. Por exemplo, você pode usar o CShop para fazer um personagem se mover, pular, pegar itens ou interagir com outros objetos em seu jogo É muito poderoso e flexível e ajuda você a dar vida às suas ideias de jogo, controlando como tudo funciona e se comporta Não tenha medo se você não programou antes, se você nunca usou o CShap antes, faremos muitas repetições e exercícios juntos e, em breve, você se tornará um programador sem faremos muitas repetições e exercícios juntos e, em breve, em breve, você se tornará um programador Isso é tudo para este módulo. Nos vemos no próximo módulo. Obrigado por assistir. 3. Como configurar uma conta do Unity: Você sabe, Olá, e bem-vindo de volta. No Módulo 1.3, veremos como configurar uma conta Unity e baixar ativos gratuitos. Se você já tem uma conta Unity, não precisa fazer essa etapa, mas eu só quero fazer isso para pessoas que nunca fizeram isso antes e não instalaram o Unity. Podemos começar aqui acessando o link de download do unity.com Se você ainda não tem uma conta, pode criar uma ID Unity e depois entrar com ela. Depois de fazer isso, você pode clicar neste botão de download e você verá na linha abaixo, na parte inferior esquerda da tela, o que ele está fazendo é baixar uma configuração EX chamada Unity Hub. Agora, à medida que progredimos, você também pode usar a configuração do Unity Hub para instalar qualquer versão do editor Unity. Há muitas maneiras de instalar o Unity. Há muitas versões do Unity. Mas, para o tutorial, usaremos a versão gratuita e não a versão profissional, e vou orientá-lo sobre como encontrá-las à medida que avançamos. Também é possível visitar o site da Unity a qualquer momento no site aqui, que é unity.com Se você não se inscreveu em uma conta Unity, aqui estão as instruções. Como eu já disse, se você tiver uma conta, faça login. Caso contrário, você cria um. Basta preencher o formulário de símbolo que eles fornecem. Você pode usar seu endereço de e-mail aqui, nome de usuário e senha. Você concorda com os termos e cria o Unity ID. Em seguida, eles enviarão um e-mail para você e, em seguida confirmará sua conta e poderá verificar seu e-mail. Agora você está pronto para fazer login na Unity Asset Store. Você também pode acessar a loja de ativos Unity diretamente acessando assetstore.unity.com ou acessando-a de dentro do editor na Window acessando-a de dentro do acessando assetstore.unity.com ou acessando-a de dentro do editor na Window Asset Store. Você verá quando tiver o editor carregado, como isso funciona. Você pode procurar ativos gratuitos na loja de ativos de todos os tipos e usar o filtro que eles fornecem para procurar os tipos de ativos que você está procurando, menos que tenha permissão para comprar ativos pagos e a menos que tenha um cartão de crédito que possa usar, baixe apenas ativos gratuitos. Para o tutorial, você não precisará baixar nenhum ativo pago Depois de baixar esses ativos, você pode importá-los para o seu projeto a qualquer momento. Você verá muitos exemplos disso. Em resumo, agora você tem a capacidade de baixar ativos gratuitos, prontos para uso em seus jogos Unity. Essa conta também permitirá que você salve seu progresso, compartilhe seu trabalho e acesse outros serviços da Unity. Espero que você goste de criar seus jogos. Apenas certifique-se de baixar apenas ativos gratuitos, sem ativos pagos. Como dica, você pode usar o hub para iniciar novos projetos ou trabalhar em projetos existentes. Abordaremos isso no próximo módulo. Obrigado por assistir. 4. Unity Hub: crie/abra projetos de Unity aqui: Olá, e bem-vindo de volta. No Módulo 1.4, continuaremos com a instalação do Unity Hub que baixamos no episódio anterior. Se você ainda não o baixou, consulte o Módulo 1.3 e baixe o ponto de configuração executável do Unity Hub dot EXE Vamos contornar isso, se você ainda não tiver feito isso, ele instalará o hub. Vamos usar o hub para instalar um editor de motor de jogo Unity adequado. É no editor que faremos todo o nosso trabalho. E neste curso tutorial, usamos a versão 202-02-3205 F one, LTS, e essa é a Eu sugiro que você instale a mesma versão. Resumidamente, o que é o Unity Hub? O Unity Hub é uma ferramenta de gerenciamento que ajuda você a instalar, gerenciar e lançar diferentes versões do editor Unity. Ele também permite que você crie e organize seus projetos Unity, gerencie licenças e acesse recursos de aprendizado em um só lugar Para saber mais sobre o Unity Hub, você pode acessar este link aqui, Unity Hub e explorar a documentação. Se você quiser, saiba mais sobre começar a usar o Unity opcional. O que você pode fazer com um hub? Certifique-se de ler tudo isso e depois volte às anotações. Como instalamos o Unity a partir do hub? Bem, você inicia o aplicativo Unity Hub a partir do seu computador. Você faz login ou cria uma conta se ainda não tiver uma; se tiver, basta fazer login e isso lhe dará acesso ao editor Unity e à Asset Store como um lembrete Vamos instalar uma nova versão do Unity. Depois de fazer login, você acessará a guia Install no Unity Hub Você vai clicar no botão Instalar o Editor. Você escolherá essa versão. Siga as instruções abaixo. Certifique-se de instalar também o Visual Studio, pois precisaremos disso para editar nosso código. Mas, por enquanto, não instale nenhum módulo ou pacote adicional. Faremos isso em módulos futuros. Nos vemos no próximo módulo e obrigado por assistir. 5. Vamos fazer um jogo!: Olá e bem-vindo de volta. No Módulo 1.5, finalmente iniciaremos nosso projeto para criar um jogo. Para criar um projeto, o que você quer fazer depois de instalar o hub e o editor Unity, você abrirá o aplicativo hub e encontrará a guia do projeto para criar um novo projeto Unity ou, se você já tiver um no futuro, abrirá um projeto existente no Unity Hub para continuar trabalhando nele. Como lembrete, vamos escolher a versão 20223 dot 25, suporte de longo prazo Você pode dar um nome ao seu projeto. No meu caso, eu o chamei de Dostt one para Tutorial 1 e certifique-se de escolher um local com espaço livre suficiente no seu computador Se você tem um drive externo como um SSD, disco de estado sólido, eles são muito mais rápidos, use isso se você tiver um, caso contrário, salve-o em qualquer lugar onde tenha espaço livre no seu computador Então, para ressaltar, estamos usando o hub para criar um novo projeto. Vamos escolher os três D, integrados no pipeline de renderização. Ao dar a um projeto o nome, local onde armazená-lo, a organização, no meu caso, Mafuta, você pode escolher qualquer coisa ou nada Não precisamos nos conectar ao Unity Cloud, então você pode desmarcar isso e não precisamos usar o controle de versão do Unity neste momento Basta clicar em Criar projeto. Agora estamos prontos para começar a criar nosso jogo ou aplicativo no Unity. No Windows, você pode fixar o hub na barra de ferramentas do Windows se quiser facilitar na próxima vez Isso pode, corretamente, fixá-lo se estiver em execução. Resumindo, não precisamos instalar o editor Unity separadamente. Vimos que podemos usar o Unity Hub para nos permitir instalar e gerenciar as versões do editor que queremos usar diretamente do hub, e isso o torna o local central para gerenciar nosso ambiente de desenvolvimento Unity e todos os nossos projetos. Essa é a aparência da instalação padrão do Unity, e passaremos muito tempo familiarizando você com isso. Eu destaquei e li as áreas principais, a hierarquia, onde você coloca os objetos da cena, a cena em que você desenvolve o que o jogador fará, o jogo em que você testa o que o jogador fará e joga, o inspetor, onde você verá as propriedades de cada objeto na hierarquia e as editará e as definirá programaticamente e as definirá programaticamente Sob a janela do projeto, teremos ativos na janela do console, veremos erros. Em seguida, vamos instalar alguns pacotes extras que Unity precisa para nos ajudar a fazer esse projeto. Vamos instalar o text Mesh Pro usando o gerenciador de pacotes. No editor, você pode acessar o Gerenciador de Pacotes do Windows e, no registro do Unity, pesquisar texto e instalar ou atualizar o Text Mesh Pro. Se você o instalou anteriormente , você o atualizará. Se você nunca o instalou, você o baixará e depois o instalará. Se você não conseguir encontrá-lo, provavelmente é porque você não selecionou o registro do Unity. Portanto, o text Mesh Pro é a solução de texto definitiva para o Unity. É o substituto perfeito para texto da interface do usuário e a malha de texto antiga do Unity. Tudo isso significa que é um pacote que nos ajuda a digitar texto na tela, por exemplo, o placar ou o texto do game over e assim por diante. Mais sobre isso mais tarde. Em seguida, instalaremos o pacote cinemachine novamente usando o gerenciador de pacotes no menu suspenso em que vimos o gerenciador de pacotes Escolha a máquina de cinema. O que é uma máquina senoidal? Se você ainda não sabe, Sine maachine é uma ferramenta de câmera inteligente para criadores apaixonados e é basicamente usada para tornar a câmera principal do Unity mais No nosso caso, para este curso tutorial, vamos usá-lo para seguir Doozy, nosso jogador. A propósito, se você não conseguir encontrá-lo, você o encontrará no menu de objetos do jogo no editor. Também vamos instalar o pós-processamento, novamente, usando o gerenciador de pacotes e pós-processamento é, em termos simples, apenas uma ferramenta que melhora a iluminação e a aparência da cena e a aparência da cena e é uma ferramenta muito complexa, mas começaremos de forma muito simples apenas tornando o mundo mais brilhante Então, a seguir, é importante ter em mente que precisamos estar organizados e, à medida que você trabalha no jogo, prepararemos algumas estruturas básicas para as pastas que usaremos. Solicitaremos que você crie pastas essenciais sob os ativos do projeto. Usando a captura de tela aqui, basta clicar com o botão direito do mouse para criar essas pastas, arte, personagens, materiais, músicas, pré-fabricados As cenas já devem estar lá, roteiros e efeitos sonoros Além disso, se você olhar no editor, poderá personalizar seus layouts usando o menu suspenso no canto superior direito Isso é opcional, mas facilita a adaptação ao seu estilo de trabalho. Demonstraremos isso à medida que avançarmos na série. Por enquanto, basta seguir essas etapas e nos vemos no próximo módulo, onde abordaremos a orientação do Unity para iniciantes e forneceremos alguns atalhos 6. Guia de orientação de unidade para iniciantes: Vamos fazer um pouco de orientação para iniciantes. Se você estiver familiarizado com o Unity em geral, como usar o editor e se orientar, pule esta seção Mas vamos ler isso juntos. O Unity é uma ferramenta poderosa para criar videogames. Este guia ajudará você a entender as áreas mais importantes do editor Unity, que é o que estamos examinando, junto com alguns comandos e atalhos básicos Vamos explorar o editor usando algumas das notas abaixo. Vamos alternar entre as notas e o editor do Unity e depois resolveremos isso juntos. Você pode redimensionar, mover e abrir e fechar painéis conforme necessário. Você pode redefinir o layout. Você acabou de escolher o padrão aqui. Você pode ver que estou usando o layout Ma foto no momento. Você pode clicar na hierarquia, abrir a cena de amostra, que está aberta aqui Faça isso em seu próprio editor Unity agora. Isso também confirmará que sua instalação foi bem-sucedida e está funcionando. Se destacarmos a câmera principal, podemos ver que cada objeto em uma hierarquia, como a câmera principal, tem atributos no inspetor, propriedades ou componentes Cada um deles está dividido em seções que você pode alterar. Não entraremos em muitos detalhes no começo, mas neste exemplo, os planos de recorte, significam qual é a distância mais próxima e mais distante em que a câmera pode ver algo ou renderizar algo na tela, Isso é um lembrete do módulo anterior. Se você ainda não tem esses recursos em seu painel de projeto, arte, música, pré-fabricados, cenas, roteiros e efeitos sonoros, crie-os agora e observe que as cenas já devem estar lá agora e observe que as cenas já devem estar Visão geral do editor Unity. O editor é onde você cria e gerencia seu jogo e aqui estão as principais áreas com as quais trabalharemos. Começaremos com uma visão de cena. O que é isso? Esta é a área onde você constrói e organiza os objetos do jogo. Você pode pensar nisso como seu playground. Onde você pode ver e se movimentar pelo ambiente do seu jogo. É aqui que você reúne todos os componentes em objetos e scripts e lógica é a composição do seu jogo, e então você usa a janela do jogo para jogá-lo e testá-lo. O que você pode fazer em uma visualização de cena? A ação chave para aprender é que a tecla W é mover objetos. É chamado de traduzir a tecla E para girar objetos e o céu para dimensionar Vamos ver como isso funciona em um minuto. Na verdade, eu prefiro não usar esses atalhos. Vou usar o menu, que demonstraremos. Vamos fazer esse pequeno exercício juntos, depois vou tirar as notas e entrar no Unity Editor para que possamos fazer isso juntos. Deixe-me pausar o vídeo aqui um pouco, para que você possa ver o exercício Mas, basicamente, vamos criar um avião. Vamos usar uma ferramenta de escala para aumentar o tamanho do inspetor Vamos usar a ferramenta de rotação para alterar a rotação e todos os seus eixos Vamos selecionar um objeto plano que criamos e vamos excluí-lo. Mas antes de excluí-lo, forneceremos um material para mostrar como aplicar cores a ele e, em geral, brincar com o editor, criar alguns outros objetos, como um cubo de três D, uma lança e assim por diante Aqui estamos dentro do editor Unity. Você pode ignorar essa mensagem importando ativos. É apenas atualizar o status do banco de dados. Para aqueles que ainda não criaram as pastas, vá e faça isso agora, personagens artísticos, materiais, músicas, peças pré-fabricadas, cenas, roteiros e Vamos fazer algo simples. Vamos criar um objeto de jogo em três D chamado avião. Entramos em GameObject, um plano de três objetos D. E agora que criamos um avião, podemos clicar para sair dele. Se clicarmos nele, podemos ver que é uma transformação, que é essa posição no mundo, atualmente em zero, zero, zero, que é a origem mundial. Tem vários materiais nele. Atualmente, o material padrão. Tem um colisor de malha. Mais sobre isso mais tarde. Então, vamos usar a ferramenta de escala para aumentar o tamanho do inspetor Eu gosto de usar esse menu aqui. A ferramenta de escala é para o plano ou qualquer outro objeto cujo tamanho você queira aumentar. É essa aqui, a ferramenta de escala. Agora, se você quiser escalá-lo em todas as direções, clique com o botão esquerdo do mouse arraste e o aumente. Veja como isso funciona. Observe o que acontece com a escala aqui, 1,7. Se quisermos mover o avião com uma ferramenta de movimentação, podemos movê-lo assim. Podemos movê-lo para cima ou para baixo. Todas as direções. Você pode usar a gravata para, assim, o eixo vermelho, que é X, eixo azul, que é Z, e o eixo Y, verde. A seguir, vamos dar uma cor simples. Na pasta de materiais de ativos, você pode clicar com o botão direito do mouse em criar material. Vamos chamá-lo de marrom. Nos mapas principais de Albedo, selecionaremos uma cor marrom terrosa, talvez algo parecido Em seguida, arrastaremos o material marrom para o plano ou para o objeto plano na hierarquia Observe como isso o torna marrom. Se quisermos torná-lo verde, troque-o por verde Uma coisa que você notará é essa pequena estrela e isso significa que as alterações fizemos ainda não foram salvas. Para salvar suas alterações de cena, você acessa arquivo, salva ou salva como. Salvar como permite salvá-lo em um local diferente como em sua própria pasta de cenas que você criou nas cenas ácidas, salvá-lo ou salvá-lo em seu local original. Se eu salvar, a estrela vai embora. Relembrando nossas anotações, sugiro que todos leiam as notas do curso para aprender mais sobre o editor e o experimento . Se você realmente tiver dúvidas, há um menu de ajuda, muita documentação do Unity ou apenas faça perguntas. A visão do jogo, o que é? Em análise, a visualização do jogo mostra aparência do seu jogo para os jogadores. É como apertar play no seu jogo. Essa é a experiência de realmente jogar o jogo. As principais ações que você pode fazer aqui são pressionar o botão play na parte superior da tela ver como o jogo funciona em ação. Você pressiona a opção maximizar ao jogar para ver seu jogo em tela cheia. Quando você pressiona play no painel de hierarquia, o que é? O painel lista todos os objetos em sua cena, como personagens, árvores, câmeras etc É onde você organiza tudo no seu jogo. Quais são as principais coisas que você pode fazer aqui, escrever para criar novos objetos, como três objetos D, luzes, câmeras e aviões, e assim por diante. Você pode arrastar objetos para agrupá-los e criar uma relação pai-filho. Por exemplo, se você tem criaturas como objeto principal com muitas criaturas abaixo dele, o painel do projeto, o que é? Esta é a sua área de armazenamento de jogos. Ele contém todos os seus ativos, como seus modelos, seus sons, seus scripts, em pastas especiais, aquelas que criamos. Nas principais ações, você pode arrastar ativos do seu computador para este painel para inseri-los no jogo. Em breve, baixaremos o Doozy e baixaremos alguns outros ativos Da pasta de download no seu computador, os arrastaremos para a pasta de ativos apropriada Você verá como o Import funciona com Dragon drop. Você também pode usar uma barra de pesquisa para encontrar ativos específicos rapidamente. O painel de inspetores, o que é? Mostra os detalhes sobre os objetos que você selecionou na hierarquia ou viu É aqui que você pode alterar as propriedades, como tamanho, cor e comportamento, por exemplo, e adicionar mais componentes. Os componentes podem ser scripts ou objetos. Principais ações, você pode clicar no objeto em uma hierarquia ou cena para ver suas propriedades Você pode então ajustar os valores como a posição, a rotação, a cor, as coordenadas da transformação XYZ, o tamanho, tudo barra de ferramentas está localizada na parte superior do editor Unity e contém ferramentas essenciais, como jogar e pausar o jogo, e diferentes ferramentas de manipulação, como mover, girar e escalar, como acabamos Use o botão play para iniciar e parar o jogo, use a ferramenta manual para se mover pela visualização da cena ou o atalho QK O painel do console é onde Unity mostra mensagens sobre seu jogo. Isso é muito útil para depurar, encontrar problemas e erros e corrigi-los Às vezes, eles são apenas avisos de que estarão em branco. Se estiverem amarelos, é um aviso, se estiverem vermelhos, é um erro. Quando chegarmos a um pouco de script em C sharp, veremos como podemos usar um comando debug dot log nos ajudar a descobrir onde estão os erros Aqui, os comandos e atalhos básicos do editor. Para mover nosso objeto, você pode usar a tecla W, girar com E, rolar com R ou usar Mude para o SceneView com Q. Observe as teclas extras para Mac versus Windows Portanto, os painéis principais são usados como resumo, os visualizadores de cenas para projetar e organizar seu jogo, os espectadores do jogo para testar a aparência e a jogabilidade do jogo, o painel hierárquico para organizar e gerenciar todos os objetos do jogo em sua cena, o painel do projeto para gerenciar todos os ativos do seu jogo, como imagens, sons, scripts e muito mais, o painel do inspetor modifique as propriedades dos objetos selecionados, o painel do console para depurar e solucionar problemas seu jogo ao visualizar mensagens de erro e registros Então, eu encorajo você a explorar e experimentar com o editor. Não tenha medo de clicar nas coisas, explore o que elas fazem. Unity é muito prático e você aprende fazendo. Lembre-se, salve frequentemente o arquivo, salve, salve, Control S no Windows, Command S no Mac. Além disso, o Unity tem muitos tutoriais integrados que você pode usar para se familiarizar com todas as outras ferramentas, mas não se aprofunde muito nisso Vamos nos concentrar primeiro no básico. Vamos dar uma olhada rápida na luz direcional que age como o sol Aqui está na tela, também pode girá-la, alterar o ângulo, observar as mudanças de luz e observar as mudanças de rotação Queremos fazer com que o sol tenha uma cor diferente , ver como ele muda, torná-lo dessa cor, também podemos usar esses controles deslizantes Queremos sombras suaves ou sombras duras? Mais do que isso, mais tarde, isso é apenas para mostrar o que é a luz direcional Observe como você pode, com um clique esquerdo do mouse aqui, redimensionar a área, mover o console para lá, por exemplo, redimensionar aqui, mover a janela do projeto para lá e agora você diz: Bem, isso parece uma Vamos voltar ao layout padrão e ele redefine as coisas para você Você pode criar seu próprio layout aqui. Ok, isso é tudo para este tutorial. Nos vemos na próxima 7. Sobre o motor de jogo Unity (conceitos e definições principais): Olá e bem-vindo de volta. No Módulo 1.7, examinaremos um pouco mais a fundo o motor de jogo Unity e apresentaremos mais alguns conceitos e definições importantes. Alguns começarão a se familiarizar e outros serão apresentados. O que é o motor de jogo Unity? Uma definição simples. É que o Unity é um mecanismo de jogo poderoso e amplamente usado que permite aos desenvolvedores criar dois D, três D, VR, que é realidade virtual e AR, que são jogos e experiências de realidade aumentada Ele fornece uma interface amigável e uma variedade de ferramentas para projetar, desenvolver e implantar jogos em várias plataformas, como PCs, consoles, dispositivos móveis e muito Uma definição de cena, em Unity, é como um nível ou ambiente em seu jogo. Ele contém todos os objetos como personagens, câmeras, luzes e assim por diante, que compõem essa parte do jogo. Você pode pensar em uma cena como uma tela qual você constrói seu mundo de jogo, mas também um jogo complexo pode consistir em várias cenas e, à medida que você sobe de nível, durante o jogo, você passa de uma cena para a outra até que o jogo esteja concluído. Número três, um objeto de jogo. Um objeto de jogo é o alicerce básico para tudo em Unity. Qualquer coisa que você vê no seu jogo, como um personagem, uma árvore, uma pedra, uma luz, é um objeto do jogo. Os objetos do jogo podem ter componentes diferentes que definem seu comportamento, aparência e funcionalidade. Número quatro, componentes componentes são as peças que dão funcionalidade aos objetos do jogo. Por exemplo, um componente de transformação controla a posição, a rotação e a escala de um objeto do jogo , enquanto um componente renderizador o torna visível Ao adicionar componentes diferentes a um objeto do jogo, você pode fazer com que ele faça coisas diferentes. Número cinco, transforme. O componente de transformação é o que define a posição, rotação e escala de um objeto de jogo no mundo do jogo. Cada objeto do jogo tem um componente de transformação que determina onde ele está na cena e como está orientado. Número seis, um prefab, um prefab é um objeto de jogo reutilizável que você pode criar uma vez e usar Por exemplo, se você tem um personagem ou um obstáculo como uma pedra que aparece várias vezes em seu jogo, você pode criá-lo como um pré-fabricado uma vez e depois colocá-lo em qualquer lugar que você precise no jogo e todos se comportarão da mesma forma e terão a mesma aparência Número sete, roteiro. Um script é um trecho de código geralmente escrito em C shop in unity, que é uma linguagem de programação que adiciona comportamento aos objetos do jogo. Por exemplo, você pode escrever um script para fazer um personagem pular ou mover um inimigo em direção a um jogador. Os scripts são o que tornam seu jogo interativo, para que você possa jogá-lo. Número oito, ativo. Um ativo é qualquer arquivo que você usa no jogo, como imagens, sons, modelos e outros scripts. Todos os recursos do seu jogo são armazenados como ativos no painel do projeto no Unity. Número nove, hierarquia, o painel hiarch mostra todos os objetos do jogo em sua cena atual É onde você organiza e gerencia os objetos em seu mundo de jogo. Você pode ver a relação pai-filho entre objetos aqui. Número dez, inspetor. O painel do inspetor permite que você visualize e edite as propriedades do objeto ou ativo do jogo selecionado É aqui que você pode alterar coisas como a posição, os componentes e os scripts anexados a ela. Projeto. O painel do projeto é onde todos os ativos do seu jogo são armazenados. É como o explorador do seu projeto Unity, mostrando todos os recursos com os quais você precisa trabalhar. Número 12, console. O painel do console é onde Unity mostra mensagens sobre o que está acontecendo no seu jogo. É usado para depuração, mostrando erros, avisos e mensagens Número 13, animador. A ferramenta animada é uma ferramenta e uma unidade usadas para controlar animações. Ele permite que você crie e gerencie estados de animação, como veremos, chamados de máquina de estados de animação para seus personagens ou objetos ou inimigos, criaturas e assim por diante, ou até mesmo um moinho de vento movendo suas lâminas e controlando transição entre diferentes Número 14, física física em Unity se refere à simulação de forças do mundo real como gravidade, colisões e movimento O Unity tem um mecanismo de física integrado que facilita a criação de comportamentos realistas para objetos em seu jogo. Concluindo, essas definições básicas ajudarão você a entender melhor os conceitos fundamentais de unidade ao começar a criar seus próprios jogos. Obrigado por assistir e até o próximo módulo. 8. Instale um ambiente adequado para nossa primeira cena: Olá, bem-vindo de volta ao Módulo 1.8, onde instalamos um ambiente adequado para nossa primeira cena. Este será o nosso mundo de jogo onde Doozy explorará. Só para explicar um pouco, todo jogo precisa de pelo menos uma cena e a cena geralmente precisa de um curinga para jogar. No nosso caso, estamos construindo um jogo de mundo aberto em três D, precisaremos de uma cena em três D. Agora, ao aprender mais sobre o Unity, você aprenderá a criar seus próprios wilds. Você pode fazer isso em pacotes gráficos como o Blender, criar sua própria malha Você pode usar as ferramentas de terreno do Unity para construir um mundo. Mas, por enquanto, vamos usar um wild existente que está disponível gratuitamente na Asset Store. Vamos fazer isso juntos usando este link aqui. Vamos adicioná-lo aos meus ativos. Em seguida, vamos abri-lo no Unity. Em seguida, vamos baixá-lo para você, já que eu já baixei antes, vou apenas importá-lo. Quando a importação for concluída, você a encontrará aqui em ativos Striforg Se você ler Leia-me e ler nossas notas do curso, verá que há duas versões desse recurso. Esse é o que queremos para o perfil de renderização integrado. Vamos clicar duas vezes nele e importá-lo Em seguida, veremos as cenas de conteúdo de demonstração de mundos de fantasia incorporadas no renderizador e abriremos esta demonstração gratuita da Floresta Velha Verificando nossas anotações no curso, vemos que estamos sendo solicitados a salvar a cena como uma nova cena em Asset scenes, nome de arquivo Old Forest. Mas antes de salvá-lo, vamos remover algumas das coisas que não precisamos, conforme indicado no bloco vermelho aqui. Você pode selecionar vários objetos em uma hierarquia clicando com Shift na parte superior e Shift na parte inferior ou clicando com o botão Control para selecionar um por um Quando estiver pronto para excluí-los ou movê-los, clique com o botão direito do mouse e exclua-os assim Quando abrirmos a cena, veremos que há outro objeto aqui chamado Object stamp Também não precisamos disso, e falta um script , como você pode ver aqui. Isso vem com um ativo. Não precisaremos disso Vamos clicar com o botão direito do mouse e excluir isso também. Observe que a cena não foi salva, então vamos salvá-la agora, arquivar, salvar como. Vamos escolher nossa pasta de cenas que criamos e podemos salvá-la como uma floresta antiga. Por exemplo, como uma cena de união. Se você olhar embaixo das cenas, você pode arrastar esse controle deslizante para ver onde está a Floresta Velha Relembrando nossas anotações, podemos ver que podemos usar atalhos, Control S ou comando S em um Mac ou salvar arquivos Vamos dar uma olhada rápida na câmera principal. Observe que quando eu clico duas vezes nele, ele também está localizado na cena. Clique com o botão esquerdo e arraste a roda de rolagem para ampliar. É mais ou menos aqui que vamos colocar DZ no próximo episódio 9. Apresentando Doozy, nosso herói: Olá, e bem-vindo de volta. No Módulo 1.9, apresentaremos o Doozy, nosso o player. Doozy é um personagem de desenho animado que vive no E se você nunca usou mixamo.com antes, você precisa de uma conta gratuita E se você não tiver certeza de como criar uma conta, basta seguir as notas do curso com estas instruções. Mas, basicamente, você só precisa se inscrever, obter um ID, confirmar seus dados, verificar com um e-mail e acessar o Mixamo E tudo o que você pode fazer no Mixamo ou obter do Mixamo é gratuito, e você pode usar as animações e os personagens Portanto, não vou fazer isso ao vivo, pois já fiz isso, mas você pode seguir as instruções nas notas do curso. Mas, para resumir, vou mostrar que você pesquisa. Então, você pesquisa a palavra doozy abaixo dos personagens e, em seguida, pode clicar em encontrar animações ou alternar para a guia de animação quando ela aparecer E você pode encontrar animações adequadas. Então, vamos usar essa animação ociosa no bloco vermelho aqui, pesquisando a palavra ociosa na guia animação Certifique-se de verificar se os braços dele não estão tocando em suas roupas testando com o jogo Você pode pausar, arrastar a barra aqui. Essas são configurações que funcionam para mim, mas você decide o que quer. Como dica, você pode clicar com o botão esquerdo do mouse, segurar e movê-lo para ver ao redor dele como funciona. Agora, o importante em Miximo é o primeiro personagem e animação que vocês baixam Certifique-se de definir um formato como FBX para Unity com uma capa, 60 quadros por segundo e nenhum para redução de quadros-chave Vou clicar em Baixar aguardar a conclusão do download. Depois de fazer isso, você pode abrir a pasta de download no seu computador onde baixou o modelo com essa animação ociosa dentro dela e arrastá-la para Assets characters Doozy Se você ainda não tem uma pasta como essa, crie primeiro uma chamada Doozy abaixo dos personagens e depois arraste-a para baixo e depois arraste-a Então, se você arquivar algo semelhante a isso, na sua pasta de download, você seleciona e o arrasta até aqui. Então, no próximo módulo, veremos como preparar as texturas e os materiais nele e colocá-lo em cena. Obrigado por assistir. 10. Prepare texturas e materiais e coloque nosso personagem de jogador em cena: Olá e bem-vindo para preparar o vídeo de texturas e materiais Essa é apenas uma rápida demonstração do que você precisa fazer ao importar um personagem, digamos, do Miximo, como fizemos com Portanto, você deve ter salvo seu arquivo FBX para Doozy em caracteres de ativos e, em seguida, extrair as texturas e os materiais do inspetor, conforme seu arquivo FBX para Doozy em caracteres de ativos e, em seguida, extrair as texturas e os materiais na guia de materiais do inspetor, conforme demonstrado aqui. Então você simplesmente o seleciona assim. Então você usa os personagens ativos Doozy ali mesmo. Se ainda não estiver certo, acesse a guia de materiais. Você clica em extrair texturas e extrai os materiais. Unity exibirá esse pop-up e você clica na correção vez em quando, ele ficará como deveria, como B. Depois de extrair as texturas e os materiais, ele parecerá que deveria usar seu uniforme adequado Basta ler essas notas. É bastante autoexplicativo, mas vamos arrastá-lo para a cena Dos personagens doozy de Assets, pegamos o FBX e o colocamos em cena. Você pode começar com essa posição se quiser a transformação dele ou escolher uma área agradável perto da câmera na área aberta de sua preferência. Então, vamos renomeá-lo para Doozy player ou Doozy ou player Eu recomendo acompanhar e renomeá-lo como jogador de Doozy. Você pode salvar a cena. Você pode pressionar o botão play e ver o que acontece. Então teste se ele está parado e ocioso no lugar. E descobrimos que ele não coloca todos os clipes de animação por padrão. Isso porque precisamos tornar sua configuração um pouco mais inteligente adicionando mais componentes e lógica para ele. Pare o botão play e, de volta à visualização da cena, selecionaremos um doozy player e clicaremos em Adicionar componente e adicionaremos controlador de personagem e um Também criaremos e configuraremos o controlador do animador para ele um pouco mais tarde Isso mostra como eu o chamo. Vamos adicionar um componente para ele, controlador de personagem com o centro de configurações 0,9 no Y, altura 1,7. E você pode ver na captura aqui qual deve ser a configuração do controlador de personagem Além disso, certifique-se de que ele tenha um controlador de animador, e criaremos um controlador em breve e criaremos um novo script chamado player movement version two nos Asset Scripts Quando você clicar duas vezes aqui ou aqui, ele será aberto no Visual Studio. Por padrão, o Unity cria esse código com um método de inicialização e um método de atualização, e alguns usando instruções. O que vamos fazer é substituir o conteúdo desse código padrão pelo código fornecido no tutorial abaixo. Vamos usar esse botão de cópia para garantir que você tenha as notas do curso abertas. Em seguida, você pode usar o botão copiar ou selecionar um texto, copiá-lo e colá-lo sobre esse código para substituir todo esse código pelo código abaixo. Você não precisa entender exatamente como funciona neste momento, certifique-se de que tenha a mesma aparência por enquanto. Mas, como introdução à codificação, é aqui que obtemos a entrada do jogador em um eixo horizontal e vertical, criamos um vetor de direção de movimento Verificamos se o jogador está movendo detectando uma entrada diferente de zero Definimos que o parâmetro do animador está se movendo, o que você verá em um minuto Lidamos com a gravidade, saltando Step offset, calculamos o movimento, movemos o personagem usando essa fórmula e giramos Então, de volta ao Unity, selecionaremos um reprodutor doozy e examinaremos as configurações do inspetor para o script, e você verá que não há valores para velocidade, rotação, velocidade, velocidade de salto e botão de salto, período de carência no momento Então, vamos preenchê-los da seguinte forma. E precisa de uma animação. Então, como vamos fazer isso? Basta seguir estas etapas aqui, criaremos um controlador de animador e personagens ativos que Dusi criarão corretamente o controlador animado, chamaremos de Doozy e o atribuiremos ao slot do controlador no componente do Então, depois de criar aqui, basta falar com o botão esquerdo do mouse, manter pressionada a tecla esquerda e arrastá-la para o slot aqui e clicar duas vezes para abri-la para que possamos editá-la. Observe que ele vem como mixamo.com. Opcionalmente, recomendamos que você renomeie isso para algo como doozy Siga as notas. Se não ocorrer um loop, ative o tempo de loop na animação. Agora que foi renomeado , está aqui. E não se esqueça de clicar em aplicar. Quando analisamos o controlador doozy em que o criamos, queremos configurá-lo na janela de trabalho do animador desta forma : doozy doozy idle, motion doozy idle Se você fizer isso duas vezes, poderá verificar se está em loop ou Se você fizer alguma alteração, deverá se inscrever. Só para mostrar onde está atribuído. Certifique-se de que o tempo de loop esteja ativado dessa forma. Se você não vê doozy aqui, arraste-o para dentro e então podemos testar com este botão play Talvez você veja uma mensagem em um console a facilidade de pular não existe e a facilidade de se mover não existe Esses parâmetros você precisará criar. Leia um pouco sobre uma teoria, o que é um booleano. E vamos comprar mais clipes para ele, mas desta vez sem a pele, porque já temos sua pele e roupas, texturas e Podemos procurar correr e pular. Nós gostamos desse. Certifique-se de definir configurações semelhantes a essa, para que as mãos dele não interfiram ou que os braços passem pela roupa. Você o baixa sem a capa, 60 FPS por segundo É um FBX para unidade. Em breve, você se acostumará com as configurações de que precisa. E agora estamos prontos para pular. Nós escolhemos este, também baixamos esse. Novamente, sem a pele, 60 chamas por segundo, FBX Então, em seguida, precisamos atualizar, modificar o animador para poder lidar com a corrida e o salto Primeiro, vamos inserir esses clipes para entrar e correr na Udinty, arrastando-os para a pasta doozy dos caracteres dos ativos dos Você faz o clipe de corrida fazer um loop e ativa a pose do loop, mas não repete o salto porque ele não se repete Então, para correr, queremos fazer pose e loop, rolar para baixo e aplicar o salto que não faz loop Eu deveria ficar assim quando você os trouxesse. Vamos modificar a configuração do animador de Doozy para torná-lo mais inteligente, para que ele possa pular e correr, não Vamos renomear esses estados como executando e pulando para cima. Neste clique com o botão direito do mouse, você pode adicionar os parâmetros booleanos que vimos no aviso no console para facilitar a movimentação e Vamos criar transições conforme mostrado e desabilitar o hasex às vezes, pois usaremos condições Para criar uma transição, se você ainda não descobriu isso, clique com o botão direito do mouse e crie uma transição e a partir desta para lá e assim por diante. Não esqueça os parâmetros. Es moving, es jumping deve ser escrito exatamente da mesma forma. Aqui está um exemplo de como você pode fazer a transição entre marcha lenta e corrida, marcha lenta e pular e Acompanhe as notas. Não se esqueça de definir esses valores. Aqui está uma visão mais detalhada de uma dessas transições, destacada em azul de al para running e, sendo usada a condição está se movendo para determinar quando ele deve transição de Pro para Running, por exemplo. Sem hora de saída. Mas volte da seguinte forma, então você precisa se desafiar e descobrir quando faz sentido usar o horário de saída. Como resumo do salto, usaremos o parâmetro Bo é pular, para fazê-lo pular esperar que o clipe de salto termine E sim, se você pensou que este é um momento em que podemos usar horário de saída porque queremos esperar que o clipe de salto termine de ser reproduzido, você está certo As notas são bastante óbvias, quais são os métodos corretos para usar aqui. Se você pressionar play, notará que a câmera não está seguindo o player Doozy nesse caso, e isso é porque ainda não instalamos o pacote de cenas de cinema, talvez você tenha esquecido de fazer isso ou não tenha configurado ou criado uma Então, se você ainda não fez isso, siga as dicas de configuração da câmera aqui, siga estas notas, mas você deseja criar uma câmera virtual com uma câmera virtual cinemachine com essas configurações, atribuídas ao Doozy Certifique-se de que a rotação seja 25. Certifique-se de que o corpo esteja enquadrado conforme explicado anteriormente. Você pode receber uma mensagem sobre a ausência de um script de redefinição desconhecido sobre esse comportamento Isso não tem nada a ver com nosso código, mas eu forneço uma nota aqui e agora você pode limpá-la. Não é fundamental se você não o fizer, mas recomendo que o faça. Depois, assista também ao vídeo do ponto de verificação do projeto a seguir , com tudo o que abordamos nesta seção do tutorial 11. Ponto de verificação do projeto DoozySeriesTut1: Olá, bem-vindo de volta à análise do Módulo 1.10. Se você seguiu as instruções do curso corretamente, você deve acabar com uma cena de jogo que Doozy está em Você pode clicar em jogar Maximized aqui. Em seguida, vamos pressionar play para testar. Eu clico na tecla W, no DK, na tecla A, na tecla S, na barra de espaço para pular Quando também feito diagonalmente com W e D juntos, ou S e D juntos, e assim por diante Parece estar funcionando bem. Vamos dar uma olhada na configuração no Unity, caso você perca alguma coisa nas notas do curso. Vamos nos sentar para ver uma cena. Como você pode ver, a tag da câmera principal, a câmera principal agora foi anunciada com uma camada de pós-processamento com um volume de pós-processamento. A propósito, um cérebro de máquina de cinema e uma câmera virtual que coordena o método de acompanhamento de movimento do Doozy, colocamos nosso alvo de acompanhamento o doozy player lá Verificamos se um corpo está configurado para enquadrar o transpositor -0,1 no eixo y, somente o movimento do Caso você tenha perdido isso, vamos corrigir isso. Aguarde. Para mirar, não queremos fazer nada no momento, apenas certifique-se de que você não precisa fazer nada para mirar Vamos ver a aparência de doozy no final do curso O módulo 110 deve ter um prefab. Verifique se não há substituições. Se você fez alguma alteração, deverá aplicá-la. Ele precisa ter um controlador de personagem com as seguintes configurações. Você precisa ter um animador com um controlador chamado Doozy que configuramos de acordo com as notas do curso Você precisa ter o script de visão de movimento do jogador dois com esses valores de velocidade, velocidade rotação, velocidade de salto e período de carência do botão de salto. Abrimos o movimento do player em dois scripts Ele deve ficar assim de acordo com o código-fonte fornecido, o método de início e o método de atualização, onde obtemos a entrada do player em nosso eixo horizontal e vertical. Criamos um vetor de direção de movimento. Verificamos se o jogador está se movendo detectando uma entrada diferente de zero, se for maior que 0,1 Definimos o parâmetro animado para facilitar a movimentação. Lembre-se de que configuramos o parâmetro está se movendo. Isso deve corresponder exatamente à mesma grafia. Nós lidamos com a gravidade. E vemos se ele precisa pular, se está no chão ou não, lidamos com o salto, aplicamos uma força de salto. Aqui, acionamos a animação do salto definindo a bola que ele está pulando para três Caso contrário, aplique gravidade quando não estiver aterrado. Nós lidamos com a entrada de salto, que é a barra de espaço. Você ajusta o deslocamento do passo, calcula a velocidade do movimento Em seguida, usamos nossa referência ao controlador do personagem para realmente entrar , giramos um personagem para ficar voltado para a direção do movimento usando o rotação do alvo quaterniano Vamos revisar seu controlador. Precisamos ter os parâmetros booleanos de facilidade de movimentação e facilidade de salto Se você não os tiver, use o sinal de adição para criar um. Vamos entrar na máquina estadual desde a entrada até o doozy Analisaremos o movimento de marcha lenta ou o clipe com uma velocidade normal de um Temos a capacidade de fazer a transição do modo inativo para o funcionamento. Analisaremos a transição. Certifique-se de que o texto esteja desmarcado. O ponto de transição está aqui e usaremos uma condição em que o movimento é verdadeiro, que é esse parâmetro. Para voltar da corrida, faremos o oposto, novamente se o texto falso se mover for falso, faremos a transição de volta. Do inativo ao salto, verificaremos se a condição está saltando, pois não foi verificada Para voltar, queremos usar tempo de execução porque queremos que o clipe de salto seja reproduzido totalmente da corrida ao salto Verificaremos novamente se está pulando e usaremos se o tempo de execução está ativado sem condição A propósito, você vê que Doozy está aqui. Se não aparecer aqui, você pode simplesmente pegá-lo aqui, arrastá-lo aqui e, por exemplo, visualizar como ficaria pressionando o botão de exibição. Observe como ele volta a funcionar neste ponto logo após o término do horário de saída Essa é a revisão e recapitulação do Módulo 1.10. Se você tiver alguma dúvida, entre em contato conosco, verifique as notas do curso e nos vemos no próximo módulo. 12. Referência básica de script de movimento do jogador (compare seu script): Olá e bem-vindo de volta. Neste módulo, daremos uma outra olhada no script básico de movimentação do jogador chamado movimento do jogador Versão dois Você pode usar este vídeo para comparar com o seu ou pode consultar as notas do curso de download digital e usar o código. Se você estiver usando este site, poderá usar este botão de cópia ou abrir seu PDF e recortar e colar o código. Temos algumas variáveis para velocidade, velocidade de rotação, velocidade de salto e período de carência do botão de salto. Temos o animador, o controlador do personagem, depois a velocidade vertical no eixo Y, o deslocamento original do passo, o último tempo aterrado, o tempo pressionado pelo botão de salto Temos o método start onde obtemos as referências de que precisamos, e precisamos atualizar o método para obter a entrada do player nos eixos horizontal e vertical. Criamos um vetor de direção de movimento usando essa nova declaração vetorial três com a entrada horizontal e a entrada vertical, nada no eixo Y. Isso é XYZ. Verificamos se o jogador está se movendo detectando uma entrada diferente de zero Em seguida, definimos o parâmetro do animador que configuramos para se mover, lidamos com a gravidade, verificamos se está aterrado, depois redefinimos a velocidade vertical quando aterrado e também colocamos um pequeno valor negativo para manter o personagem aterrado apenas para garantir que ele não flutue quando não deveria Reinicializamos a animação do salto quando aterrada, colocando es jumping em false Registramos o último tempo aterrado. Nós lidamos com o salto com a barra de espaço. Se o botão de pular foi pressionado, você pode alterar o botão, é claro, mas a unidade geralmente usa a barra de espaço. Quando esse botão é pressionado, a barra de espaço, acionamos a animação do salto configurando o booleano do salto Caso contrário, aplicamos a gravidade quando não estamos no chão. Em seguida, lidamos com a entrada de salto. Nós apenas compensamos um passo com base no estado fundamental. Nós calculamos o movimento. Nós movemos o personagem usando o comando dot move do controlador de personagem e a velocidade multiplicada pelo tempo Delta T. Também giramos o personagem para ficar voltado para a direção do movimento Se estiver se movendo, usando a rotação alvo do quatérnio, iguale a direção L do movimento de rotação do ponto do quatérnio Garantimos que ele esteja olhando na direção em que está se movendo. 13. Habilidade de salto e detalhes de personalização (recapitulando e revisando como funciona): Olá e bem-vindo de volta. Vamos examinar mais de perto a capacidade de pular e os detalhes de personalização Para fazer o personagem pular corretamente usando o controlador de personagem, você precisa configurar alguns parâmetros e gerenciar o estado do salto dentro do script. Aqui está o que você precisa ajustar e configurar. Número um, os principais parâmetros, salto, velocidade, Y, velocidade, botão de salto, período de carência. velocidade de salto é a velocidade aplicada quando o personagem pula Isso controla o quão alto o personagem pode pular. A velocidade Y, a velocidade vertical atual do personagem, que inclui tanto a gravidade quanto o salto, o período de carência do botão de pular, uma pequena janela de tempo que permite ao jogador pular logo após sair de uma plataforma Isso ajuda com saltos mais indulgentes. Você descobrirá que, se seu ambiente de jogo tem uma plataforma de ponta afiada, você pode ou não pular Para torná-lo mais realista e divertido, é isso que é resolvido com o período de carência do botão de pular. Número dois, entradas necessárias, a entrada de salto. Por padrão, a unidade usa a entrada de salto, que é mapeada para a barra de espaço para acionar um salto Você pode configurar isso no gerenciador de entrada do Unity, se necessário. Número três, lógica de salto. Você precisa garantir que o personagem só possa pular quando estiver no chão, mas com um período de carência permitindo um salto logo após sair do chão, como mencionei Exemplo, configure parâmetros, velocidade de salto, defina isso para um valor como sete para começar. Isso controla o quão forte é a força do salto. A velocidade Y é calculada dinamicamente com base na gravidade e na lógica do salto O período de carência do botão de pular, um valor de 0,2 segundos, dá ao jogador um breve momento para pular depois de sair do chão, tornando o jogo mais suave Neste exemplo configurado para parâmetros, vemos que a velocidade do salto está definida como sete e o período de carência do botão de salto está definido como 0,2. Aqui está uma saída do script para o método de atualização. Usamos nossos métodos de entrada existentes e atuais para movimentação. Consulte o roteiro completo na lição anterior. Nós lidamos com a gravidade, lidamos com o salto. Registramos a hora em que o jogador ficou de castigo pela última vez. Verificamos se o botão de salto foi pressionado dentro do período de carência, aplicamos a força de salto, reiniciamos o tempo de pressionamento do botão de salto. Registramos a hora em que um botão de salto foi pressionado, aplicamos um movimento incluindo a gravidade e reiniciamos o deslocamento do degrau no solo se estiver aterrado Caso contrário, nós o definimos como zero. Como isso funciona? Primeiro, a velocidade do salto controla a rapidez com que o personagem se move para cima ao pular Você pode definir esse valor como sete. A gravidade, razão pela qual a velocidade, essa variável aumenta continuamente devido à gravidade e é reiniciada quando aterrada ou quando ocorre um salto O período de carência do salto permite saltos mais tolerantes ao deixar o personagem pular, mesmo que o jogador pressione o botão de pular um pouco depois de sair No inspetor de unidade, você precisa definir um valor como sete e 0,2, conforme mencionado no código Comece com isso e depois experimente. Então, sobre a gravidade, certifique-se gravidade seja aplicada adequadamente adicionando constantemente ponto físico, o ponto de gravidade, o ponto y, multiplicado por T, Delta T à velocidade Y. O animador, se você tiver uma animação de salto, talvez queira adicionar um parâmetro booleano no controlador do animador e configurá-lo ao iniciar o Ao definir esses parâmetros, o personagem deve ser capaz pular corretamente dentro da lógica do script. Para definir uma animação de salto no Unity, você precisará seguir estas etapas. Vamos preparar a animação de salto, você importa a animação, segue essas notas, configura seu animador, cria os parâmetros do animador Por exemplo, em novos parâmetros, você adiciona um booleano chamado es jumping e em condições de transição Você configura as transições no seu animador. Por exemplo, de marcha lenta e corrida para pular e de pular e marcha lenta para correr, você define uma condição para acionar quando está pulando e define uma condição para acionar quando salto é falso retornar Você modifica o script da seguinte maneira. OK. Por fim, basta dar uma olhada nas principais mudanças, parâmetro do animador de salto leste código adicionado para definir o parâmetro de salto leste para o estado verdadeiro quando o personagem pula e redefini-lo para o estado falso quando o O fluxo da animação, o script lida com a transição entre estados agora usando o controlador do animador, e você configura suas transições, ajustes e testes e 14. Detalhes da câmera virtual: configuração do Cinemachine: Olá, bem-vindo ao vídeo da câmera virtual. A câmera virtual é o que permite que o jogo acompanhe nosso jogador e é controlada pelo cérebro da cinemáquina, que está associado à câmera principal Vamos dar uma olhada rápida em nossas anotações. Você pode consultar essas notas do curso a qualquer momento. Vamos ver como configurar uma câmera virtual para seguir nosso player. Vamos, corretamente, na hierarquia hierárquica da câmera virtual cinemachine, criar uma como esta criar uma Vamos dar uma olhada em um minuto. Isso assumirá imediatamente o controle da câmera principal, que agora tem um componente cerebral da máquina cinematográfica, como segue Com essas configurações, verifique se a sua é semelhante e, se não, torne-a igual. Em seguida, vamos configurar nossa câmera com essas configurações. Certifique-se de que a rotação da transformação em X seja 25. O corpo está emoldurando um transponser com o objetivo de não fazer nada. Deslocamento do objeto atacado, você pode configurá-lo para dois a três no Y se quiser e experimentar o que funciona para você, esse valor aqui Vamos considerar a unidade interna. Então, vamos começar com a câmera principal, que tem esse ícone aqui, que é o cérebro da máquina cinematográfica Portanto, a câmera principal, como componente do cérebro da máquina cinematográfica com essas configurações, e a câmera virtual, certifique-se de atribuir o DZ player aqui com essas configurações, e a câmera virtual, certifique-se de atribuir o DZ Certifique-se de que você tenha a rotação em 25. Nada de especial antecipado no momento sobre as transições, nada de especial, mas muito importante O transpositor de enquadramento deve ser configurado para o corpo. Ajuste um pouco se quiser, ajuste um pouco, mas faça pequenas alterações se você ajustá-las, comece com minhas configurações e experimente a partir daí. Essa é uma questão importante. A que distância está a câmera cinco. Queríamos que estivesse por perto para que seguisse o jogador de perto. Se você não tiver o pacote cinemchine, você pode encontrá-lo gerenciador de pacotes do Windows e no registro do Unity, basta pesquisar C cinemchine desta forma e atualizá-lo assim Observe isso, a partir da visão 2.7 0.1, se você não conseguir encontrá-la, é porque foi movida para o menu de objetos do jogo. Consulte as notas do curso e anunciaremos as configurações da câmera posteriormente na série de tutoriais, mas, por enquanto, elas devem ajudar você a começar com uma câmera virtual que pode acompanhar Doozy Hum, 15. Explicação do roteiro de movimento do jogador (revisão: como funciona): Olá e bem-vindo de volta. A explicação do script de movimento do jogador. Vamos analisar como isso funciona neste momento do curso. Temos campos para velocidade, velocidade de rotação, velocidade de salto, período de carência do botão de salto. Não se apresse e leia as notas do curso seus downloads digitais ou em seu documento PDF. Temos variáveis privadas para animador, controlador de personagem, velocidade Y, deslocamento original do passo, hora do último solo e tempo de pressionamento do botão de salto Temos métodos para iniciar e atualizar. Na atualização, obtemos a entrada do player. Temos um vetor de direção de movimento. Verificamos se está em movimento. Definimos os parâmetros do animador, lidamos com a gravidade e os saltos Fazemos uma verificação do solo, fazemos o tratamento do ar, lidamos com a entrada de salto, ajustamos o deslocamento do degrau Fazemos o cálculo e a aplicação do movimento calculando a velocidade Em seguida, movemos o personagem e giramos o personagem. 16. Dicas extras e aprimoramentos: som/ajuda/encerramento/mixador de áudio/câmera: Ok, é hora de um vídeo rápido sobre o ponto de verificação do projeto para o Módulo 1.15 Então, aqui estamos no editor Unity. Se você seguiu as notas do curso para concluir o Módulo 1.15, seu projeto deve ter esta aparência Então, vamos dar uma olhada no doozy primeiro. E o doozy, você já deve ter o controlador do personagem de antes, o Você deveria ter adicionado uma fonte de áudio. Você deve ter ativado o play on awake para o volume em 0,5, a mistura espacial Vamos verificar se todas as suas configurações são semelhantes a essa. E podemos alterar a saída para o master de música ou para o mixer de efeitos sonoros opcionalmente, o que veremos Então, por exemplo, para os efeitos sonoros, podemos configurá-lo para SFX Desativamos o script de movimentação do jogador. Criamos um novo script chamado player movement three, copiamos as configurações de ano para ano e atribuímos um som de salto e um som de terra. Então, se olharmos nos scripts, deve haver três arquivos agora, três scripts, visão de movimento do jogador dois, o antigo, Visão três, o novo e também um script de gerenciamento de jogo. Analisando a Visão três, veremos que adicionamos campos e variáveis relacionados ao áudio. Portanto, compare com a Visão dois e certifique-se de que sua visão três tenha todas as atualizações necessárias acordo com as notas do curso. E vamos ver onde tocamos os sons, dependendo do que está acontecendo. Se está pulando ou não pulando. Ao testar o jogo, você deve ouvir um som de salto. Você pode não ouvir o som da aterrissagem. É só uma questão de tempo. Por exemplo, aqui, toque o som de salto com audiosurs dot play one shot jump Então, o que quer que você tenha atribuído ao som de salto, ele reproduzirá isso. OK. No gerenciador de jogos, outro script que você deve criar a partir das notas do curso e colar o código do disco nele, ele manipulará a interface de usuário pop-up do nosso help desk, esteja ela visível ou não, dependendo se o jogador está colocando a tecla H. Para jogos compilados, que veremos mais tarde, isso permitirá que você saia do jogo. Isso não funciona no editor e isso é normal. Mas ele vai procurar a tecla H e depois mostrar a ajuda ou não mostrar a ajuda. É um mecanismo de alternância, a chave para sair do jogo. Criamos um objeto de gerenciamento de jogo abaixo da hierarquia e atribuímos o script de gerenciamento de jogo a ele E a partir da tela que criamos, arrastamos o campo de suporte técnico Tela parecida com esta. Certifique-se de que ele se posicione como você deseja. Confira os valores de largura e altura na visualização da cena Se quiser facilitar o trabalho, você pode configurá-la para dois modos D. Clique em Canvas, clique duas vezes e você verá como arrastar esses botões para reajustá-los Agora, o campo de mesa está lá com esse texto que você terminou aqui. Agora estamos usando o componente de interface de usuário de texto Mesh Pro para criar esse campo. Dos pacotes que importamos, temos um mixer de áudio com um grupo master e música e SFX Também temos a música Little Samba, para fazê-la tocar no jogo, você a seleciona, arrasta para a música. Defina-o em 000. Certifique-se de que o clipe de áudio esteja aqui, certifique-se de que esteja reproduzido para a música, reproduza ao acordar, em loop, ajuste o volume para 0,3 e a mistura espacial para Você pode experimentar com isso. Você verá esse gráfico indicar a distância máxima em que ele será ouvido. 17. Crie um jogo standalone compilado: introdução rápida: Olá e bem-vindo de volta. Neste módulo, faremos uma rápida introdução veremos como criar um jogo autônomo compilado Criar um jogo independente no Unity para Windows ou Mac é um processo simples Basta seguir estas etapas nas notas do curso para obter seu executável Você abre as configurações criadas, seleciona sua plataforma, adiciona cenas abertas. Você pode descobrir as opções criadas, o que é opcional, e criar o jogo. Aqui está um exemplo de captura de tela que mostra como construímos nossa floresta antiga a partir de nossa pasta Scenes para a plataforma Windows, clique no botão de criação de 64 bits e espere que ela seja construída Se não houver erros, você terá seu executável completo pronto para distribuição e protopia é criar uma pasta como essa, compilar sob a pasta principal do projeto e, em seguida, distribuí-la ou compactá-la e distribuí-la ou compactá-la e distribuí-la Como precaução, certifique-se ter também um backup do seu projeto antes de continuar fazendo alterações enquanto trabalha. 18. Visão geral do script do Game Manager - como funciona: Olá, bem-vindo a este módulo, o script do gerenciador de jogos. O script do gerenciador de jogos é uma parte importante do jogo Unity porque ajuda a gerenciar diferentes aspectos do jogo que não estão diretamente vinculados a um personagem ou objeto específico. Neste exemplo, o gerente do jogo controla coisas como mostrar mensagens de ajuda ou sair do jogo Se você ainda não tem o código-fonte , você pode encontrá-lo aqui. Basta criar um objeto vazio chamado Game Manager na cena e anexar esse código a ele. Alguns conceitos-chave do gerenciador de jogos ele tem variáveis públicas e privadas, conforme mostrado nessas notas, pegue suas anotações e leia. Neste exemplo, a tecla H é pressionada para ativar e desativar o suporte técnico, ela tem uma função de sair do jogo e um método de atualização Como isso funciona em conjunto, podemos mostrar em seu helpdesk. Quando o usuário pressiona o H, o jogo verifica se o helpdesk está visível ou Se não estiver visível, o texto aparecerá na tela. Se estiver visível, o texto desaparecerá. Isso dá ao jogador o controle sobre se ele vê o helpdesk ou não Em um jogo construído, quando eles pressionam o QKE, o jogo será encerrado Por que é importante ter um gerente de jogo? O script do gerenciador de jogos centraliza o controle sobre funções importantes do jogo, tornando seu código mais organizado e fácil de gerenciar Em vez de ter essas funções espalhadas por scripts diferentes, você pode lidar com todas elas em um só Isso torna mais fácil atualizar, desembarcar e expandir seu jogo à medida que ele cresce Ao entender como o script do gerenciador de jogos funciona, você pode começar a ver como diferentes partes do jogo se unem para criar uma experiência coesa para o À medida que você cria mais recursos, seu gerente de jogo pode ser expandido para lidar ainda mais com a lógica e os controles do jogo. 19. Tutorial 2: introdução: Olá e bem-vindo ao Tutorial Número Dois do Unity, onde Doozy aprende a colecionar coelhinhos Neste tutorial, estamos usando um coelho como exemplo, mas você pode usar qualquer criatura, talvez até mesmo uma que tenha criado se tiver três habilidades D no Blender, ou se houver muitos ativos gratuitos que você pode obter na Unity Asset Store Então, só como introdução, quando Doozy se depara com um coelho, tocaremos um som divertido e mostraremos uma animação bacana para pareça gratificante, mas isso não Também apresentaremos um sistema de diálogo básico em que Doozy conversa com uma personagem amigável chamada Além disso, Doozy não estará sozinho nessa aventura. Ele terá uma companheira, uma raposa que o segue, e mais tarde transformaremos uma raposa em inimiga e aprenderemos como criar um menu de fim de jogo com botões de sair e tentar novamente Manteremos a pontuação das coisas e até teremos um cronômetro de contagem regressiva para que, se o tempo acabar, o jogo terminará. 20. Tutorial 2: visão geral de tópicos: Então, aqui está uma visão geral dos tópicos do Tutorial dois. Você pode usá-lo como uma lista de verificação para ver se aprendeu a fazer todas essas coisas, como configurar um item de personagem de teste na cena doozy Dragon drop the FBX model, como um coelho pré-fabricado ou sua própria criatura cena doozy Dragon drop the FBX model, como um coelho pré-fabricado Sempre começaremos com um arquivo FBX e, em seguida, criaremos um arquivo FBX e, em seguida, criaremos prefab, geralmente na pasta Assets prefabs Podemos criar uma interface de usuário para a pontuação. As instruções serão dadas posteriormente no curso. Podemos criar um gerenciador de pontuação de objetos vazio na cena. Gerenciaremos a lógica de coleta e pontuação com um script C nítido personalizado, ao qual forneceremos o código para garantir que você também tenha um objeto de jogo para gerente de jogo do Tutorial 1, caso não tenha o script de gerenciamento de jogo anexado Configure uma configuração animada de loop ocioso para que seu item seja Nesse caso, uma criatura. Você escreverá o roteiro de coleta do item e preparará os pré-fabricados para serem retirados Aprenda a criar coelhos em locais aleatórios ao redor de um jogador de tamanhos variados, criar um diálogo com um personagem NPC amigável, um personagem não jogável ou uma IA que está parada Doozy ganha uma companheira raposa que o segue. Os detalhes serão fornecidos e o código. A raposa então se torna um inimigo que pode atacar Doozy Isso não é bom, a menos que você queira ser inimigo. Dusi ganha uma barra de saúde e agora pode se machucar. Aprendemos sobre as condições de fim de jogo, incluindo um cronômetro de inatividade do C, novas tentativas e muito mais, aprendemos como solucionar bugs do script C e dois exemplos básicos para aprender sobre a 21. Configuração de animação de captura do jogador: Vamos revisar nossas notas do curso para saber como podemos começar a criar uma configuração de animação de captação de jogadores Começaremos obtendo um clipe de animação de captação adequado do Mixmo Vamos pesquisar a palavra take na guia de animação do personagem Doozy Certifique-se de primeiro focar na aba do personagem, pesquisar por Doozy e depois pesquisar por T. Vamos usar aquela chamada pegar um item no Blue Man Lembre-se de definir o personagem como doozy, como eu disse, você vai baixar o arquivo FBX sem uma skin desta vez, já que anteriormente baixamos Doozy com a skin já que anteriormente baixamos Doozy Aqui está uma captura de tela para ajudá-lo. É assim que ele se parece quando está pegando um item. Certifique-se de posicionar as mesmas configurações. Vamos usar isso para atualizar animações doozy com uma animação de captação adequada Ele virá como item de captura do personagem 19, não PVR, que usaremos para Doozy Mostraremos como atualizar essa lógica de animação posteriormente neste tutorial. Por enquanto, basta baixá-lo, importá-lo e colocá-lo sob seu personagem de ativos Doozy Se essa pasta não existir, crie-a. 22. Crie um sistema de coleta de itens: detalhes: Olá, e bem-vindo de volta. No Módulo 2.2, continuaremos com os detalhes da criação de um sistema de coleta Para criar um sistema de captação que possa aceitar qualquer material pré-fabricado, como uma minhoca, um coelho, uma borboleta ou assim por diante, destrua o objeto após a conclusão da animação de captação, atualize a partitura e reproduza um som atualize Vamos seguir essas etapas. Vou destacar as etapas importantes a serem tomadas, mas você precisa se apressar e ler do curso e usar as notas e as capturas de tela configuradas da seguinte forma Depois de escolhermos uma criatura, em nosso exemplo aqui estamos usando um coelho, vamos colocar esse pré-fabricado em cena Se ainda não temos um pré-fabricado, você pode encontrar um aqui neste link Nas notas do curso, basta acessar esta seção, clicar neste link e usar um dos três caracteres se não quiser comprar Devani Neste exemplo, acesse Asset Stylized Rabbits prefab e coloque Vamos redimensioná-lo 20,25 0,25 0,25. E vamos modificar seu controlador de animador para que ele faça transição entre essas duas animações ociosas usando o tempo de saída Então, para fazer isso, clique duas vezes no controlador. Se você não tiver um controlador, crie um chamado assim e atribua-o aqui no animador Se você não tiver um componente animador, basta adicionar um. Então, aqui estamos vendo o animador do coelho, fazendo a transição entre inativo e inativo para frente e para trás, conforme mostrado aqui, a velocidade de um , e cada um desses clipes deve e cada um desses Então, leia essas notas aqui. Examinaremos brevemente alguns itens importantes. Então, teremos que garantir que cada uma de suas criaturas tenha um colisor no pré-fabricado para que o jogador possa interagir com No nosso caso, usamos a esfera com um gatilho ativado. Definimos o centro Y 0,75 com um raio de um para garantir que ele possa ser facilmente detectado pelo jogador e garantir que ele se encaixe perfeitamente em Não se esqueça de marcar a caixa Estigger Adicionar um componente animador se você não Usamos o existente e o modificamos. Você pode adicionar um script de coleta de itens, que você escreverá. Há um exemplo de script fornecido abaixo. Armazene todos os seus scripts na pasta de ativos sob a subpasta scripts Crie uma interface de usuário para a pontuação. Então, agora você já deve ter uma tela. Vamos clicar com o botão direito do mouse nela, criar uma nova tela de interface de usuário, se você não tiver uma, caso contrário, como eu disse, use a existente. Então, vamos criar um novo elemento de texto seguindo essas etapas, mas você quer ter certeza de que tem o pacote TextMSHP instalado para poder usar o recurso de texto da interface do usuário, TextMSHP, que é um texto mais rico que você pode formatar pode Renomeie esse elemento de texto para pontuar o texto e substituir o texto chamado pontuação de dois Posicione na parte superior da tela e personalize o tamanho da fonte, cor e assim por diante, de acordo com sua preferência A propósito, você pode usar um shift e Okey para posicioná-lo e centralizá-lo ao mesmo tempo Você verá isso no editor Unity. Em seguida, escrevemos o script de coleta. Aqui está um exemplo, ponto de coleta de item Cs para C shop Script. Aqui estão mais alguns detalhes para configurar o jogador para reproduzir uma animação de coleta ao coletar um item Portanto, temos que preparar o animador do jogador da seguinte forma. Siga estas etapas, mas adicionaremos um clipe de animação de item como este. Você pode simplesmente clicar com o botão direito do mouse para criá-lo e renomeá-lo. Queremos definir a velocidade de três, para que ela toque um pouco mais rápido. Caso contrário, demorará muito para Dozi pegar alguma coisa Então, quando você o traz do Miximo, este é o clipe do item de captura que baixamos anteriormente Você pode simplesmente arrastá-lo para o Dozi ou criá-lo manualmente aqui Você também precisa criar um gatilho chamado pickup no animador Então, aqui nos parâmetros, vamos criar um novo. Também vou renomear o estado do item a ser retirado. Isso é opcional, mas recomendado. Renomeie o estado de inatividade sonolenta para respiração ociosa, novamente, opcional, mas recomendado Vamos configurar todas as transições entre todos os diferentes estados, garantindo que você use as condições quando for relevante e o tempo de saída do salto de volta para o modo inativo, por exemplo, consulte suas Não se esqueça de criar um parâmetro de captação. E agora temos o estado de captação aqui, e fazemos a transição entre respirar ociosamente para pegar e voltar, e também enquanto corremos, podemos pegar um coelho ou Preste atenção nas caixas vermelhas. Certifique-se de configurar conforme mostrado usando uma condição. Nesse caso, a linha azul aqui é essa. Recolha, a transição, não com base no horário de saída, com base na condição de coleta Ah, são mais detalhes para lembrá-lo de definir a velocidade para três. Então, em resumo, vamos dar uma olhada. Para transições, use o parâmetro de gatilho de captação que criamos Usamos uma condição de captação para fazer a transição do estado de respiração ociosa ou de funcionamento para o estado de captação Em seguida, use o tempo de saída para aguardar a conclusão do clipe de animação de captação. I E, o clipe de movimento do item de captura, conclua o resto das transições conforme mostrado, caso não tenha feito Não se preocupe com isso ainda. Vamos adicioná-lo mais tarde. Você pode ignorar a reação em pé, como eu disse, e não se esqueça de que a velocidade deve ser três ali. Agora vamos criar um script de coleta para sua criatura em nosso caso, o coelho Você também pode seguir este link notas do curso se quiser encontrar um coelho grátis alternativo ou outras criaturas semelhantes Realmente não importa o que você usa como picape, mas é bom usar algo que envolva pelo menos alguma animação para que você possa praticar isso Aqui está Bani, criamos um novo script aqui chamado script de coleta de itens com um código fornecido Garantimos que o Bani prefab seja arrastado para cá, que o som de captação do item seja arrastado para Se você fizer alguma alteração na cena, não se esqueça de ir até Overts e se inscrever porque mais tarde entraremos em desova de coelhinhos e eles precisam ser Então, em resumo, vamos atribuir o pré-fabricado para o coelho no Também o som de captação. anexar o script CS de coleta do item Se você anexá-lo à instância do coelho na cena, tudo bem Você deve se inscrever abertamente. Isso é importante, pois queremos usar o pré-fabricado do coelho durante a Certifique-se de que seu coelho tenha um colisor de esferas com o Etigger ativado e ajuste-o para caber bem ao redor dele Aqui estão algumas configurações que testamos. Raio um, centro Y igual a 0,75, mas ajuste conforme necessário se você usar uma criatura diferente Isso é o que você quer ver bem perto dele. Com o gatilho Es ativado nas configurações, aqui estão alguns detalhes sobre o script e o código-fonte para retirada do item Lembre-se de que ele deve ser anexado ao pré-fabricado da criatura ou coelho que Além disso, não se esqueça muito importante de marcar seu jogador como jogador, caso ainda não tenha feito isso. Encontre Doozy e marque-o como jogador. Se uma tag não estiver disponível, você poderá criar uma nova tag e atribuí-la. Além disso, só para ressaltar isso, você receberá um erro e um script de coleta de itens até criar o script do gerenciador de pontuação pois eles se comunicam entre si e verificam suas anotações Há instruções para o gerenciador de pontuação aqui. Aqui está o script de coleta do item. Você pode usar o botão de cópia enquanto abre suas anotações. E cole-o no Visual Studio substituindo o código padrão que é criado. Resumindo, teremos a seguinte configuração. Vamos usar este, o item pré-fabricado, para arrastar o item pré-fabricado para o inspetor, como o coelho Vamos ter uma para o som, uma referência ao animador do jogador, uma referência ao animador do jogador, supondo que o jogador seja um tag player no método start, vamos buscá-la Encontramos um objeto com o tag player. É por isso que você tem que marcá-lo. Em seguida, verificaremos com o gatilho Enter quando for a hora de executar a lógica de captação Vamos reproduzir a animação de captação no player usando o gatilho de definição de pontos do animador do jogador para pegar Esse é o parâmetro que criamos. Vamos reproduzir um som de captação que atribuímos usando a fonte de áudio Em seguida, vamos ativar o visual do item e o colisor. Portanto, isso é usado com o renderizador habilitado para false na unidade. Vou iniciar uma co-rotina para esperar que a animação de captação termine E uma rotina de carro é configurada com um enumerador de palavras-chave I. Aguarde até que a animação de captação termine. Então, aqui vamos esperar até que comece. Usando essa coleta de parâmetros, aguardamos o próximo quadro, esperamos até que a animação de captação termine e a duração seja tão longa quanto o clipe, então isso é muito inteligente Vamos verificar se o gerenciador de pontuação está disponível no jogo e, se estiver, podemos atualizar nossa pontuação. E se não for, mostraremos um erro no console. Se você receber essa mensagem, verifique as notas da configuração do gerenciador de pontuação no curso. Então, vamos analisar como funciona a coleta de itens. O script é chamado item pickup dot cs. Ele controla a habilidade do jogador de pegar itens no jogo. E aqui está um resumo. Não vou lê-lo exatamente, mas há referências. O script faz referência a um item pré-fabricado, um som de captação e ao animador do jogador que controla a animação do jogador, lembre-se de atribuí-los lembre-se Lembre-se de considerar seu jogador como jogador. Quando o jogador colide com o item ao entrar nessa zona de gatilho, I E que xinga ao redor do coelho, o script verifica se o item já foi retirado e, se não estiver, aciona É aí que você coloca seu pré-fabricado para o corpo, é aí que você coloca seu som Isso explica a reprodução do som da animação quando ele é desativado e aguarda a animação. 23. Pontuação de atualização e interface do usuário (UI): Olá e bem-vindo de volta. Nesta seção, atualizaremos a pontuação e a interface do usuário, criaremos e modificaremos script do gerenciador de pontuação para lidar com a pontuação, e é assim que você pode acompanhar e exibir a pontuação. Primeiro, você criará um objeto vazio e o renomeará para gerenciador de pontuação em uma hierarquia O script também é chamado de gerenciador de pontuação dot cs e anexado ao objeto do jogo Gerenciador de pontuação na hierarquia, que é exatamente aquele objeto vazio renomeado Se você receber esse erro, em laranja. Isso significa apenas que você esqueceu atualizar a versão três do movimento do jogador ou esqueceu de desativar a versão dois do movimento do jogador Se você ainda não fez isso, desative isso, desmarque a caixa da versão dois de movimento do jogador e crie um novo script de movimento do jogador versão três, transfira as configurações no inspetor da versão dois de movimento do jogador para a versão três do movimento do e certifique-se de que a atualização inclua todas as referências necessárias para o script funcionar E se você quiser ver o código, vamos dar uma olhada neste link ou consultar a nota do curso e clicar neste link. Então, depois de clicar neste link, você acessará a referência do script, revisão final dos scripts, o jogador e a pontuação, e usaremos o movimento do jogador e visão três com o seguinte código neste momento do curso. Descompare seu código ou use o botão de cópia enquanto abre suas notas e substitua todo o código de movimentação do jogador pelo código abaixo Além disso, certifique-se de codificar para o gerenciador de pontuação da seguinte maneira. Algumas notas sobre o gerenciador de pontuação. É usado para acompanhar a pontuação do jogador e o cronômetro do Portanto, ele usa um padrão Singleton. O script usa algo chamado padrão Singleton para garantir que haja apenas um gerenciador de quadrados no jogo, e isso ajuda a manter tudo organizado e evitar Número dois, a pontuação e a exibição do cronômetro, o script acompanha a pontuação do jogador e o tempo restante Ele atualiza uma pontuação e um cronômetro na tela usando a GUI de texto Mesh Pro U, que é uma ferramenta para exibir texto e unidade e requer um pacote text mesh Pro Consulte o início do curso se você ainda não o instalou e, em seguida, instale um pacote para poder usar a funcionalidade TextMSHP OK. Lógica de fim de jogo, número três. Quando o cronômetro chegar a zero, o jogo terminará. O roteiro mostra um pop-up de fim de jogo, que configuraremos posteriormente para informar ao jogador que o jogo terminou, tente novamente e saia. Se o jogador quiser repetir o jogo, o script redefine a pontuação, o cronômetro e a posição do jogador e recarrega Também é um botão para sair do jogo, que só funciona para jogos construídos. Portanto, em resumo, o script ajuda a gerenciar a jogabilidade geral, acompanhando a pontuação, cronometrando o jogo e lidando com situações de fim de jogo. Não se preocupe se você ainda não tiver o pop-up, o fim de jogo ou os botões, eles aparecerão à medida que avançarmos no curso. 24. Configuração adicional no Unity, incluindo Player Animator e UI: Vamos continuar com algumas configurações adicionais no Unity, incluindo o animador do player e a atualização da interface do usuário para a pontuação Apenas como um lembrete, se você não marcou seu jogador como jogador, faça isso agora e atribua a tag ao inspetor enquanto seleciona seu Isso é para que o método de gatilho funcione corretamente. Vamos configurar a interface do usuário, vamos criar um texto mas pro GUI, um elemento para exibir a pontuação Recomendamos que você faça isso em seu Canvas existente e você pode configurá-lo para dois modos D para facilitar a visualização do que você está fazendo enquanto trabalha na tela e depois voltar para o modo três D quando terminar. Apenas como um lembrete, instale o text mes Pro, se você ainda não o fez, siga as etapas nestas notas do curso Vamos criar uma tela se não tivermos uma. Caso contrário, usaremos o existente dessa forma. Agora, em unidade, crie um elemento UGUI do TeXMSP Seguindo essas etapas, conecte corretamente o Canvas em uma hierarquia e vá para interface do usuário. O TexMSPT criará o elemento para você sob o Vamos configurá-lo. A primeira coisa que queremos fazer é renomeá-lo para marcar o texto TMP, conforme a nota verde aqui Depois, você pode personalizar as propriedades do texto como quiser. Por enquanto, vamos definir o valor inicial para marcar dois pontos zero e você faz isso na janela de entrada do inspetor enquanto ele é selecionado depois de renomeá-lo selecionado depois de renomeá-lo Você pode escolher a fonte que quiser, alinhar, sugerir que você a coloque no centro, na parte superior no meio da tela para acompanhar o curso Você pode mudar a cor se quiser. Você pode seguir estas instruções e capturar a tela se quiser fazer exatamente o que fizemos Pontue o texto TMP, coloque-o na camada de interface do usuário na parte superior central com esses valores de largura, altura e âncora e defina o valor padrão para marcar dois pontos zero Em seguida, vamos atribuí-lo ao campo de texto de pontuação do gerenciador de pontuação no inspetor. Aí está o nosso Canvas. Há o elemento que criamos em nosso gerenciador de pontuação, que você deve ter como um objeto vazio, renomeado como gerenciador de pontuação com um script de gerenciamento de pontuação anexado conforme as notas anteriores do curso Agora vamos arrastar texto da partitura para esse campo aqui. Também vamos revisar e verificar a configuração do animador do player Dos, ele precisará de um gatilho chamado pickup em seu controlador de animador que esteja vinculado à animação do captador Ele deve ter configurações de transição adequadas. Vamos analisar esse nó juntos Configurar o animador do jogador para lidar com uma animação de captação envolve configurar o controlador do animador no Unity para usar o gatilho de captação e configurar as transições Abaixo estão instruções detalhadas para ajudá-lo a configurar isso se você não tiver certeza Vamos configurar o gatilho no animador. Podemos abrir a janela do animador. Se você não conseguir encontrá-lo, basta encontrar o Doozy e clicar no controlador do animador para Abra a janela do animador e selecione o objeto do jogo do jogador Controlador animador do componente animador. Isso abrirá a janela do animador. Se você não adicionou o parâmetro de gatilho, faça isso agora seguindo os nós aqui, nomeie o gatilho como captador, e isso funcionará como um sinal para dizer ao animador que reproduza a animação de captação quando ela for Se você ainda não tem um clipe de animação de captação do MixiMog, compre um e traga-o Na configuração da transição, você criará transições da marcha lenta e do movimento para a coleta Você clicará com o botão direito do mouse no estado de movimento ocioso na janela do animador e selecionará fazer transição Você clicará no estado da animação de captação para criar uma transição do estado atual para a animação de captação e também de captação para inatividade Clique com o botão direito do mouse no estado de animação de captação e selecione fazer uma transição, conecte-a novamente ao estado de movimento dl ou qualquer estado de animação apropriado após a captura, se você estiver fazendo algo um pouco diferente Configure as condições de transição. Clique na seta de transição que leva ao estado da animação de captação na janela do inspetor com uma seta de transição selecionada sob condições clique no botão de adição Defina a condição para coleta. Esse é o gatilho que você criou anteriormente. Isso significa que quando o gatilho de captação for ativado, o animador fará a transição para a animação de captação Você pode desativar a saída para este. Ele só será iniciado quando o gatilho for ativado e não automaticamente após um tempo definido. Para fazer a transição de volta, clique na seta de transição que vai do estado de animação de captação de volta ao estado de inatividade ou movimento, desta vez ela tem hora de saída, e isso permitirá que o jogador retorne ao estado desta vez ela tem hora de saída, de inatividade ou movimento, como se estivesse correndo após a conclusão correndo É testar isso acionando a animação de coleta em seu script de coleta chamada coleta de itens O comando que realmente faz isso é um set trigger animado. Pickup é o nome do parâmetro quando um jogador pega um item Isso ativará o gatilho e iniciará a animação de captação no player, e esse script será fornecido a você anteriormente Se você perder isso, volte ao curso e pegue isso, configure-o. Esse é o player animador que definiu o comando trigger, pickup nesse script Encontre esses comandos em seu script e entenda quando e como eles funcionam. Teste em jogo. Quando Doozy interage com um item como o coelho, o gatilho da coleta deve ser ativado, fazendo com que a animação da coleta fazendo com que a animação da Depois de concluído, o animador deve retornar ao estado de inatividade ou a um estado de movimento como em execução, porque ele tem tempo de execução Recapitulando a configuração do gatilho, adicionaremos o gatilho de captação no controle do animador Nas transições da animação, você configura transições do modo inativo e do movimento. Para a animação de captação usando o gatilho de captação e o movimento de volta ao ferro após a animação concluir as condições, certifique-se de que as transições sejam acionadas pelo gatilho de captação e definidas para o horário de saída apropriado para retornar ao Testando a animação do captador no modo play, acionando o captador em seu script, tente pegar Isso garante que o personagem do jogador entre e saia adequadamente da animação de captação ao interagir com os itens E sua configuração deve ser semelhante a essa, com transições da função respiratória para a captação e vice-versa e da execução. Em seguida, vamos revisar e verificar a configuração da criatura do item, no nosso caso, o Certifique-se de que o prefabricado dessa criatura, no nosso caso, o coelho, tenha um script de coleta, então temos que anexar o script de coleta do item a cada item Atribua o som de captação, atribua o pré-fabricado, o Não use o da cena para arrastar até o slot aqui. Use aquele em ativos prefabricados. Se você não tiver um prefabs, arraste o da cena para a e, a partir da pasta prefabs, arraste-o para o item de campo prefab que criamos Atribua o som de captação. Também forneceremos alguns recursos para sons, mas sinta-se à vontade para usar os seus próprios. Colisores e gatilhos. Certifique-se de que o item tenha um colisor de esferas configurado para ser acionado. Conforme este exemplo, o método trigger enter pode ser chamado quando o jogador colide com o Teste uma configuração e faça qualquer depuração. Você colocará manualmente alguns coelhos ou criaturas da pasta pré-fabricada manualmente na cena, arrastando-os e posicionando-os no chão posicionando-os no Comece com cerca de três a cinco deles ao redor do jogador para testar. Não os coloque muito longe. Posteriormente, removeremos esses colocados manualmente ou os geraremos automaticamente Isso permitirá que o jogador acione a animação de captação ao coletá-las e a desative após a conclusão da animação Apenas um lembrete: se você fizer alterações no pré-fabricado Bunny, certifique-se de que todas as substituições sejam salvas ou, em vez disso, faça alterações diretamente no pré-fabricado. Uma nota de deboche aqui Se o clipe de animação animação do item capturado que você baixou do MixMo estiver em loop, vamos desativar esse tempo de loop ou verificar se as transições Você pode ter um horário de execução em vez de usar o gatilho de captação Você deve usar o gatilho do modo inativo para o funcionamento, por exemplo, mas não do running back para o pickup Aqui, você quer ter tempo de execução para permitir que o clipe seja concluído Da mesma forma, você deseja que a condição do gatilho de coleta passe de inativa para retirada sem próxima vez Mas então, para voltar ao modo inativo, você quer usar a próxima vez É muito fácil quando você vê como funciona e não se preocupe se cometer um erro, experimente e consulte as anotações do curso. É aqui que você ativa ou desativa o horário de saída. É aqui que a transição acontece e tudo você tem a dizer em sua mente é preciso de uma condição ou preciso esperar que o clipe termine? Se eu precisar esperar que o clipe termine, use o horário de saída. Se eu quiser usar uma condição, use um parâmetro como pickup. Agora vamos dar uma olhada mais de perto nos detalhes do animador. Lembre-se de que precisamos de um novo estado para coleta. Podemos usar nosso clipe do Mixamo pegando um item com a velocidade de três para fazer parecer que ele faz isso rapidamente Observe seu console para confirmar as mensagens de estreia no código fornecido e confirme se sua pontuação está realmente atualizando o estado de Pena a ser coletado. Marque atualizando o estado de Pena a ser coletado o gatilho como coleta na guia de parâmetros aqui Eles devem ser escritos exatamente da mesma forma aqui e no código Neste exemplo, colocamos cinco coelhinhos na cena manualmente Mais tarde, nós os geraremos. Temos nossa pontuação com um valor padrão de zero. Se você está vendo a configuração do coelho agora, notamos que sua escala é 0,25 Ele tem seu animador com seu controlador. Ele tem o script de coleta de itens com uma versão pré-fabricada do coelho atribuído aqui e o som, o colisor de lança 25. Gerar coelhos em torno de jogador com roteiro de spawner em vez de posicionamento manual: Olá, e bem-vindo de volta. Agora que temos alguns coelhos na cena que colocamos manualmente, vamos ver se podemos tornar isso um pouco mais inteligente Vamos examinar as notas do curso juntos e você poderá acompanhar suas próprias anotações do curso. Vou citar alguns detalhes importantes para que isso funcione. Para melhorar a colocação de nossos coelhinhos em cena, aprenderemos sobre a geração e a instanciação de objetos instanciação instanciação significa que normalmente usa um prefab para colocar um prefab ou modelo ou qualquer outro objeto Nesse caso, um coelho entra em cena em locais aleatórios, geralmente, mas também em locais específicos, se você quiser No nosso caso, vamos usar uma localização aleatória. Vamos fazer com que o coelho seja gerado ao redor do jogador e, em breve, ao analisarmos este exemplo, você verá como isso é feito Vamos escrever um script de spans para nos ajudar e, opcionalmente, desativaremos opcionalmente, desativaremos os coelhinhos manuais que colocamos na cena, mas você pode deixá-los lá se quiser, sem precisar O ano do protótipo diz: vamos selecionar o coelho em uma cena e garantir que aplicemos substituições ao pré-fabricado para tornar as alterações permanentes vamos selecionar o coelho em uma cena e garantir que aplicemos as substituições ao pré-fabricado para tornar as alterações permanentes. Portanto, isso é importante porque quando você usa instanciação ou geração, ele basicamente clona o prefab e, portanto, tudo o que o prefab contém precisa ser idêntico Isso não significa que você não possa ter tamanhos aleatórios, como veremos, nós temos, mas o prefab básico tem as mesmas configurações Se você fez alguma alteração no coelho em seu pecado ou na criatura em seu pecado, certifique-se de aplicar as opções abertas. Se você não ver nenhum sinal, estamos prontos para continuar. Então encontre um coelho. Certifique-se de que ele já tenha um pré-fabricado. Caso contrário, arraste-o para a pasta acid prefabs e, se você fizer alterações após esse ponto, trabalhe diretamente no prefab ou aplique-o Por exemplo, se você alterar a escala para 0,35 0,35 0,35, precisará aplicar os prefabs, as alterações nos prefabs precisará aplicar os prefabs, as alterações nos prefabs. Para configurar isso, podemos ter um script chamado NPC Spawner version one, e esse script deve ser anexado a objeto de jogo vazio que vamos renomear como gerenciador de spawn Basta clicar com o botão direito do mouse para criar um objeto vazio, renomeá-lo para gerenciador de spawn e, em seguida, anexar o script NPC spawner Version one a esse objeto gerenciador de spawn na hierarquia da cena, e você pode salvar seu script normalmente nos e você pode salvar seu script renomeá-lo para gerenciador de spawn e, em seguida, anexar o script NPC spawner Version one a esse objeto gerenciador de spawn na hierarquia da cena, e você pode salvar seu script normalmente nos scripts de ativos. Vamos abri-lo no Visual Studio, clicar duas vezes nele e substituir todo o conteúdo do código pelo código abaixo. Aqui está o código para o script do NPC spawner. Você pode usar o botão de cópia com as notas do curso abertas e destacaremos brevemente algumas de suas funcionalidades. Temos uma variedade de prefabs NPC, o que significa que o script é capaz de gerar diferentes tipos de prefabs Temos uma camada de solo que vamos atribuir. Temos uma referência ao jogador que saibamos onde ele está. Temos a distância mínima e máxima ao redor do player e você pode configurá-la conforme necessário. Então, temos a contagem mínima e máxima. E temos uma variação de tamanho como uma porcentagem de quão grande eles deveriam variar para que tenham alguma variedade de tamanho . Para evitar que apareçam um em cima do outro, temos a distância mínima entre os NPCs temos a distância mínima entre os Também acompanhamos os objetos gerados com uma lista como essa Então, em nosso método start, chamamos o método spawn NPC Em nosso método de atualização, chamamos o método handle spawn. É sempre bom usar submétodos em seu método principal de inicialização e atualização para que eles não fiquem muito confusos. Aqui, estamos dando uma olhada na geração de NPCs. Usando quatro voltas, ele alcançará a desova e colocará essa função, a função de instanciação usando esse NPC pré-fabricado em uma posição de desova no alcance aleatório do quatérnio de Euler ao uma posição de desova ele alcançará a desova e colocará essa função, a função de instanciação usando esse NPC pré-fabricado em uma posição de desova no alcance aleatório do quatérnio de Euler ao redor do jogador. Isso adicionará um à lista de NPCs gerados. Nós os reapareceremos se estiverem muito longe do jogador. Isso segue este código. Em seguida, temos que procurar uma posição de spawn válida com base nas restrições Vamos tentar 50 vezes encontrar uma posição de spawn válida Verifique se há NPCs próximos, veja se está muito perto ou não E veremos a explicação do roteiro a seguir. É aqui que você atribui seus pré-fabricados para coelhinhos. Se você precisar adicionar mais ou diferentes coelhinhos, como veremos mais adiante, um branco, por exemplo, você pode usar o botão de adição para adicionar um diferente Criamos uma camada de solo e a atribuímos aqui, atribuímos um jogador aqui e você pode usar esses controles deslizantes ou inserir os valores para ajustar os parâmetros que estamos usando neste script Uma explicação rápida desse script. O script gera NPCs ao redor do jogador e gerencia seu ciclo de vida, incluindo o renascimento se eles se afastarem Portanto, a geração dos NPCs, o método spawn NPCs, gera um número aleatório de NPCs entre a contagem mínima de spawn e a contagem máxima de span. Ele calcula uma posição de spawn válida perto do jogador usando o método Get valid span position Um prefab é então instanciado na posição de desova com ajustes aleatórios de tamanho controlados pelo valor da variação de tamanho e rotação aleatória do Os NPCs de desova são adicionados à lista de NPCs de geração para acompanhar quantos E para lidar com o respawn, usamos o método handle respawn, verificamos a distância de cada NPC do jogador e, se a distância exceder a distância máxima de desova, o NPC é destruído ou usamos o método handle respawn, verificamos a distância de cada NPC do jogador e, se a distância exceder a distância máxima de desova, o NPC é destruído ou desativado e removido da lista. Um novo NPC é então gerado em uma posição válida para substituir o D 0.1. Tudo isso é apenas para ajudar a otimizar o desempenho do jogo. Validação da posição de desova, podemos obter uma posição de desova válida que garante que os NPCs sejam colocados na camada terrestre que criamos e que não apareçam muito próximos outros ou em cima uns dos outros O método tenta encontrar uma posição de desova válida 50 vezes e, se for bem-sucedido, ele retornará a posição de desova Caso contrário, ele apenas retorna um vetor de três pontos zero. Randomização, o script randomiza os tamanhos e rotações dos NPCs para adicionar alguma variedade ao Lembre-se de anexar o script ao objeto gerenciador de spawn que você criou e definir a camada de solo do NPC prefabs e a referência do jogador no inspetor Aqui está uma dica de depuração. Você pode adicionar essa instrução debug dot log se quiser ver como ela está funcionando ou não que pode ajudá-lo na solução de problemas Atribua as referências para o gerador. Memória, vamos mudar essa camada do solo. Temos que designar o jogador e preencher os pré-fabricados, no nosso caso, o coelho, como vimos no nosso caso, o coelho, como Então, vamos criar uma nova camada chamada solo e atribuí-la ao menu suspenso da camada de solo ali mesmo. Vamos encontrar um objeto de chuva na cena e colocá-lo no chão também. Vamos arrastar o coelho pré-fabricado para baixo dos pré-fabricados do NPC ou usar o botão de adição Novamente, observe os controles deslizantes que você pode usar para personalizar o gerador. A variação de tamanho fará com que algumas distâncias mínimas e máximas de desova pequenas e outras grandes sejam ajustadas também com os controles deslizantes ou valores e, por último, você arraste o jogador I E doozy player para o slot do jogador. Agora, seu gerenciador de spawn totalmente pronto para desovar ficará assim . É uma pequena nota. Se você criar um objeto gerenciador de spawn que realmente não faz nada além de conter o script, você pode defini-lo como zero, zero, zero, apenas como um item de limpeza Em seguida, vamos testar e depurar o jogo para ver quantos coelhinhos patrocinam o jogador Com base nas escolhas que você fez acima, você pode tentar pegá-los e confirmar se a confirmar Se você não conseguir pegá-los, aqui estão algumas coisas que você provavelmente esqueceu Ou não atualizou todos os scripts, você não aplicou substituições ao coelhinho pré-fabricado ou pré-fabricado, esqueceu de configurar um colisor de esferas ou, se o fez, pode ter esquecido o gatilho ou ele é muito pequeno, esqueceu de considerar o você não aplicou substituições ao coelhinho pré-fabricado ou pré-fabricado, esqueceu de configurar um colisor de esferas ou, se o fez, pode ter esquecido o gatilho ou ele é muito pequeno, esqueceu de considerar o jogador como jogador. Verifique todas essas coisas e verifique se há mensagens e avisos relevantes no console mensagens e avisos relevantes E só uma ideia, por que você não olha outras variações de cores para os coelhinhos se estiver seguindo usando o bonny que usamos e gera mais de uma variedade de Isso é opcional e, se você usou sua própria criatura, ainda poderá fazer a mesma coisa. Continuaremos no próximo módulo um pouco mais tarde. 26. Como fazer um diálogo básico para falar com outro personagem: seguir, aprenderemos como criar um diálogo básico para conversar com outro personagem. Vamos manter isso simples. Vamos usar novamente o Miximo e vamos procurar por Jolene abaixo dos personagens e baixar o primeiro clipe com sua skin e o segundo sem Vamos baixar duas animações para ela, começando por ficar de braços cruzados com a pele dele Lembre-se de salvá-lo como FBX para unidade, 60 quadros por segundo, redução de quadros-chave, nenhum, e ajustar os braços conforme necessário, cerca de 62 a 67 funciona bem Além disso, depois de fazer o download, pesquise por falar sem a pele desta vez, baixe isso. O que vamos fazer é quando Doozy se aproximar de Jolene, ela vai abrir uma caixa de diálogo para avisá-lo sobre algo Então, aqui estão as configurações recomendadas para o espaço do braço. Lembre-se de que você pode baixar personagens e animações gratuitas no Mix Mo É assim que Jolene se parece ao lado de Doozy. Para falar com Jolene, verdade Jalin falando com Doozy, você não vai realmente Vamos criar uma interação de diálogo com Jolene, vamos configurar um colisor de gatilhos ao redor dela para detectar a presença do jogador e exibir uma caixa de diálogo na tela quando o jogador estiver dentro do alcance A caixa de diálogo será fechada quando o jogador sair do alcance. Primeiro, vamos trazer os arquivos FBX que você baixou para ela no Unity e os colocaremos na Unity e os colocaremos Jolene de nossos ativos e personagens Crie essa pasta se ela não existir primeiro e , em seguida, traga-a de seus downloads conforme esta pequena captura de tela aqui Lembre-se de fixar as texturas e os materiais como fizemos antes, lá embaixo, os materiais são extraídos e os materiais são extraídos, guarde-os e então ela ficará como deveria Vou arrastar a 01 em pé para a cena perto de Dusi, por exemplo, esta, e é assim que ela deveria ser Vamos renomeá-lo para Jolene com um. Vamos arrastá-lo para a pasta assets prefabs para criar um novo prefab pasta assets prefabs para criar um novo prefab Em seguida, precisamos de um script de diálogo Jolene para criar um novo script, remover o código e substituí-lo por um código de script CS de diálogo Jolene abaixo Novamente, você pode usar o botão de cópia. Não se esqueça dessa declaração de uso extra para o TextMshPro. Se você não instalou o Text Mesh Pro, faça isso seguindo as notas do curso anteriores no início. Você pode colocar algum texto de mensagem reservada, o que quiser dizer. Teremos uma referência à transformação do jogador, alcance para acionar a conversa, ao alcance para que ela feche Se o Doozy se afastar muito, ele fechará Essa é uma referência ao animador de Jalen, que também será configurado. G para ocultar a caixa de diálogo inicialmente, pois Doozy não está perto dela Reproduzirá a animação falante usando o gatilho que criaremos e o gatilho ocioso Ela alternará entre falar e ficar ociosa dependendo da situação necessária, como veremos Dicas adicionais: se você quiser que seu código pareça mais organizado, você pode fazer a catenação de strings conforme este exemplo usando o ano de adição, para que não fique tão longo para a esquerda ou para a direita, ou você usará uma string literal literal você pode fazer a catenação de strings conforme este exemplo usando o ano de adição, para que não fique tão longo para a esquerda ou para a direita, ou você usará uma string literal literal , como neste exemplo. Qualquer um deles é aceitável, só depende de como você deseja estruturar seu código. Agora, veja as instruções de configuração da caixa de diálogo nas notas do curso e acompanhe. Precisamos criar a interface do usuário, os elementos da interface do usuário de que precisamos. Lembre-se de que já devemos ter uma tela para que você não precise criar uma nova, use sua tela existente. Você pode adicionar um painel à tela. que não fizemos isso antes, Acho que não fizemos isso antes, o que servirá como caixa de diálogo. Podemos renomeá-lo para caixa de diálogo, basta criar corretamente o painel de interface do usuário e renomeá-lo Dentro do painel da caixa de diálogo, você adicionará um componente de texto Mesh Pro. Vamos nomear esse texto da caixa de diálogo. Na caixa de texto de entrada e no inspetor Unity, vamos digitar o texto temporário Posteriormente, substituiremos isso por um código, como você viu acima. Em seguida, vamos posicionar a caixa de diálogo no centro da tela e ajustá-la ao seu gosto Definimos o estado inicial na caixa de diálogo inativo desmarcando a caixa de seleção ativa no inspetor, basta ativar o painel até que Agora temos que configurar o objeto Game de Jene. Selecionando Jolene, podemos adicionar um componente do box collider a ela e definir o tamanho para que ele possa cobrir Aqui estão alguns valores que funcionam, centro, Y, igual a um. Mas experimente e certifique-se de que cobre o corpo. Marque a caixa de seleção Etiger para ter certeza que podemos detectar quando Doozy entra nessa caixa, anexar o script Jolene Dialog a ela, soltar o painel da caixa de diálogo da tela que criamos no campo da caixa de diálogo no script e arrastar o texto da caixa de diálogo de que podemos detectar quando Doozy entra nessa caixa, anexar o script Jolene Dialog a ela, soltar o painel da caixa de diálogo da tela que criamos no campo da caixa de diálogo no script e arrastar o texto da caixa de diálogo. Objeto Ms pro no campo de texto da caixa de diálogo, atribua o player que é Doozy no inspetor e defina o intervalo da caixa de diálogo e feche a faixa da caixa de diálogo para a distância desejada Aqui está um exemplo de como deveria ser. Você pode ver Dos, podemos ver o intervalo de diálogo para abrir e fechar e agrupar o texto e o painel ali mesmo Você pode ter renomeado, tudo bem. Basta arrastá-lo para dentro. Configuração do animador para Jolene Precisamos garantir que o controlador do animador de Jolin tenha os estados ocioso Vamos criar um sob os ativos da personagem Jolene, criar um controlador como este Você também pode fazer isso arrastando o clipe até ela e isso criará um controle Você só precisa atribuí-lo. Precisamos de acionadores para fazer isso funcionar, então vamos criar gatilhos no animador chamados tok e idle . Você pode fazer isso na animador chamados tok e idle guia do Além disso, crie dois novos estados inatividade e conversação e atribua os clipes de animação em movimento desses arquivos FBX que obtivemos do desses arquivos FBX que obtivemos Vamos definir a transição entre esses estados para que a animação para ocorra quando o gatilho de toque for ativado e retorne à animação inativa quando o gatilho ocioso for Certifique-se de desativar o horário de saída. Para os dois. Isso significa apenas que a transição dependerá apenas dos gatilhos e não da duração do clipe Em outras palavras, não usando o horário de saída. Aqui está como ela deveria ficar com aquela caixa ao redor dela. Aqui, eu vejo Jolene, os parâmetros, mas que precisamos adicionar para idle e to, soletrá-los exatamente assim e garantir que as palavras em um Aqui, mostramos a transição entre ociosidade e conversa. O azul destacado, você pode ver aqui como sem hora de saída. É aqui que a transição acontece usando a condição de falar. Você ajusta o tamanho e a posição da caixa de diálogo de acordo com sua preferência Observe que, em um recurso, o Tatori o tornará muito mais bonito com uma bela capa de interface de usuário, que estará disponível como um recurso da Por enquanto, tudo bem, estamos apenas fazendo a funcionalidade funcionar. O texto da caixa de diálogo, sinta-se à vontade para usar os mesmos valores. Apenas tome cuidado para não dimensioná-lo de forma que os diálogos se sobreponham de forma que isso interrompa a funcionalidade Provavelmente é bom até você ver como isso funciona para seguir as notas do curso e acompanhar. O texto temporário, Hey doozy pode simplesmente digitá-lo manualmente ali mesmo, mas o script o substituirá Como você pode ver, o roteiro dirá algo como: Ei, doozy, é melhor ir, colecionar coelhinhos, o tempo é uma nota do seu lado, também se afastou demais. Espero que haja um troll malvado na floresta. Mais tarde, isso dirá orc no final do tutorial, de qualquer forma Algumas notas resumidas: o intervalo do diálogo determina quando um jogador está próximo o suficiente para acionar o diálogo e o intervalo fechado do diálogo determina quando o diálogo deve ser fechado à medida que o jogador se afasta. O animador, garanta que as animações de Jolin estejam configuradas corretamente de acordo com nossos nós no controlador do corretamente de acordo com nossos nós no animador, com transições adequadas usando gatilhos de torque e inatividade, e Se eles não estiverem jogando corretamente, verifique o código, ajuste o gatilho corretamente e certifique-se de que estejam em loop Então, faça um teste para ver se funciona. E, para concluir, a configuração permite que Jolene detecte um jogador Ela também fica de frente para o jogador, exibe uma mensagem de diálogo e reproduz as animações apropriadas E Dusi se afasta, fecha o painel novamente. E se você quiser assistir ao vídeo do ponto de verificação do projeto, faça-o Ele analisa toda a configuração nos módulos recentes e no Unity. Assim, enquanto estiver com o editor do Unity aberto, você pode ver como ele deve ficar no editor do Unity quando você puder descobrir tudo isso. 27. Série Doozy: Ponto de verificação do projeto Mod2.1 a 2.6: Olá, e bem-vindo de volta ao nosso próximo vídeo do Checkpoint. Este vídeo de checkpoint analisará os tópicos que abordamos no Tutorial 2, desde o módulo 2.1 até onde geramos os coelhos e criamos um diálogo . Na próxima seção, continuaremos com os limites do continuaremos Vamos fazer uma revisão rápida. Adicionamos uma animação de captação para o jogador. Criamos o sistema de coleta de itens. Atualizamos a pontuação e a interface do usuário para lidar com a exibição e o feedback. Fizemos algumas configurações adicionais para o animador do player e a atualização do UA Criamos coelhinhos ao redor do jogador em vez de colocá-los manualmente e, em seguida, fizemos um diálogo básico Vamos analisar em unidade e ver como isso foi feito caso você perca alguma coisa nas notas. A propósito, você deve ter notado que a câmera é um pouco menor. Se você ainda não descobriu, pode definir o tamanho desse ícone aqui. Basta arrastar a barra de três ícones um pouco para a esquerda ou para a direita. Vamos começar com Doozy, ver como ele está agora. Tudo deve parecer familiar aqui. Temos um controlador de personagem. Temos um animador com um animador doozy. Temos uma fonte de áudio. Provavelmente podemos alterar a saída aqui para o áudio seja mixado com efeitos sonoros. Não estamos mais usando a segunda visão do roteiro. Estamos usando a Visão 3 e atribuímos sons de salto e aterrissagem. Dando uma olhada no controlador doozy doozy do personagem. Agora temos o estado de coleta aqui e estamos usando o clipe pegando um item com uma velocidade de três Recebemos isso de Miximo levando um item para cá. Configuramos as transições da respiração ou da marcha lenta e da corrida Você pode pegar um coelho. Usamos a condição de captação definida aqui nos parâmetros Agora, na hora e na volta, temos um horário de forma semelhante, passamos da corrida para a coleta usando a condição de coleta e, na volta, usamos Isso garante que o clipe em si não esteja em loop, pois ele deve ser reproduzido apenas Em seguida, vamos dar uma olhada no coelho. Bunny está usando o pré-fabricado que fizemos coelhinho a partir do coelho Configuramos um controlador chamado Rabbit, que é o que estamos vendo aqui, e ele simplesmente alterna entre essas duas animações inativas com o tempo de saída. Muito fácil. Transição ociosa com tempo de saída para o outro clipe e depois vice-versa No próprio coelho, adicionamos um colisor de esferas, centrado no y 0,75 com um raio de um Criamos o script de coleta de itens usando o som pop de captação de itens e o bunny Aqui estamos dando uma olhada rápida no item C sharp script. Temos um item pré-fabricado de objetos de jogo de campo para arrastar o item pré-fabricado, que é o coelho no inspetor Somos variáveis para o som de captação do clipe de áudio. Temos um animador, o animador do jogador, para obter uma referência ao animador do jogador Coletamos um olho booleano que usaremos para controlar e determinar se o coelho foi pego ou No método start, obtemos uma referência ao animador do jogador Em seguida, usamos o gatilho comum Enter para ver se a colisão aconteceu com um jogador Lembre-se de marcar seu jogador como jogador. Tocamos um som de captação. Desativamos o visual do item, iniciamos uma rotina de código para esperar que a animação de coleta termine Que está aqui. Esperamos até que a animação de captação comece Aguardamos o próximo quadro, esperamos até que termine. Verificamos se o gerenciador de pontuação está disponível e, se estiver, adicionamos um à pontuação e temos uma declaração de registro de depuração que exibirá uma mensagem em um console que a pontuação foi atualizada com sucesso A propósito, as instruções do debuk log podem ser removidas antes de você criar o jogo final e devem ser ou pelo menos comentadas, mas são muito úteis para ajudá-lo a solucionar problemas Em seguida, destruímos o item pré-fabricado após a conclusão da animação, neste caso, Vamos analisar a aparência de uma tela. Vou configurá-lo em dois modos D. Temos um help desk como antes, mas ele está temporariamente desativado. O HK ativará e desativará o jogo de qualquer maneira, então não há problema em deixá-lo Temos um texto de partitura lá. Temos um cronômetro de texto lá. Temos uma caixa de diálogo para Jolene, que aparecerá aqui com texto temporário de Hello doozy OK. Em seguida, temos o texto do cronômetro, que será executado no canto superior direito Analisando as referências do inspetor do nosso gerenciador de pontuação, arrastamos o escortex abaixo do escortex, o texto do cronômetro para o texto do cronômetro e o painel de um jogo Este aqui é o plano de um jogo que termina lá. Mas observe que está desativado porque só queremos habilitá-lo por meio do script quando o jogo realmente terminar, o que acontece mais tarde, quando Doozy morre ou quando o cronômetro chega a Se ativarmos temporariamente o jogo de painel , será assim que ficará. Tem um fim de jogo de texto e dois botões. O botão de tentar novamente. Assim, está usando um método chamado repetir o jogo em um gerenciador de pontuação Você arrasta o gerenciador de pontuação aqui e escolhe a função de repetir o jogo Aí está o texto para isso. O botão de sair é semelhante. Você coloca um gerenciador de pontuação aqui e escolhe a função de sair do jogo. Então, o texto exagerado do jogo é exatamente isso no topo, um GameOver bastante simples Olhando para o gerenciador de jogos, tudo o que ele realmente tem é a interface do suporte técnico para que possamos ativá-la e desativá-la Vamos dar uma olhada no nosso gerenciador de spawn. Adicionamos um coelho que você pode criar no pré-fabricado Adicionamos uma camada para o solo e definimos o terreno como solo Colocamos um jogador aqui e configuramos uma distância mínima de desova, a distância máxima de desova, a contagem máxima de extensão, a variação do tamanho do corpo e a distância mínima entre eles Experimente com eles como quiser para encontrar o terreno, basta digitar DER, encontrar o terreno e verificar se ele está na camada do solo A seguir, vamos dar uma olhada em Jolene. Ela vem de Meximo usando este sublinhado CH 34 pré-fabricado , não PBR com uma animação falada por padrão, mas ela também Vamos continuar. Ela tem o roteiro do diálogo de Jolene Isso vem dessa caixa de diálogo ali. A mensagem vem do script, o player é arrastado no intervalo da caixa de diálogo para abri-la é três e para fechá-la está lá Ela tem esse colisor de caixas, que nos ajuda com um gatilho Quando Doozy inserir isso, ele exibirá a Ela tem uma animadora chamada Jolene que criamos. Se estivermos vendo isso, ela está parada e começa a falar quando a condição de toque é verdadeira, aqui mesmo Você precisa adicionar o parâmetro toke quando condicionarmos a volta à inatividade usando esse parâmetro, sem tempo extra para nenhum deles Por fim, examinando nossa música de fundo, certifique-se de enviá-la para o mixer de áudio musical, que está disponível como um pacote nosso, ou você pode criar a sua própria. É muito fácil reproduzi-la em modo de ativação e loop ativados Curva espacial 0,5. Isso tudo é para esse posto de controle. Continuaremos com o tutorial no próximo episódio. 28. Limites do mapa do jogo: Olá e bem-vindo de volta. Nesta seção, podemos dar uma olhada rápida nos limites do mapa do jogo. Você pode se perguntar, o que diabos é isso? Bem, todo jogo precisa uma forma de incentivar ou forçar um jogador a não deixar a área jogável desejada ou definida onde você deseja que o jogador esteja Há muitas maneiras de fazer isso, incluindo tornar o trem muito íngreme, muito estreito e muito perigoso. Ou você pode fornecer outros obstáculos ou inimigos que impossibilitem o jogador de entrar no que chamamos de áreas fora dos limites Você pode até mesmo ser criativo e usar estatísticas como saúde e resistência, energia e muito mais para tornar quase impossível para o jogador ir muito longe ou sair da área do ponto de partida Ou área jogável. Neste tutorial, usaremos paredes invisíveis simples pelas quais um jogador não consegue atravessar e definiremos a posição de transformação como zero, zero, zero. Na captura de tela abaixo, você pode ver um exemplo disso e vamos ver como implementá-lo Primeiro, você cria um objeto de jogo vazio e renomeia para paredes, conforme mostrado Em seguida, você cria um cubo de CD com uma escala X igual a dez, 24, Y igual a 100 e Z igual a cinco Chamamos essa parede, renomeamos e depois a arrastamos para que ela se torne filha do pai da parede O objeto de jogo vazio que criamos e renomeamos. Em seguida, você clona a parede do cubo três vezes e ajusta a transformação e a rotação usando suas ferramentas e, em seguida, desativa os renderizadores de malha Mova cada parede em direção ao limite do seu mundo e agora você tem uma caixa jogável em uma área da qual o jogador não pode escapar Verifique se eles se sobrepõem e cruzam o terreno e o solo e se são altos o suficiente É por isso que o valor Y é pelo menos 100. Mas se você tiver um terreno montanhoso, talvez seja necessário aumentá-lo para garantir que não possa Então, isso é o que parece. O objeto base apenas paredes vazias, o objeto infantil fechou a parede, duas, três Eles são todos apenas cubos com parâmetros atribuídos como dez, 24, 105, e depois os reformulamos para que você possa criar uma caixa É isso mesmo. Agora você acabou desativar o mensageiro para todos eles A propósito, se você ainda não descobriu, pode selecionar um grupo de objetos infantis e desmarcar o mensageiro 29. Adicione um temporizador e condições de jogo: Olá e bem-vindo de volta. Neste módulo, aprenderemos como adicionar um cronômetro e começar a configurar nosso jogo sobre as condições Como implementar um cronômetro de contagem regressiva, um pop-up de fim de jogo e uma simples bandeja de bandeja e botões de encerramento é o que abordaremos aqui Primeiro, modificaremos um script de gerenciamento de pontuação, encontraremos seu script de gerenciamento de pontuação, aquele anexado ao objeto gerenciador de pontuação na hierarquia, e adicionaremos um cronômetro de contagem regressiva e uma lógica de fim de jogo para que possamos manter a funcionalidade existente do gerenciador de pontuação, mas também seremos capazes de lidar com as condições do game over e a contagem regressiva do cronômetro. Então, uma maneira de criar uma condição de fim de jogo é fazer com que o tempo chegue zero e, em seguida, o jogo termine. O objetivo é que Doc você pegue o máximo de coelhinhos que puder antes que o tempo acabe ou antes que ele Algumas coisas a serem destacadas no script: novamente, você pode usar o botão copiar, comparar com o script existente e adicionar o código ausente, e adicionar o código ausente, ou você pode apagar o script do gerenciador de quadrados e recortar e colar o código inteiro abaixo Novamente, você deve usar o text mesh Pro usando TMP. Além disso, desta vez precisamos de gerenciamento de cenas. Isso ocorre devido à funcionalidade de repetição. Certifique-se de ter essa declaração de uso. Então, vamos ter uma instância única para o gerenciador de pontuação para garantir que haja apenas Precisamos de uma referência ao elemento de texto da interface de pontuação, uma referência ao elemento de texto timer UI, que criaremos na tela em breve, uma referência à interface pop-up do game over, que também mostrará como criar em seu Canvas existente Este lembrete de 10 minutos e segundos é teste rápido de 600 F. F, faça 60 para testar o jogo por 1 minuto e depois redefina-o para Certifique-se de que haja apenas uma instância do Square Manager, que atue em uma função de peruca No início, vemos se o jogo não acabou, reiniciamos o estado do jogo, reiniciamos o cronômetro e a pontuação no início da cena Vamos atualizar o cronômetro em nosso método de atualização anulada, chamando o método de cronômetro de atualização se o jogo não terminar Esse é o método para adicionar pontuação e atualizar a interface de usuário de antes. Agora, esse método para atualizar o cronômetro e verificar o fim do jogo, faremos com a contagem regressiva e a atualizaremos, atualizaremos o cronômetro e a interface de texto com esse método, se ainda houver tempo suficiente Esse é o método que manipulará o GameOver para nós e, quando for, configuramos o pop-up do game over verdadeiro, que é o elemento da interface do usuário que mostraremos como criar abaixo Esse é o método para repetir o jogo. Vamos reiniciar o jogador, ocultar o jogo em um grupo pop-up, permitir que o jogo continue, reinicie o estado do jogo e retransmitiremos a cena usando um índice construído a partir das configurações criadas no Unity Método para sair do jogo. Para completar, documentei as etapas para configurar os elementos, a revisão e a validação da interface Você pode pular as etapas que já concluiu, mas executar as que ainda não concluiu. Precisamos de um texto de partitura. Se você não tem um, obviamente, é assim que se faz. Atribua o texto da pontuação ao gerenciador de pontuação. O texto do cronômetro é novo. Vamos criar outro elemento de texto Mesh Pro UGI para o cronômetro Vamos chamá-lo de texto temporizador. Atribua isso ao campo de texto do cronômetro no script do gerenciador de pontuação e você poderá definir um valor padrão para um texto que diz apenas dois pontos zero do cronômetro e posicioná-lo no canto superior direito da tela Em seguida, outro novo elemento para adicionar um pop-up ao game over. Usaremos nossa tela existente e, desta vez, adicionaremos um painel com dois botões de encerramento retreinados , semelhantes à captura Você só tem o painel, depois o botão de tentar novamente com seu texto e o botão de sair com seu texto, e os elementos textMSHPText Aqui está uma foto do gerenciador de tela, como vamos atribuir esses botões. arraste o gerenciador de quadrados para o evento onclick e escolha o método de repetição do jogo Da mesma forma, você também faz isso com a pessoa que saiu. Como esse exemplo aqui. Vamos continuar. Eu deveria ter uma aparência parecida com isso. O sobretexto do jogo é opcional. Se você quiser exibir isso na parte superior, crie isso também. Como um elemento chamado overtext do jogo. A propósito, renomeie esse painel para painel de fim de jogo desta forma e, em seguida, você pode definir o jogo do painel pop-up inativo por padrão, basta desmarcá-lo O código também fará isso. Atribua o objeto do jogo, por exemplo, painel de fim de jogo desse pop-up ao campo pop-up de fim de jogo no gerenciador de pontuação. Vamos revisar. Etapa três, a configuração do botão. Para o botão Repetir, podemos anexar o método de repetição do jogo do gerenciador de pontuação aos botões de nova tentativa no Lembre-se de arrastar primeiro o gerenciador de pontuação e depois escolher a função. No botão de sair, anexe o método do botão de saída do gerenciador de pontuação aos botões de saída no evento de clique. Se você esqueceu de fazer um texto de cronômetro, verá que ele não é mostrado e, em seguida, crie um chamado texto de cronômetro, conforme mostrado acima Vamos revisar nosso Canvas. Temos o texto do cronômetro, o texto temporário do cronômetro chamado texto do cronômetro, posicione-o no canto superior direito com Nós o atribuímos ao gerenciador de pontuação neste espaço aqui, mas o arrastamos para dentro Vamos testar o jogo e confirmar a pontuação e o tempo de trabalho do Candn Esse tempo deve começar aos 10 minutos e a partir daqui. Vamos verificar a configuração da camada e da tela na etapa quatro. É recomendável que você coloque os elementos da interface do usuário, como a pontuação, o cronômetro, o pop-up de fim de jogo e assim por diante, em uma camada de interface do usuário Se você não tiver uma camada de interface do usuário, crie uma e coloque-a na camada da interface do usuário. Em resumo, com todas essas etapas juntas, você terá um cronômetro C De, um pop-up de fim de jogo com opções de retração e saída, tudo integrado ao seu script de gerenciamento de pontuação existente sem quebrar a funcionalidade antiga Se você não tiver uma camada de interface de usuário, como eu disse, crie uma e coloque elementos de interface na camada. Vamos dar uma olhada nessas notas de depuração por um segundo. Com as correções sugeridas, isso ajuda você a aprender como corrigir alguns bugs que você vê no console. Assim, podemos introduzir um erro para que você possa ver como isso funciona. Se você receber um erro como esse, método Cs 0122 score manager dot GameOver está inacessível devido ao seu Isso significa que foi definido como privado em vez de público. Para experimentar isso, defina isso como privado e você verá o erro. Quando você o definir novamente como público, ele deverá ser corrigido. Aqui está um exemplo de exceção de referência ausente. Vemos que o método de resposta anual é provavelmente onde o problema está acontecendo neste exemplo. O problema pode ser que você esteja destruindo um objeto do jogo com destroy NPC e depois tentando acessá-lo novamente com o mesmo quadro No entanto, quando um objeto é destruído, a referência se torna inválida As possíveis soluções para esse tipo de situação são verificar se o objeto do jogo é nulo antes de acessá-lo Antes de tentar acessar, e este é o código de exemplo, NPC dot transform dot position, certifique-se de que a referência de NPC ainda seja válida Seu script já verifica se o NPC é nulo depois de verificar a distância, mas o problema pode ocorrer antes disso Então, número dois, remova o objeto destruído da lista antes de tentar acessá-lo. Quando você chama isso de comando de destruição, unidade marcará o objeto para destruição, mas ele não é removido da memória imediatamente. Você deve remover o objeto da lista assim que ele for destruído. Aqui está um exemplo de como o método handle respawn pode ser Aqui verificamos se o NPC já foi destruído. Removemos com segurança a referência nula. Usando isso, verificamos a distância e eu conheço o respawn Marcamos o NPC para destruição, removemos da lista imediatamente para evitar o acesso a um objeto destruído Basta verificar seu código. Se você quiser ter certeza de que seu código é mais robusto, para lidar com exceções e erros, faça algo semelhante ao método void, handle respond em seu script Em resumo, a principal mudança é a verificação nula. Adicionamos uma verificação nula na parte superior do loop para lidar com quaisquer PCs que foram destruídos nos quadros anteriores Número dois, remova-os da lista imediatamente. Depois que o NPC é marcado para destruição, ele também é removido dos PCs de desova para evitar acessar a referência destruída posteriormente no mesmo quadro Na maioria das vezes, isso deve evitar a exceção de referência ausente , garantindo que seu script não tente mais acessar objetos destruídos. Pode não funcionar para todos os casos, mas certamente você deseja tentar evitar que isso afete o desempenho do seu jogo. 30. Referência do roteiro: revisão final de scripts (jogador e pontuação): Olá e bem-vindo de volta. Neste módulo, que faz referência ao script, revisões finais de scripts para o jogador em uma partitura, garantiremos que seu código corresponda à lógica mais recente dos scripts de visão três de movimento do jogador e gerenciador de quadrados. Compare seus scripts com os abaixo e, se estiver faltando alguma coisa, faça seu script assim. Se você não quiser fazer isso linha por linha, sinta-se à vontade para abri-los no Visual Studio, apagar o código em cada um dos arquivos CS, copiar todo o código do gerenciador de jogadores, versão três do movimento do jogador e do gerenciador de pontuação nos arquivos apropriados Vamos passar por isso. Novamente, um lembrete de que isso é necessário para os componentes da interface do usuário, a interface de pontos do motor Unity Estamos começando a adicionar alguma lógica para lidar com a morte de Tosi. Verifique cada linha você possa ver o que há de novo e, se perder alguma coisa, você pode notar aqui que vamos evitar movimento quando o jogador estiver morto Esse método para lidar com a morte do jogador, o método void die, chamado de lógica de game over de um gerenciador de pontuação Mostraremos como configurar quaisquer animações e parâmetros ausentes , e assim por diante Esse é o método para redefinir o estado do jogador para tentar novamente e reinicializar o player Abra também seu script de gerenciamento de pontuação. Certifique-se de que ele tenha exatamente o mesmo código que este. Não se esqueça de que a parte sobre a atualização do cronômetro chegou, reinicie, tente novamente e encerrou 31. Um animal de estimação raposa que segue o jogador: comportamento companheiro: Olá e bem-vindo de volta. Neste módulo, aprenderemos como configurar um companheiro para Doozy usando um Fox Então, seguimos o guia passo a passo abaixo sobre como configurar uma transição animada para Fox e nos concentraremos na transição entre os estados de ataque em movimento e morte usando parâmetros e condições Você também pode escolher qualquer personagem gratuito do ximo, se quiser, ou pode escolher um personagem da Unity Asset Store Mas se você seguir este tutorial, sugerimos que compre esse Tune fox, que está disponível gratuitamente na Unity Asset Store, e é isso que parece. Use este link ou esta pesquisa por Tune Fox, clique no download e coloque-o em seu projeto. Pode usar o botão Importar aqui e importar desse botão aqui Então, depois de importá-lo, ele deve aparecer na pasta prefabs do Asset Fox , encontrá-lo lá, dar uma olhada nele e veremos que ele já tem um componente animador e um componente controlador e vamos personalizá-los para nosso projeto Vamos arrastar a raposa para nossa cena em algum lugar à esquerda de Doozy, mas fora da vista da câmera por enquanto, e anexar um script Cs de pontos de ocomoção aérea. Você vai criar um novo script vazio chamado aiocomotion Você pegará o código fornecido abaixo e colará substituindo o código padrão. E vamos reduzi-lo um pouco, digamos de 0,25 a 0,30 por enquanto Olhando para o inspetor, é assim que ele se parece Você pode escalar a transformação dele para qualquer valor que funcione para você, algo como 0,35 por enquanto Vamos dar uma olhada nesse controlador de animação da Fox e ver o que vem com esse modelo Mas vamos configurar uma árvore de mesclagem para lidar com essas animações. Se você ainda não fez isso, basta anexar o script AIOcommotion a ele em uma cena e adicionar um componente chamado NaFMSE. O agente T nos ajudará a fazê-lo se mover pelo mundo Observe que podemos receber um erro sobre o agente NAF Mase se você não tiver feito isso antes da instalação do Unity, mas basta clicar no botão Instalar pacote de navegação que aparece com a seguinte aparência . Se você não vê esse botão, não se preocupe. Isso significa que você já instalou e pode simplesmente adicionar uma faca Mass Agent com as mesmas configurações abaixo. Esse é o código que você vai usar. Você pode usar o botão copiar das notas do curso para colá-las no alocomotion dot cs, soletrar exatamente da mesma forma e garantir que o nome da classe corresponda Novamente, ele tem uma função de início simples e uma função de atualização. A função de atualização usa o agent dot destination, jogador igual transforma essa posição, que basicamente usa o agente NAfmes para mover a raposa em direção à posição do jogador com base na velocidade que controlamos para reproduzir a animação apropriada Vamos revisar juntos a explicação do roteiro. Este script é para controlar um NPC, personagem não jogável como nosso Fox usando Unity, agente e animador do NavMS O roteiro faz com que o NPC siga o jogador e atualize sua animação com base em sua velocidade de movimento Aqui está um resumo de como isso funciona. Ele tem todas essas importações de namespace que você coloca no topo Basta fazer o mesmo, incluindo unity engine.ai. A definição da classe, a sensação pública, a sensação privada, o método de início, o método de atualização e o código que faz tudo funcionar. Vamos analisar as etapas de implementação abaixo. Você precisa configurar sua cena de unidade, criar seu NPC adicionando o objeto do jogo Fox à sua cena depois de importá-lo e anexar um componente agente NaFmes e um componente Vamos adicionar animações criando e configurando estados de animação, que você verá abaixo para seu NPC, a raposa no controle do Certifique-se de ter um novo parâmetro chamado velocidade para controlar as animações de movimento No script, anexe o script, atribua as referências. Aqui está um exemplo do script anexado. Também queremos garantir que nosso terreno tenha uma malha Nerf Para fazer isso, configuramos uma malha Nerf para o terreno encontrando objeto do terreno e você encontra isso em Janela, navegação por IA Faça isso agora, se ainda não tiver feito isso, asse e espere até que esteja pronto. Pode demorar um pouco, então seja paciente. Use a janela de navegação AI com esta caixa marcada, mostre NavMS para que você veja quando está pronto e quando estiver pronto na guia assar, basta pressionar assar e isso mostrará o progresso Quando terminar, você verá essa superfície azul por toda parte. Tem a raposa, tem Lean, tem Doozy. Configure os parâmetros do animador para a raposa. Você precisa criar parâmetros na janela do animador chamados velocidade e descobrir as animações com transições Você configura transições entre animações diferentes, por exemplo, andar e correr em marcha lenta com base no parâmetro de velocidade, e vamos usar a árvore Opcionalmente, você pode descomentar o código de visualização no script fornecido para que a raposa veja Doozy Se você ainda não tiver feito isso, configure uma camada de solo, certifique-se de que seus objetos de solo estejam atribuídos a uma camada específica, como solo. Siga as etapas nestas notas do curso e você poderá definir seu terreno como a camada do solo, criar uma nova camada chamada solo, se você não tiver uma Você abre a janela de navegação AI navigation para encontrá-la. Você marca todos os objetos, como o terreno, como estática de navegação, que significa que eles não se movem Calculamos as configurações de navegação, marcamos como área para caminhar as configurações da bicicleta conforme necessário para o raio, altura e inclinação máxima do agente altura e Isso usa os padrões que mostramos na captura de tela. E depois asse, teste e refine. Agora você está no caminho certo para ter uma raposa NPC funcional que seguirá o jogador assim que configurarmos sua uma raposa NPC funcional que seguirá o jogador assim que configurarmos lógica de controlador de combinação de animação Vamos continuar com os detalhes de configuração da Fox para o agente e animador NavMS Só para lembrá-lo, vamos fazer isso com uma árvore de mesclagem para que você possa aprender a controlar as transições com o parâmetro de velocidade para mesclar os clipes de animação que queremos ver Crie seu próprio controlador chamado Fox blend Controller. Você pode simplesmente clicar com o botão direito do mouse em criar controle animado, chamá-lo de controlador Fox Blend e configurá-lo abaixo. Se você ainda não tem uma pasta para isso, vamos criar uma pasta para Fox personalizada em Assets CaraaFox e garantir que você crie um novo prefab dirigindo raposa que você colocou na Dessa forma, fazemos nossa própria cópia pré-fabricada e não estragamos a que Agora estamos prontos para criar uma configuração de árvore de mistura abaixo. Você pode simplesmente clicar com o botão direito do mouse em uma área em branco aqui para criar uma árvore de mistura e escolher Criar estado do Blendtryimportant, não perca isso Certifique-se de que o tipo seja um D, certifique-se de trabalhar na janela do animador, não na camada base, mas na árvore de mistura Imediatamente, você verá que há um controle deslizante aqui, que será usado para controlar a velocidade Arraste a raposa da cena para esta janela se você não a ver. Depois de criarmos esse novo controlador de animador chamado controlador Fox blend, vamos atribuí-lo ao campo controlador no componente animador do nosso pré-fabricado Fox Também precisamos criar um parâmetro de velocidade. Você pode renomear o padrão chamado Blend, se desejar, e chamá-lo apenas de speed Isso está aqui na guia de parâmetros. Em seguida, você atribuirá os clipes de movimento da animação que foi fornecida com uma raposa Você os encontrará nas animações Assets Fox. Só vamos usar alguns. Aqui tem muitos outros interessantes, mas vamos clicar no botão de adição algumas vezes aqui e depois adicioná-los conforme necessário. Você verá que o Unity os constrói ao lado da árvore de mistura e há nosso parâmetro de velocidade com um valor padrão de zero Aqui está um exemplo de atribuição um desses clipes de animação Você o encontra no Fox Idol, arraste este clipe para lá Agora continue com uma configuração do Blendtycfiguration adicionando os outros clipes aos campos Apenas certifique-se de que o sublinhado da Fox sit idle seja o primeiro Para arrastá-los em sequência, há duas pequenas linhas aqui. Você pode ver isso? segura o botão mais à esquerda e o arrasta para cima ou para baixo Você quer que eles fiquem assim, parados sentados primeiro, já que isso não é um movimento Em ordem de velocidade, pense na rapidez com que o personagem deve se mover Você quer que ele faça a transição com base na mistura de três velocidades com um controle deslizante Basta fazê-los assim, em marcha lenta, depois uma segunda em marcha lenta, depois andar e correr com um sentado no topo Certifique-se de que o loop esteja ativado para todos eles. Isso mostra o parâmetro de velocidade de entrada na árvore de mistura e como a aparência do componente animador com deve ser a aparência do componente animador com um controlador de mistura Fox Eles reproduzem o movimento raiz, você pode desmarcar se quiser. Às vezes, pode haver um movimento nos clipes de animação que o move independentemente da malha de navegação Se isso se tornar um problema para o seu modelo e você não quiser usar o movimento da raiz, retire-o. Pequeno deslocamento de base de menos 0,15, certifique-se de que esteja logo abaixo da superfície Faça sua configuração de forma semelhante a esta. O motivo de uma árvore de mesclagem é que ela possibilita transição suave entre animações com base em um parâmetro como velocidade Não se esqueça de que seu script de locomoção de IA precisa de uma referência ao doozy Se você não tiver isso, basta pegar Doozy player e arrastá-lo para este slot Se você quiser ver como isso vai funcionar antes de realmente jogar o jogo, você pode seguir esse tipo profissional pressionando o botão BlenyPlay, arrastando o controle deslizante de velocidade e observando como as transições com base na Você pode arrastar isso e , em seguida, essa linha azul indicará onde ela fará a transição com base nesse tipo de blentry Vamos definir a distância de parada para dois por enquanto. Vamos ajustar e ajustar isso mais tarde para que ele não pare em cima do jogador. Inicialmente, isso estará um pouco longe demais do jogador, mas eu quero que você faça isso para que você possa ver onde ele para e, em seguida, faremos um pouco menos mais tarde. Isso está no agente NavMes na distância de parada dois, por enquanto Salve as configurações da cena, pressione play e veja se ele segue Doozy se Doozy chegar perto o suficiente e ele detectar Você pode simplesmente descomentar esta linha. Isso é para encarar o jogador, I E olhando para Doozy dar um salto e perceber como ele fica para Dozi para se Ainda assim, a raposa era um pouco pequena demais inicialmente, escolha um valor para a escala entre 0,35 e 0,45 em sua transformação, então fica mais ou menos assim Teste o jogo, vá e colete coelhinhos, veja se a raposa segue você, veja se o cronômetro está Por último, mas não menos importante, provavelmente é uma boa ideia fazer um backup completo do seu projeto Unity neste momento, para que você possa simplesmente copiar a pasta inteira para outra unidade ou outro local no seu computador. Além disso, assista ao vídeo do ponto de verificação abaixo para verificar se você configurou tudo corretamente ou se está preso Este vídeo do posto de controle está aqui. Ele mostrará dentro do editor Unity como as coisas devem ser. 32. Ponto de verificação do projeto (2.7-2.10): Olá e bem-vindo de volta. No vídeo do ponto de verificação de hoje, analisaremos os módulos 2.7 a 2.10 Então, vamos dar uma olhada rápida nas notas do curso e, em seguida, dar uma olhada em como fica o final em Unity. Então, recapitulando os limites do mapa do jogo , garantimos que o jogador não possa deixar o mundo montando algumas paredes usando três cubos D e removendo o renderizador de malha para torná-lo É sempre bom criar o objeto principal chamado Walz na posição 000 e depois colocar as quatro paredes à esquerda, à direita, superior e inferior, assim como está aqui e aqui Também adicionamos o cronômetro. Atualizamos o script de gerenciamento de pontuação. O script do gerenciador de pontuação agora deve ter a seguinte aparência. Também o abriremos no Unity. Compare seu código se você tiver bugs e faça com que fique assim. Temos o menu pop-up do game over. Atualizamos o Canvas com botões de tentar novamente e sair. Costumávamos usar o gerenciador de pontuação arrastando-o até aqui e escolhendo o método ou a função correta, como repetir O texto do cronômetro ou o texto padrão do cronômetro. Certifique-se de preencher as referências aqui, incluindo o painel de texto do game over timer reext Se você tiver algum bug, aqui está um exemplo de como corrigir um. Você pode criar um bug temporário intencionalmente, tornando-o privado, depois observar o erro em um console e configurá-lo novamente como público Leia esta nota do curso para aprender sobre outras caixas relacionadas para verificar se há exceções de referência nula Um método atualizado de geração de identificadores é mostrado aqui com uma verificação nula para o Em seguida, baixamos uma raposa que será nossa companheira de estimação e seguiremos Doozy, o jogador. Nós o importamos, o colocamos no AcetfoxPrefabs. Nós o redimensionamos em 2,25. Analisamos o controle que vem com ele e decidimos fazer o nosso próprio usando uma árvore de mistura. Para isso, também precisaremos adicionar o agente NAFmes. Se você ainda não fez isso no Unity, precisa instalar o pacote de navegação AI também precisa instalar o pacote de navegação AI clicando nesse botão apenas uma vez. Em seguida, criamos um novo script, que chamamos de ponto de locomoção AI Você coloca esse código nele. E, opcionalmente, se você quiser que a raposa olhe para o jogador, você pode descomentar essa linha Isso está apenas explicando como o script funciona e todas essas seções diferentes. Leia isso se quiser entender. Revisão da implementação da raposa, assando a malha Nav ao assar a malha Nav, lembre-se de mostrar a malha NAV aqui no Aon Navigation, e ela aparecerá em azul assim depois de assá-la assim depois Também configure a camada do solo para o terreno e alguns detalhes de configuração do agente nervoso e do animador para a raposa que está usando a árvore de mistura e controlada pelo parâmetro de velocidade Portanto, siga estas etapas nas notas do curso e você deverá obter uma mistura T, tipo um D, chamada Fox blend Controller. Certifique-se de atribuí-lo ao Fox. Certifique-se de atribuir todos os clipes de animação. Eventualmente, o inativo ficará em segundo lugar porque está em uma velocidade mais lenta Como vemos aqui, fique ocioso. Aqui mesmo. Você pode testá-lo movendo o controle deslizante para ajustar a velocidade no modo de jogo aqui embaixo, para que você possa ver as transições com base na É importante colocar uma distância de parada algo como duas para que ela não atinja ou atravesse o jogador designado para lá. Percebemos que 0,25 era um pouco pequeno demais, então algo como 0,350 0,45 pode ser melhor Esta é apenas uma nota para dizer que, se você quiser que a raposa fique de frente para o jogador, descomente isso Então, como eu disse, 0,350 0,45, isso parece um pouco melhor. Teste o jogo e, no próximo módulo, veremos como podemos converter a raposa de uma companheira em agora um inimigo que encontrará, seguirá e atacará o jogador. Dando uma olhada em nossa configuração completa de raposa, a transformação de raposa raposa que vem com ele. Configuramos um controlador fox blend para ele usando o avatar Fox. Você pode deixar a aplicação de movimento raiz ativada, na verdade, não importa porque as animações não contêm movimento real, mas se você tinha animações para outro personagem que tinha movimento, você deve decidir usar o movimento raiz para conduzir o personagem, fazê-lo se mover ou usar o agente Navm Se o agente for designado aqui, o jogador será designado aqui Certifique-se de ter o roteiro de movimento ALO. Não esqueça a distância de parada, compare suas configurações e faça algo semelhante. Portanto, o código para locomoção por IA deve ser assim. Atribuímos nomes de agente a agente, atribuímos o animador ao animador e, em seguida, o método de atualização, que é chamado uma vez por quadro, usamos o destino de pontos do agente para mover a raposa em direção à posição do jogador E isso é baseado na velocidade, usando a fórmula do agente dot-velocity dot magnitude, e isso é para olhar para o jogador Opcional. Se você não quiser que ele olhe, basta colocar duas barras na frente aqui novamente. Dando uma outra olhada no roteiro do diálogo de Jolene neste momento do projeto, caso você tenha perdido alguma coisa que possa comparar Vou percorrer lentamente. Reproduza a animação de toque com base no gatilho, oculte o diálogo quando ele se move fora do alcance. Outra visão geral do script da versão 1 do NPC Spawner. Isso serve para gerar os coelhinhos ou, se você usar uma criatura diferente, use uma variedade de NPC pré-fabricados uma variedade de NPC Se você quiser entender como o script funcionou, consulte as notas do curso. Outra análise rápida da retirada do item. Nesse ponto, o script da versão três do movimento do jogador deve ter a seguinte aparência. Compare com as notas do curso e com o seu próprio projeto. O script do gerenciador de pontuação era assim neste momento do projeto. A propósito, você provavelmente percebe que pode definir isso para 60 para reservar esse tempo de 1 minuto em vez de dez temporariamente. Por exemplo, você pode configurá-lo para 60 e, quando terminar, ajustá-lo de volta para 600 e dizer Então, esses devem ser todos os erros que você tem neste momento Compare com as notas do curso e o vídeo se isso ajudar você a encontrar algum bug ou erro de digitação que você tenha cometido Vamos ver como é a aparência do nosso Canvas . Vamos abri-lo. Para SceneView two D, clicaremos duas vezes em Canvas C clique com o botão direito aqui e podemos ocultar isso temporariamente. O suporte técnico está aqui. O texto de entrada está configurado para isso e está desativado porque H o trará de volta e o ativará para O placar está aí. caixa de diálogo aparecerá aqui quando for ativada pelo script dessa forma. Texto temporário de Hello doozy. E o texto real da caixa de diálogo será substituído pelo script aqui. O texto do cronômetro estará lá com um texto de espaço reservado da coluna zero do cronômetro. Um texto de fim de jogo está desativado e será ativado pelo script do programa. Tem um botão de nova tentativa. Vamos habilitá-lo por um segundo. Tente novamente com um botão de sair e um texto de fim de jogo. botão Tentar novamente aqui usará o método ou função Grame do gerenciador de pontuação dot retry Da mesma forma, o quit usará o jogo dot quid do script que construímos Então, a seguir, vamos ver a aparência de Doozy neste momento Lembre-se de que ele tem o controlador de personagem com as seguintes configurações não alteradas. Ele animou Doozy, fonte de áudio que sai para o mixer de áudio. A reprodução de efeitos sonoros acordar usa a versão três do script de movimento do player , as Vamos dar uma olhada em seu controlador. A propósito, você pode clicar com a roda do mouse para movê-la para o centro. Temos a respiração inativa. Você pode pegar algo em funcionamento ou em marcha lenta. Parâmetros para facilidade de movimentação, salto e captação Se o seu não for assim, consulte as notas e configure-o. Lembre-se de que a velocidade de retirada dos itens deve ser definida para três. Então, aqui estamos dando uma olhada no Fox com o controlador fox blend que criamos, as notas do curso Aspera E se entrarmos na árvore de mistura, encontraremos a árvore de mistura aqui com um parâmetro de velocidade e podemos fazer a transição arrastando o controle deslizante e ver como as linhas azuis mostram qual delas está sendo Então, se pressionarmos play aqui e arrastarmos o controle deslizante, ele mostrará em que ponto ele realmente fará a transição Como aqui, podemos ver, por exemplo, que se ele percorrer a animação de caminhada, a animação de corrida, a animação ociosa e a de sentar. Observando os detalhes da árvore de mistura, certifique-se de sentar como a primeira, depois ociosa, depois andar e depois correr A propósito, você pode clicar em segurar com botão esquerdo para alterar suas posições dessa forma. Você também pode ajustar esses limites manualmente, se necessário, mas na maioria das vezes o automático funciona bem Por fim, vamos dar uma olhada rápida nas paredes do Unity Criamos um objeto vazio na transformação zero, zero, zero. A propósito, se você ainda não sabe, pode redefinir corretamente a transformação para zero, zero, zero Então a parede, a parte inferior está lá, a próxima na parte superior e a esquerda na direita. Mas o jogador não os verá porque o renderizador de malha em cada um deles foi desativado e cada um deles tem um colisor de caixas, não com um gatilho, porque queremos transformá-lo em uma parede de bloqueio Ok. Qualquer dúvida adicional, consulte as notas do curso. Então faça um bom teste, veja se a raposa pode segui-lo, colete o máximo de coelhinhos que puder antes que o tempo acabe E provavelmente é uma boa ideia fazer um backup do projeto agora para backup de toda a pasta do projeto em outro local no computador, de preferência em outra unidade. E continuaremos no próximo episódio explicando como transformar a raposa em um inimigo que pode atacar e machucar 33. Como fazer a Fox Find e depois atacar o jogador: comportamento inimigo: Olá e bem-vindo de volta. Você provavelmente quer saber como criar um inimigo. Por que não vamos em frente e convertemos a raposa em um inimigo que encontrará um jogador e depois o atacará. Aqui estão os principais pontos a serem considerados ao analisarmos as notas do curso. Vamos aprimorar a raposa para se tornar uma inimiga em vez de um animal de estimação. Isso é opcional, é claro, mas você aprenderá como configurar um inimigo escrevendo um script personalizado de notícias em C Sharp e atualizando a funcionalidade existente. Vamos começar adicionando um corpo rígido e um colisor de esferas na raposa Isso nos ajudará a gerenciar a física e as colisões adequadamente. Você vai configurar o corpo rígido para facilitar a cinemática, então vá até a Fox na cena, adicione um componente, um corpo rígido Verifique a cinemática Es, faça suas configurações iguais, adicione um colisor de esferas A propósito, se você quiser aprender mais sobre o que cinemática e o que é corpo rígido, você pode abrir isso nas notas do curso e ler os pontos-chave de como a cinemática funciona e como Exemplo, casos de uso. O que é um corpo rígido? Leia isso nas notas do curso. De qualquer forma, por enquanto, vamos adicionar um corpo rígido e um colisor de esferas Podemos usar esse gatilho para fazê-lo funcionar mais tarde. Por enquanto, basta adicionar um colisor de esferas. Não faz mal configurá-lo exatamente assim com um valor de 0,5. Isso garantirá que a raposa possa detectar colisões e saiba quando atacar o jogador Eu deveria ter uma aparência parecida com isso. Além disso, agora vamos modificar nossa árvore de mesclagem, queremos adicionar lógica de ataque e uma animação para isso. Vamos criar um novo estado de ataque com transições de e para a árvore de mistura Crie também um novo parâmetro de gatilho chamado ataque mostrado aqui e use-o para fazer a transição da árvore de mistura para o ataque Mostrado aqui, usaremos has exit time para garantir que o ataque seja reproduzido antes de você retornar à árvore de mistura. Então, quando você voltar do ataque, essa é a perna e o branco, você usará o tempo de saída. Mas do Blentry ao ataque, usaremos a condição de ataque como gatilho Use a captura de tela como referência para ver o que você precisa fazer. Destaque a raposa. Certifique-se de ter esse parâmetro, certifique-se de que seu blenty esteja atualizado para ficar assim e use a condição para acionar o ataque Aqui está a transição com a condição de ataque. Podemos usar a pausa de ataque da Fox para o clipe em si. Encontre-o em Assets Fox Animations Fox attack, pause. Certifique-se de atribuí-lo lá para o ataque. Declare usando este clipe de movimento. Para continuar com isso, também precisamos criar uma interface que mostre a saúde do jogador, atualizar o jogador para poder sofrer o dano que a raposa está causando e atualizar a raposa para poder realmente atacar o jogador. Começaremos com as etapas abaixo no próximo módulo para criar primeiro um controle deslizante de saúde para o jogador 34. Criar/atualizar a interface do usuário para mostrar a barra de saúde para o jogador (usando um sllider): Olá e bem-vindo de volta. Neste módulo, vamos criar uma atualização na interface para mostrar a barra de saúde do jogador usando um simples controle deslizante e o código que controlará sua saúde com base no dano que a raposa está causando ao doozy Vamos seguir as instruções passo a passo para configurar a interface de usuário de saúde com um controle deslizante Primeiro passo, configure o controle deslizante. Vamos primeiro criar um controle deslizante em seu Canvas existente clicando com o botão direito do mouse no Canvas em uma hierarquia e selecionando o controle deslizante de interface Você pode trabalhar em dois modos D enquanto atualiza a interface do usuário da interface do usuário. Isso só facilita a visualização dos elementos da interface do usuário e, quando terminar, volte para o modo três D. Nomeie o controle deslizante de algo como controle deslizante de saúde, personalize o controle deslizante de acordo com sua preferência, removendo a alça e ajustando o plano de fundo e preenchendo os visuais Mova o controle deslizante para a parte inferior central da tela ou para onde quiser exibi-lo e lembre-se do atalho Shift clique ao selecionar a parte inferior central, por exemplo, para também colocar a posição no lugar certo Acompanhe e defina os mesmos valores que temos no slide. Para testá-lo, você pode selecionar um controle deslizante de saúde e ajustar o valor Por exemplo, defina-o como um, que é 100% de saúde. Assim, você pode arrastar o controle deslizante. Zero não é saúde, um é saúde plena. Novamente, vamos ajustar o plano de fundo para caber na área do slide da alça. Nós desativamos a alça em si. Não precisamos ver a alça e definir a cor de preenchimento para uma cor verde clara de sua escolha. Nesses botões azuis, você pode clicar no último botão do mouse e arrastá-los conforme necessário até que tudo caiba. Mas. Então, procurando em nossa tela esse controle deslizante de saúde, ele tem vários elementos O preenchimento é o que estamos vendo aqui e aqui e é uma imagem com uma cor verde. Vamos atribuir o controle deslizante ao script. Primeiro, o script que vamos usar é chamado Player Health Cs. Fornecemos um código abaixo que você pode usar para criar um novo script, como antes, exibir o código que está no script CS de saúde do jogador. Primeiro, vamos selecionar um objeto do jogo do jogador que é Do player que tem o script de saúde do jogador anexado ou ao qual o anexaremos. Vamos arrastar o controle deslizante da hierarquia para o campo deslizante no Depois de anexar o script do player L ao Doozy, certifique-se de arrastar o controle deslizante que criamos para esse slot aqui Antes de testar, vamos atualizar esses scripts. Além disso, você pode ver que há algum código sobre a habilidade de cura, mas voltaremos a isso em um módulo futuro. Aqui está um resumo de como modificar o script para implementar a lógica tecnológica, incluindo lidar com o poder de saúde do jogador, a morte e as condições atuais de fim de jogo. Vamos criar um novo script chamado Player Health e anexá-lo ao player. Lembre-se de que a instrução de uso é necessária para componentes de interface do usuário. Precisamos de uma nova referência ao controle deslizante da interface do usuário. Precisamos de uma referência ao script de movimentação do jogador. Essa é a saúde máxima. Podemos inicializar uma interface deslizante. Esse método de receber dano com um valor inteiro de dano é quanto dano essa afirmação saúde atual menos o dano igual reduz a Observe que deixamos as instruções do registro de depuração no código para que você possa ver se elas funcionam conforme o esperado Em um jogo final, você provavelmente quer comentá-los. Se o jogador morrer em zero, chamamos o método de morte no script de movimento do jogador. Isso será totalmente implementado um pouco mais tarde para cura. Deixe o código aí por enquanto, voltaremos a ele. Também precisamos atualizar o script da versão três do movimento do jogador que está anexado ao nosso player. Certifique-se de abrir o script do player Movement Vision Three. Você pode copiar todo esse código para substituir o que você tem nele ou, se quiser ver exatamente onde está o novo código, reserve um tempo para comparar com seu script e fazer edições Este é o método para a morte do jogador, reinicie o jogador. Também queremos atualizar o script de locomoção de IA anexado à raposa da seguinte maneira A raposa precisa saber onde o jogador está com a transformação do jogador, os detalhes do agente do NAfmes, os detalhes do animador Ele está atacando ou não, e agora também a saúde do jogador A referência à saúde do jogador está aqui. Queremos parar de atacar se o jogador estiver morto, então verificamos se o jogador está vivo. Em seguida, vamos usar o método de ataque do jogador para realmente atacar o jogador. É aqui que entra esse parâmetro de velocidade. Você pode enfrentar o jogador enquanto segue. Esse é o método de ataque. Danifique o pequeno intervalo entre os ataques, para que ele não cause danos constantes. Neste ponto, você deve ter a raposa seguindo e atacando o jogador, mas implementaremos a morte e o teste completos do jogador neste próximo módulo para concluí-lo 35. Implemente a morte do jogador e testes: Olá e bem-vindo de volta. Neste módulo, vamos resumir como Doozy morrerá implementando animação de morte de um jogador e testaremos se a raposa pode Queremos confirmar que a raposa pode matar o jogador e o menu pop-up do game over aparece conforme abaixo, mas você notará que a saúde do jogador está definida como zero, mas não parece morta. Está aí, vamos melhorar isso adicionando um clipe de animação de morte para o jogador. Observe também o aviso abaixo sobre o diâmetro ausente que abordaremos O que precisamos fazer quando a integridade é zero, você pode ver que essa declaração de depuração nos mostra 40, 30, 2010 e zero e nos avisa que o perímetro d não Está vindo desse trecho de código aqui. É porque ainda não o configuramos , então precisamos fazer isso. O jogador precisa adicionar um parâmetro de dado e uma animação de morte. Quando examinamos o método abaixo no script da versão três do movimento do jogador , vemos que o método de morte está tentando fazer o animador reproduza a animação de morte, mas ainda não está configurado na máquina de estado do jogador , o controlador do animador Vamos fazer isso. Como Doozy ainda não tem um clipe de animação de morte adequado, vamos comprar um do Miximo, como de costume Vamos procurar animações de morte recuada para o personagem Doozy Novamente, já faz um tempo, só como lembrete, vá até os personagens, digite Doozy, depois passe para as animações e procure por essa aqui, Certifique-se de aplicar ao doozy com essas configurações. Faça o download normalmente, FBX for Unity, lembre-se, com capa, 60 quadros por segundo, nenhum para redução de quadros-chave Faça o download e inclua-o em seu projeto em assets character e doozy, como neste exemplo aqui Em seguida, você arrastará esse clipe de Falling Back Death daqui até o player. Este é um pequeno truque para criar rapidamente esse componente aqui para a morte recorrente. Isso criará um novo estado chamado fallback death no espaço de trabalho do animador de Doozy Você também pode criá-lo manualmente e atribuir o movimento. Apenas certifique-se de que a velocidade seja uma. Observe que ainda não há transições, então teremos que configurá-las. Agora precisamos criar um novo parâmetro de gatilho chamado die, e vamos usá-lo para acionar a animação de morte. Certifique-se de adicionar um parâmetro aqui. Como o Dusi pode morrer de pé, respirar ocioso e/ou correr, precisamos configurar transições de 21 vias usando Da respiração até lá e da corrida até a morte. Aqui está um exemplo. A condição de morrer é o gatilho. Vamos fazer um posto de controle Nesse ponto, a raposa pode atacar e Doozy pode morrer. Teste o jogo novamente e confirme se isso realmente funciona para você. Se você perdeu alguma coisa, confira as notas do curso ou acompanhe o vídeo do checkpoint um pouco mais tarde no curso No terceiro tutorial, recapitularemos tudo isso novamente, encerraremos a funcionalidade, faremos alguns pequenos ajustes e ajustes, tornando-a um pouco mais realista, reproduzindo também uma animação de sucesso e adicionaremos um pouco de som enquanto Doozy sofre danos antes de morrer. Garantimos que a animação de morte funcione conforme o esperado e que a funcionalidade do game over seja aprimorada e funcionando como deveria Corrigimos um pequeno bug e quaisquer outros problemas que precisem ser limpos. 36. Recursos adicionais de Asset para seu jogo (opcional): Olá e bem-vindo de volta. Eu só queria te mostrar alguns recursos adicionais para o seu jogo. Isso é totalmente opcional e a maioria deles é gratuita Sinta-se à vontade para explorar a loja de ativos em busca ativos gratuitos que possam funcionar para o seu jogo. Por exemplo, aqui está a casa estilizada que usamos em nosso jogo Se você não gosta desse, use este de cogumelos. Se você quiser um inimigo diferente como um urso, com animações muito boas, você pode usar este No futuro, vamos criar uma série de tutoriais usando o Emerald AI 2024, que é um ativo pago Não é necessário para este curso, eu só quero que você esteja ciente disso. Se você não quiser comprar esses coelhos Stylts, você pode usar este coelho branco gratuito Aqui está um bom troll de cavernas gratuito e aqui está um troll de montanha pago Vamos dar uma olhada em alguns deles. Esse é o troll das cavernas lá. Muito legal. Adicionando aos seus ativos. Aqui estão os coelhos Stylize. Eles custam dinheiro, mas como eu disse, você pode usar o branco gratuito ou algo semelhante. Emerald AI é uma extensão do motor de jogo Unity para quem realmente não quer codificar sua própria IA, é um pacote muito bom Então, se você quiser investir nisso, eu o recomendo fortemente. Não recebo comissão por isso e, na verdade, teremos uma série completa de tutoriais e usaremos o Emerald AI no futuro Mesmo neste curso, teremos uma demonstração rápida de como ele pode ser usado e integrado ao player. Então aqui está a casa de fantasia estilizada. Aqui está aquele troll da montanha que também não é gratuito, mas, como eu mostrei lá, muitos trolls ou organizações gratuitas que você pode usar Aqui estão mais alguns outros personagens da NBC onde você pode dar uma olhada em minions monstros, alguns cogumelos engraçados, coelho branco, personagem alienígena 37. Dicas de solução de problemas para correção de bug do Spawn Manager: Olá e bem-vindo de volta. Aqui está uma dica de solução de problemas para o gerenciador de spawn. Você pode ver no console um erro de exceção de referência ausente O objeto do tipo objeto de jogo foi destruído, mas você ainda está tentando acessá-lo. Se você conseguir isso, a solução é que seu script verifique se é nulo e você não deve destruir o objeto Abra seu script NPC spawner versão 1 e encontre um método void handle spawn e , em seguida, adicione essa lógica aqui, remova NPCs nulos Se o NPC for nulo, gere NPCs, remova em I Essa verificação nula verificará se o NPC é nulo e, se for, o script removerá o NPC da lista do NPC gerado e continuará até a próxima iteração do continuará até a Isso impedirá que o script tente acessar um objeto destruído. Esse ajuste deve resolver quaisquer exceções de referência ausentes, garantindo que o script não tente interagir com o objeto destruído 38. Projeto Ponto de verificação Mod2.11 a 2.16: Olá e bem-vindo de volta. No vídeo do ponto de verificação de hoje, faremos uma rápida revisão dos Módulos 211 a 216 E o que abordamos aqui é como transformar a raposa de uma companheira que segue Doozy em um inimigo que pode atacá-lo Mostraremos como criar uma atualização na interface do usuário para mostrar a barra de saúde do jogador usando um controle deslizante Implementaremos o código para mostrar como o jogador morrerá e fará o teste. Vamos nos referir brevemente aos recursos adicionais de ativos que são opcionais e personagens. Visitaremos dicas de solução de problemas para o script do gerenciador de spawn e mostraremos que há um script C e um guia de referência conceitual para iniciantes em Unity As principais ações em 211 são como fazer com que a raposa encontre e depois ataque o jogador Teremos que atualizar a raposa para se tornar uma inimiga em vez de um animal de estimação e faremos isso com nosso próprio código e script Não usaremos nenhuma ferramenta nem precisaremos de pacotes externos como o Emerald AI Os principais componentes a serem adicionados são um corpo rígido e um colisor de esferas , e também vamos definir um corpo rígido Vamos dar uma olhada no Unity e ver como isso se parece. Portanto, focando em nossa raposa, lembre-se de que ela precisa ter uma árvore de mistura que fique entre ataque e o não ataque com transições usando o parâmetro de ataque Tudo é controlado pelo controlador Fox Blend , que está aqui. Abrimos aqui, vemos a árvore de mistura, podemos ir do inativo para caminhar e correr ou você pode atacar Para que isso funcione, precisamos atualizar o script de locomoção da IA Temos que garantir que ele tenha um agente KniFMS como antes, adicionamos um novo componente de corpo rígido e garantimos que seja Também adicionamos um colisor de esferas com um gatilho ativado, o centro de 0,5 e um raio de E na cena, você deveria ficar assim. E para o Doozy Player, ainda estamos usando o Vision 3 atualizado e temos um novo script de saúde do player Começa com 100% de saúde, e criamos o controle deslizante de cura e o arrastamos até aqui Se eu clicar nele, ele mostra de onde vem o controle deslizante L. Vamos ver isso por um segundo na cena. Está na parte inferior central com esses parâmetros. Tem uma cor de fundo ligeiramente deslocada. Tem uma área completa e uma área cheia que definimos como verde. É a área de deslizamento da alça. A alça será desativada assim. Você pode ver que não queremos essa alça branca. Veja como funciona. Ao selecionar o controle deslizante de cura no inspetor, você pode clicar com o botão esquerdo do mouse e arrastá-lo para que o teste funcione Veja na parte inferior como a barra verde está se movendo para o sul 0-1 Vamos dar uma olhada no script do player L. Consulte também suas anotações. Mas obtemos uma referência ao controle deslizante de interface do usuário que criamos. Não se esqueça de que isso é necessário para os componentes da interface do usuário. Essa declaração de uso é importante. Queremos inicializar o controle deslizante Alpr aqui. Em seguida, lidamos com o dano, verificamos se o jogador está morto ou não e, se estiver, chamamos o método do dado no script de movimento do jogador. OK. A revisão da locomoção por IA neste momento deve ser assim Basta comparar seu código e ver se você o tem exatamente. É aqui que você atacará o jogador se ele estiver perto o suficiente. Caso contrário, você seguirá o MPC spawner Melhoramos e limpamos um pouco o código para Então, basta comparar seu método para lidar com o respawn para se parecer com este, especialmente os NPCs nulos removidos da seção da lista da Além disso, uma rápida visão geral do código atual no da versão três do movimento do jogador script da versão três do movimento do jogador, pois você precisa comparar seu código. Então, vamos evitar o movimento quando o jogador estiver morto. Ele usa o método de dieta. configurar o gatilho para morrer, o parâmetro que adicionamos reproduzirá a animação da morte para o jogador que está caindo para trás, chamaremos o método de fim de jogo Em seguida, reiniciaremos as coisas. Volte às nossas anotações por um momento no Módulo 211. Se você quiser ler mais sobre o que é cinemática, aqui está a definição oficial de como habilitá-la Exemplo, caso de uso, o que é um corpo rígido. Leia isso sozinho. Deixe-nos saber se você tiver alguma dúvida, usos comuns do corpo rígido, um exemplo de adição, não se esqueça de que em nosso exemplo que queremos é cinemática Eu deveria ficar assim. Só para revisar o parâmetro de ataque, vai controlar como a Fox ataca. Não use XT. Você usa a pausa Fox para o ataque real, que é renomeado como Estado a ser Fiz a interface do usuário para a saúde do jogador e atualizei o jogador. Instruções passo a passo que você deve seguir. Certifique-se de ajustá-la para caber depois de remover a alça. Certifique-se de modificar todos os seus scripts para que correspondam ao que é mostrado nas notas do curso neste momento. Módulo 213, recapitulação rápida. Queremos confirmar que a raposa pode realmente encontrar e matar o jogador e que o fim do jogo aparece. Mas neste momento, mesmo quando a saúde é zero, ela não parece morta, então melhoramos isso adicionando uma animação de clipe de morte. Também adicionamos esse parâmetro ausente para que funcione corretamente. Se você perder essa parte, volte aqui para ver como implementar. Obtenha o fallback Death, baixe-o com o Askin FBX for Unity, crie um novo estado e renomeie-o Nós o implementamos aqui com uma transição unidirecional para a morte. Isso é apenas para fins de informação, qualquer recurso adicional que você possa usar para colocar em seu jogo, talvez você queira colocar uma casinha para Jolene ou uma casinha de cogumelos Se você pode e quer comprar alguns ativos, como um urso, você pode. Mas há muitos ativos gratuitos que você pode usar. Alguns outros personagens NPC que você poderia usar. Há muitos mais. Esses são apenas alguns exemplos. Não, sua recapitulação de 215 é uma correção reversa do gerenciador de spawn ao corrigir o script da versão um do NPC spawner Para fazer uma verificação nula aqui e garantir que seu renascimento anual seja algo semelhante Essa é uma explicação de código ligeiramente aprimorada. Para aqueles que querem ter a referência ao script C e à referência conceitual, basta examinar isso, quais são nossas variáveis, métodos, declarações de condições, loops, noções básicas de sintaxe, interação e captação do jogador Isso fornece trechos de código para ajudá-lo a aprender a programar à medida que avançamos Ok, então neste momento, você deve fazer com que a Fox ataque e mate o jogador e o DoJ deve morrer Aqui está um questionário opcional para testar seus conhecimentos se você quiser, com perguntas e respostas Nos vemos no Tutorial três a seguir. 39. Aula avançada de Doozy e The Mean Troll usando a IA Esmeralda V1: Olá e bem-vindo de volta. Neste módulo, que é um módulo opcional bônus e não faz realmente parte do curso, daremos uma olhada no Emerald AI e nossos iniciantes poderão usar algumas das ferramentas projetadas para IA em unidade com pouca ou nenhuma codificação para que para IA em unidade com pouca ou nenhuma codificação para seus NPCs na IA funcionem Uma breve introdução ao Emerald AI depois de instalá-lo. Abaixo da janela, você deve ver alguns novos recursos relacionados à forma como o Emerald AI pode ser usado Você o encontrará em Window, Emerald AI. O principal recurso é o gerenciador de configuração. Comece com o gerenciador de configuração e siga as instruções. São uma documentação e dicas muito boas para apoiá-lo Você pode criar facções, combater, você pode duplicar Existe o Wiki para obter todos os detalhes, começando em casa. Ainda não funciona em URP e HDRP se você é iniciante por enquanto, não há necessidade Quais integrações eles têm e onde você pode obter suporte Vamos dar uma olhada nesse troll ruivo e como ele se configurou na IA esmeralda, passo a passo Então, logo no topo, o primeiro script que é adicionado e tudo é feito para você com o gerenciador de configuração de IA da Emerald AI Ele tem uma animação de esmeralda e detecção de esmeralda, sons de esmeralda, combate de esmeralda, comportamentos de esmeralda, movimento de esmeralda, saúde de esmeralda, otimização de esmeralda, interface de usuário de esmeralda, sistema de esmeralda e cria um animador . Apenas um cuidado: se você já tem um animador, talvez queira desativar o seu porque o Emerald adicionará um, então você não quer que eles entrem O box glider, o agente NAPMS e a fonte de áudio também são adicionados. Apenas certifique-se de que você não tenha nenhum deles configurado manualmente ao seu lado. A primeira é a animação Emerald. É aqui que fazemos as configurações do perfil de animação. Um perfil de animação contém todos os dados de animação de uma IA, incluindo o controlador animado que essa IA usará. Isso permite que a IA compartilhe os mesmos dados de animação, contando apenas com um único perfil de animação. Qualquer alteração feita um perfil de animação afetará qualquer IA que use esse perfil de animação. As animações devem ser compatíveis com esse modelo e compartilhar o mesmo tipo de RIC Se sua IA não reproduzir animações corretamente ou cair no chão, é provável que você esteja perdendo uma animação O tipo Rik não é compatível ou a animação não é compatível Aqui está o exemplo do perfil de animação do troll Olhando para o perfil da animação, vemos que ele tem um controlador de animador Vemos que ele tem várias outras configurações que examinamos, mas vamos dar uma olhada no controlador do animador Isso é o que o Emerald AI faz automaticamente por você e configura todos os estados necessários para sua lógica Nós ampliamos um pouco. Podemos ver como as transições são configuradas para você com base nos parâmetros que você fornece ao Emerald e Aqui estão seus estados de esquiva, seus estados de ataque, estados de bombardeio, estados de calor de combate, tipo de bloqueio, calor de bloqueio, tipo de recuo, tipo de atordoamento, estados de morte Suponha o vídeo e analise todas essas áreas. Se você comprou a inteligência artificial esmeralda, verá como elas funcionam juntas Observe todos os parâmetros que estão configurados para nós. Analisando o script de detecção Emerald, se você quiser acompanhar, comece com as mesmas configurações que usamos neste exemplo Essa é interessante, a transformação da cabeça, que vem disso. Nesta configuração do modelo, você pode simplesmente arrastá-la para dentro. Você também pode usar a transformação automática da cabeça com multa e, na maioria dos casos, ela a encontrará automaticamente para você É o campo de visão, a distância de detecção, a frequência de detecção, as seções de obstrução, a frequência de detecção de obstrução, as camadas a serem ignoradas e Etiquetas e camadas. Já o jogador está marcado com jogador. Quais camadas você deve observar no player e na IA? Você pode personalizá-las seguindo a documentação da Emerald AI, conforme necessário Eles também têm a ideia de facções. Em nosso exemplo, o arremesso faz parte da facção dos animais e, em seguida, você define os relacionamentos As feras são neutras umas com as outras, mas são inimigas para o jogador e inimigas para os goblins Você pode personalizar isso conforme necessário. Os sons de esmeralda configurados aqui se você quiser usá-los. Não o usamos neste exemplo. Esse é o combate. Esse é o tipo de ataque. Estamos usando uma espada, M. Não se preocupe com o texto. Funciona da mesma forma que para um clube. A distância de ataque, mas está muito próxima. O comportamento é agressivo, covarde ou passivo Qual meta seguir para acompanhantes não é uma companheira, então ela não está ativada Você quer que ele fique perto da área inicial, fuja com pouca saúde Nesse caso, essa lógica de movimento é orientada pelo NavMSH, em oposição ao movimento da raiz Se as animações tiverem movimento de raiz, mude isso para raiz Sua velocidade de caminhada é dois, sua velocidade de corrida é cinco. Por padrão, ele vai andar nas configurações de curva, configurações alinhamento. Se você quiser manter os pés no chão, você pode habilitar isso, mas isso custa um pouco de sobrecarga e desempenho Essas configurações maravilhosas, em nosso exemplo, são dinâmicas. Basicamente, essa é uma patrulha aleatória vez de pontos de referência ou ficar em um lugar ou caminhar até um determinado destino ou alguma configuração personalizada O raio de maravilha definido como 25, a inclinação máxima 30, as camadas por onde ele pode vagar, o atraso antes que mude o comportamento, a saúde. Então, ele está começando Ele não é imortal. Ele não se cura automaticamente. Você quer mostrar um efeito de calor? A otimização? Você quer otimizar os controles de IA se essa IA será otimizada ou não quando estiver fora da tela? A interface do usuário que aparecerá acima dele, qual câmera? Tag de interface: camadas de interface do usuário, escala de interface do usuário Você quer exibir seu nome, seu nível ou sua barra de saúde? Nesse caso, por enquanto, eles foram desativados, mas experimente e habilite-os se você tiver Emerald AI Configurações de combate, pode gerenciar seu texto de combate com isso. Se você usar texto de combate, o sistema Emerald, o animador, o lançador e seu avatar, o colisor de caixas, o agente NavMS e a fonte de áudio e Vamos dar uma olhada mais de perto nessa lógica de animação. Neste ano de janela, as configurações do animador com um controle configurado para desenhar sempre animações de combate. Ele digita animações de combate, ele digita animações de combate, ele digita duas animações de Primeiro, suas animações que não são de combate para idle podem criar uma lista São animações de caminhada. Basta arrastar os clipes que você obtém com seu modelo. Se você não tiver uma, como uma animação de caminhada para a esquerda, basta usar a animação de caminhada, por exemplo. Correndo, girando, se tiver alguma , caso contrário, basta usar a caminhada. É a morte. Digite um combate, combate inativo, caminhada de combate. Às vezes, você pode usar as corridas para caminhar, caminhar para correr. A velocidade dessa mudança depende. Corrida de combate, vire conflito se você tiver alguma animação lateral de conflito, esquivando-se se ele tiver alguma animação de sucesso, bloqueio, combate Equipe e desequipe sua arma, combate de tipo dois e assim por diante. Também use um emoticon para expressar emoção, se estiver acenando, ligando ou gritando Vamos fazer um pequeno teste de jogabilidade e vê-lo em ação e também observar que temos outro, Goblin Emerald AI, que é configurado como um companheiro e ele ajudará a defender 40. Tutorial 3: continue com a configuração de morte de Fox Attack e Doozy: Olá, e bem-vindo de volta ao Unity Tutorial three Doozy evitando tutorial três continua a partir da última parte do Tatorial dois, e vamos ver quais configurações podemos ajustar para que tudo isso se encaixe Então, uma rápida revisão dos tópicos. Vamos revisar e concluir a atualização da raposa para que ela se torne inimiga. Vamos finalizar e implementar interface de saúde do jogador Vamos revisar e modificar os scripts para que a lógica de tachas funcione, o gerenciamento da saúde do jogador e as condições de fim de jogo Atualize as animações e a lógica, teste e refine algumas mecânicas de jogo, como escalar a raposa para 0,40 em XYZ para sua Vamos definir a distância de parada para 1,5 e o alcance de aderência para 1,5, só para tornar as coisas um pouco melhores recapitular, certifique-se de ter adicionado um corpo rígido, que você verificou se é Você tem um colisor de esferas com centro Y de 0,5 raio um. O agente NaFMES tem uma distância de parada de 1,5 NA, que é um pouco mais próxima No script de locomoção de IA na raposa, tornamos o alcance de aderência 1,5 para substituir o padrão de dois que está Precisaremos modificar o blentry para adicionar lógica de ataque Vamos criar um estado de ataque com transições de e para o Blentry Criamos um novo parâmetro chamado ataque e o usamos para fazer a transição da condição de blenty para ataque Vamos usar como hora de saída para garantir que o clipe de ataque seja colocado antes de retornar ao Blentry Encontre a pausa do ataque da raposa, clipe aqui. Então, focando na raposa, vamos configurar a transição. Lembre-se de que estamos trabalhando no controlador Fox Blain aqui. Então, vamos criar e atualizar a interface do usuário para mostrar a barra de saúde. Se você ainda não fez isso, crie o controle deslizante conforme explicado anteriormente Vai ficar assim, controle deslizante de saúde. Em seguida, compare cuidadosamente seus scripts para garantir que você tenha alguma modificação de código que corresponda às das notas do curso aqui. Primeiro, vamos verificar a saúde do jogador. Verifique se você tem a referência ao controle deslizante da interface do usuário atribuído no inspetor O rendimento virá um pouco mais tarde . Então, insira um código. Voltaremos a isso em um tutorial futuro. Isso é para entender como o script do play Health funciona, então leia isso. Então, em resumo, o script de saída do jogador gerencia a saúde do jogador, incluindo sofrer danos, curar posteriormente e exibir o status de saúde por meio de um controle deslizante na interface Certifique-se de que o script Player Movement Vision Three , anexado ao doozy player, tenha a seguinte aparência Aqui está a explicação. R Em resumo, o movimento do jogador, script Visão 3, é neste momento responsável por lidar com o movimento, o salto e o estado de morte do jogador salto e o estado de morte Ele gerencia a entrada, o controle do personagem, as animações e as interações com outros componentes, como fontes de áudio O script garante uma movimentação suave e responsiva do jogador, ao mesmo tempo se integra ao gerenciamento geral do estado do jogo por meio do gerenciador de pontuação Também inclui mecanismos para lidar com a morte do jogador e redefinir o estado do jogador para novas tentativas do jogo O script de locomoção de IA anexado ao NPC Fox Certifique-se de que a raposa tenha a lógica para atacar o Não apenas siga, mas ataque aqui, e o valor do dano recebido seja definido como dez, por exemplo. Você pode aumentar isso se quiser ou diminuir, e temos um pouco de calma para garantir que ele não ataque constantemente. Você também pode ajustar e experimentar com isso. Aqui está a documentação de como isso funciona. O método de ataque, a parte importante e o método de resfriamento. O deslize de locomoção por IA permite que a IA detecte, siga e agora ataque o jogador com base em sua distância A IA para de atacar se o jogador estiver morto e retorna ao estado ocioso quando está fora do alcance de detecção, além de garantir um comportamento de IA suave e responsivo contribuindo para uma experiência mais envolvente Tudo isso foi uma análise e ajuste fino para configurar o ataque da Fox. Módulo 3.4, vamos adicionar uma animação de sucesso para o jogador. Isso é novo. Portanto, certifique-se de adicionar esse parâmetro, seja atingido. Vá para Miximo novamente. Como sempre, pegue uma animação de sucesso que você goste. Provavelmente esse funciona bem. Configure um novo estado para ser atingido. Defina uma velocidade para três para que ele toque um pouco mais rápido. Você deve ajustar isso dependendo do que seu clipe faz, sendo reproduzido muito devagar ou muito rápido. Vou atualizar o controlador do animador. Seguindo essas etapas, atualizaremos o script. Você chama esse método ao sofrer danos. Abra o script da versão três do movimento do jogador. Compare seu código e torne-o igual a este. Este ano, o método para lidar com o sucesso reproduz a animação de sucesso no player. Ao usar esse gatilho que configuramos, seja atingido. Atualize seu script de saúde de jogador que também está anexado ao Doozy Aqui está um resumo. Portanto, essa configuração garante que animação de sucesso seja reproduzida adequadamente quando um jogador sofrer dano independentemente de estar ocioso ou em E se a raposa não parar perto o suficiente da jogada antes do ataque, você pode ajustar um pouco a distância da bagunça Você pode reduzir o palavrão, experimentar uma combinação deles e garantir que ele pare a uma distância razoável que pareça realista Agora vamos aprimorar isso um pouco adicionando um efeito sonoro de calor quando um jogador sofre dano. Podemos usar para ouvir o som. Você pode obter sons aqui em freesound.org. Escolha um que você goste. E atualize o script de movimento do jogador novamente. Temos um novo campo para o som do chapéu. O script de saúde do jogador apenas verifica se você tem o último dado e atribui o som de aquecimento que você gosta testar e executar, garantindo que o som de aquecimento seja reproduzido e a animação de calor seja reproduzida quando o jogador sofrer danos. Vamos tocar o som de aquecimento assim que esse código for implementado. Esse gatilho, a animação de sucesso deles, está configurado aqui. Começamos um revestimento com um pequeno atraso para garantir que o som do hit seja reproduzido em sincronia com a animação e que o ataque, mais ou menos, torne mais envolvente Aqui tocamos o som real. Os dentes Coa podem ser usados com muita facilidade para atrasar coisas, como reproduzir um som no momento certo Se você percebeu que está experimentando o botão e o fim do jogo não funciona. Há algumas notas opcionais extras no Storial Four. Às vezes, componentes sobrepostos no Canvas Quando configurei isso de acordo com as notas, não me deparei com isso, mas demonstrarei no tutorial quatro como isso pode ser resolvido se isso for um problema para É apenas uma questão de qual componente de tela é renderizado quando e se eles se sobrepõem para bloquear a funcionalidade do botão Sinta-se à vontade para revisar o script C Sharp e guia de referência conceitual para iniciantes em Unity, conforme necessário, para continuar aumentando seu conhecimento sobre codificação em C sharp Tente fazer isso no contexto do jogo que estamos construindo, como sofrer danos e atualizar o LI. Esses são os trechos de código para o aprendizado teórico. Opa, sintaxe, gerenciamento de saúde, exemplos de animação de movimento, exemplos de IA e interação vieram e redefiniram exemplos, adicionando efeitos sonoros e assim por diante, um questionário opcional para testar Vamos dar uma olhada no projeto no Unity, como as coisas deveriam estar neste momento. Você deve ter todos os scripts a seguir atualizados com o código mais recente. Você deve ter alguns efeitos sonoros, incluindo o som que usamos e todos os outros. Outra olhada na raposa, neste momento, deve ter seu controlador de mistura de raposas, seu agente nifmes, agora com uma distância de parada de 1,5, um pouco mais perto evitação de obstáculos talvez seja um pouco menor do Colisor de esferas de configuração de corpo rígido com esses parâmetros. O script de locomoção AL com a mais recente lógica e alcance de ataque foi reduzido para 1,5, a detecção dez Se você quiser que ele detecte o jogador mais cedo, aumente para, digamos, 12 a 15. Dando uma olhada no Doozy neste momento, fonte de áudio é enviada para o componente SFX do mixer de áudio Observe que o som de obtenção de calor está atribuído aqui, o script de saúde do jogador. Se você encontrar bugs, compare seu código com as notas do curso. Também vou abri-los aqui rapidamente no Visual Studio e percorrê-los. O primeiro é o script de locomoção da IA. Essa é a parte em que ele ataca o jogador, causando dano e esfriamento. A seguir está a versão três do movimento do jogador. Observe o novo campo para o som de sucesso. H, observe o método para lidar com o atropelamento. Usando o gatilho get hit e o som com um pequeno atraso. Analisando o script de saúde do jogador. Acione a animação de sucesso. Vamos fazer um teste rápido para ver como tudo deve funcionar. Pode usar isso para comparar com o que seu projeto está fazendo. Hm. Hmm. Mmm. Mamãe. 41. Criar/atualizar a interface do usuário para mostrar a barra de saúde para o jogador (recapitulação da implementação): Olá e bem-vindo de volta. Neste módulo, faremos uma rápida revisão e recapitulação após a implementação da interface para mostrar a barra de saúde do jogador e vamos apenas seguir as instruções passo a passo Você pode acompanhar as anotações do curso se tiver perdido alguma coisa. Mas vamos continuar juntos. Primeiro, precisamos configurar um controle deslizante. Portanto, se você ainda não criou controle deslizante em sua tela, assumindo a tela e selecionando o controle deslizante de interface do usuário, nomeie o controle deslizante de saúde do controle deslizante, personalize o controle deslizante de acordo com sua preferência, removendo a alça e ajustando o plano de fundo e o visual completo, assine um controle deslizante em sua tela, assumindo a tela e selecionando o controle deslizante de interface do usuário, nomeie o controle deslizante de saúde do controle deslizante, personalize o controle deslizante de acordo com sua preferência, removendo a alça e ajustando o plano de fundo e o visual completo, assine um controle deslizante no script. Você seleciona um jogador em que configurou o script de saúde do jogador. Você arrasta o controle deslizante de saúde da hierarquia para o campo do controle deslizante de cura no inspetor e, em seguida, testa o Sob a tela, controle deslizante de saúde, lembre-se de que a alça está desativada. Essa é a barra de saúde. Este é o controle deslizante HE, e é assim que você configura a barra de saúde para dosagem 42. Atualizações para lógica de ataque, barra de saúde do jogador, morte e condições de jogo: Vamos continuar com a análise das atualizações da lógica de ataque, da barra de saúde do jogador, das condições de morte e fim de jogo. Vamos analisar a atualização da saúde do player de script, que está anexada ao player, e adicionaremos uma capacidade de rendimento com essa atualização. Atualize o movimento do jogador na visão três para fazer isso funcionar e atualizar a locomoção da IA Este script para a saúde do jogador, certifique-se de abrir o seu e, a partir das anotações do curso, usar o botão copiar, recortar e colar o código na saúde do jogador. Verifique se ele está conectado ao seu player. Aqui está uma documentação detalhada para o jogador al. Leia isso em seu próprio tempo. método Take damage, é o método morto, o método die e o método yielding, ainda não totalmente implementados, mas faremos isso no próximo tutorial A atualização da interface de saúde e o resumo do script de saúde do jogador gerenciam a saúde do jogador, incluindo sofrer danos, ceder e exibir o status L por meio de um controle deslizante de interface Isso garante que a saúde do jogador seja atualizada corretamente e reflita as mudanças na interface do usuário. O script também trata da morte do jogador e interage com a visão três do movimento do jogador com as atualizações de código mais recentes para gerenciar o estado do seu jogador Esse script é essencial para criar um sistema de gerenciamento de saúde responsivo e dinâmico para seu personagem de jogador Portanto, atualize seu movimento de jogador na versão três, script com o código a seguir. Certifique-se de ter o método para lidar com a morte e a reinicialização. Aqui está uma documentação detalhada que você pode estudar. Por fim, atualizamos a locomoção da IA caso você tenha perdido alguma coisa, use esse código neste momento do E é documentação. O script de locomoção de IA permite que IA, como a raposa, detecte, siga e ataque o jogador com base em sua distância e status A IA para de atacar, o jogador está morto e retorna ao estado ocioso quando está fora do alcance de detecção O script garante um comportamento de IA suave e responsivo contribuindo para uma experiência mais envolvente do jogador 43. Como adicionar uma animação de "Get Hit" ao jogador: Olá e bem-vindo de volta. Neste módulo, veremos como você pode adicionar uma animação de sucesso para seu player. Essa é uma nova funcionalidade. Ainda não fizemos isso para Doozy. Para adicionar uma animação de sucesso ao animador existente do jogador e garantir que ela seja reproduzida corretamente enquanto o jogador está em vários estados, como respirando ocioso ou correndo, você precisará atualizar o script de movimento do jogador novamente para acionar essa Veja como você pode integrar isso à sua configuração existente. Primeiro, acesse mixmodeot com e baixe o clipe de animação de sucesso de doozy taking damage. Você pode baixar como FBX for Unity com 60 quadros por segundo sem Você pode baixar como FBX for Unity com 60 quadros por segundo Lembre-se, você pode fazer isso. Salve-o em assets characters doozy. Use a captura de tela se você ficar preso. Para Doozy, também precisamos de um novo parâmetro, get hit. Precisamos de um novo estado, seja atingido por transições de ida e volta do AL e funcionando Queremos ter certeza de que a velocidade para ser atingido esteja definida como três, e essa é a que obtivemos sendo atingida. Pegue um que faça sentido, certifique-se de que funcione para Doozy É quando a raposa o ataca e vamos jogar a uma velocidade de três para que pareça mais realista. Precisamos atualizar nosso controlador de animador. Temos que adicionar esses estados de animação. Na janela do animador, você adiciona um novo estado de animação para ser atingido Você garante que esse estado possa fazer transição dos estados de respiração ociosa e de funcionamento Você deve ajustar a velocidade para três. Podemos adicionar um parâmetro de gatilho para criar um novo animador de gatilho chamado get hit. Esse aí em cima. Você pode descobrir as transições de inatividade e corrida para ser atingido com base no gatilho e corrida para ser atingido com base no Configuramos as transições volta à respiração ou à inatividade com base nas condições ou após um determinado período. Se você preferir, precisamos atualizar o script de movimento do jogador, então adicionamos um novo método para ser atingido Você criará um método para lidar com a animação de sucesso e opcionalmente, redefinir o estado do jogador Você vai chamar o método ao sofrer dano para modificar o script de saúde do jogador, bem como para acionar a animação de ser atingido quando um jogador sofre dano. Veja como você modificará o versão três do movimento do jogador e o script de saúde do jogador. Primeiro, o script da versão três do movimento do jogador. Como lembrete, use o botão copiar, substitua todo o código e o script da versão três do movimento do jogador script da versão três do movimento do Essa é a parte certa para lidar com o método ser atingido e reproduzir a animação térmica. Atualize também o script de saúde do jogador. Em resumo, no controlador animado, adicionamos uma animação getting hit com um parâmetro de gatilho get hit. Garantimos que as transições sejam configuradas para permitir alternar entre respirar em marcha lenta e correr e ser atingido Adicionamos o método get hit para acionar a animação de ser atingido ao script da versão três de movimento do jogador, e atualizamos o script de saúde do jogador para fazer com que o movimento do jogador seja atingido em três instâncias quando um jogador sofre dano. Essa configuração garante que a animação de ser atingida seja reproduzida adequadamente quando um jogador sofrer dano, independentemente de estar ocioso ou Se a raposa não parar perto o suficiente do jogador antes do ataque, você pode definir a distância de parada do agente da NAF para algo como 1,5 ou 1,4, dependendo do tamanho da raposa, ela experimenta, e a taxa de lançamento da raposa é de 0,9, por exemplo, até que ela pare bem perto, quase em contato com o 44. Como adicionar um efeito de som de sucesso quando o jogador sofre dano: Você. Lo e bem-vindo de volta. Neste módulo, aprenderemos como adicionar um efeito sonoro de sucesso quando um jogador sofre dano. Para implementar o som get hit nesse local sempre que o jogador sofrer dano, você precisará adicionar um clipe de áudio ao script da versão três do movimento do jogador e acioná-lo quando um jogador for atingido e garantir que ele funcione junto com a animação get hit. Sim, algumas dicas para você fazer isso. Eu gosto de usar freesound.org para obter alguns sons. Além disso, fornecemos alguns sons que você pode usar neste tutorial, mas obter seus próprios sons, se quiser, e armazená-los na pasta Assets SFX for sound effects Então, vamos atualizar o script de movimento do jogador novamente para lidar com o efeito sonoro de obtenção. Assim, podemos adicionar um novo campo para o som atingido e modificar o método get hat para reproduzir o som quando o jogador sofrer dano. Novamente, como lembrete, use o botão de cópia e pegue o código Aqui está o novo campo para o som de sucesso chamado get hit sound. É um clipe de áudio. Veja o método para lidar com hit e tocaremos o som do hit se houver um som e houver uma fonte de áudio. Atualize o script de play heal, ou pelo menos verificamos se precisamos atualizar. Nenhuma alteração é necessária atualmente, pois ele já chama o método GetHit. Basta verificar se isso acontece. Atribua o som do hit no editor do Unity aqui. Usamos o som e também fornecemos um som no curso. Basta arrastá-lo até aqui. Execute e teste o jogo e veja se consegue ouvir o som quando Doc sofre danos. Em resumo, adicionamos um novo campo de som get hit e modificamos o método get hit para reproduzir o som quando o player é atingido. No inspetor do editor, atribuímos o clipe de áudio desejado ao campo get hit sound em um componente de movimento do player, versão três Essa implementação garantirá que o personagem do jogador não apenas acione a animação de sucesso, mas também reproduza o som associado sempre que sofrer danos 45. DoozySeriesTut3Mod3: Olá e bem-vindo de volta. Se você descobrir que seu clipe de som não corresponde exatamente à duração ideal para reproduzir o som de aquecimento em sincronia com a animação, você pode fazer algumas coisas. Você pode tornar a animação mais longa, fazer com que ela seja reproduzida mais rápido ou mais devagar ou pode ajustar com um pequeno atraso antes de reproduzir o som Portanto, isso garante que o som seja colocado no momento certo. Para adicionar um pequeno atraso antes de reproduzir o som atingido, você pode modificar o método get hit na versão três do movimento do player para incluir uma rotina de código que introduz o atraso. Veja como implementá-lo Examinando o script da versão três do player Movement, pegue o código que você precisa usar ou, se não tiver certeza, basta copiar o código inteiro e substituí-lo. Existe a variável de som de sucesso. E desta vez tem um pequeno atraso. Vamos ajustar um pouco o código. Então, se você for atingido por um gatilho de acerto, iniciamos um revestimento com um atraso de 0,2 Você pode ajustar isso conforme necessário até que funcione corretamente. Use a corrotina para reproduzir o som de calor com esse atraso Explicação. Número um, o coatino para o som atrasado O som de calor com atraso é adicionado. Este revestimento espera por um determinado período de tempo, I E o atraso antes de reproduzir o som do chapéu Para acionar a corrotina no método get it, vez de reproduzir o som imediatamente, o script agora começa a reproduzir a corrotina do som de sucesso com atraso com um atraso de 0,2 segundos ou qualquer outra duração que você especificar conforme Você pode ajustar o tempo de espera aqui para atender às suas necessidades. Execute o jogo, teste-o e garanta que ele seja reproduzido no momento certo para você após o início da lógica da animação. Ajuste o atraso conforme necessário para sincronizar o som com o efeito visual Essa abordagem permite controlar quando o efeito sonoro reproduzido, permitindo que ele corresponda melhor ao tempo da animação. 46. Tutorial 4: introdução: Olá e bem-vindo ao Tutorial Número Quatro do Unity, onde Doozy descobre o poder das Vamos ter uma visão geral rápida do que faremos no Tutorial quatro. Mas a parte mais importante é que vamos permitir que Doozy ataque Teremos um novo inimigo c, faremos com que o orc se mova, encontre Doozy, ataque Doozy e Doozy poderá Então, bem-vindo a este tutorial, e é aqui que permitiremos que Doozy se defenda desse novo inimigo, o inimigo orc, coletando e usando pedras mágicas como arma de Você aprende como pegar essas pedras mágicas, rastrear a contagem de pedras na interface do usuário e implementar uma mecânica de fundição com resfriamento Também orientaremos você a configurar o inimigo orc com um comportamento personalizado, garantindo que ele possa perseguir e atacar Doozy quando estiver ao alcance Portanto, este tutorial se baseia em nossas lições anteriores, expandindo a IA inimiga com uma lógica mais complexa usando scripts C Sharp e outros componentes Vamos começar e continuar nossa jornada aprendendo o desenvolvimento de jogos e a codificação em C Sharp Agora você está no caminho certo para se tornar um verdadeiro programador e nem percebeu isso Se você quiser que o orc patrulhe quando um jogador não estiver ao alcance, a propósito, você encontrará um script atualizado usando este link nas notas do curso E em breve também mostraremos como fazer a patrulha organizacional Isso é opcional e não obrigatório. Se você não fizer o patrulhamento, ficará parado e ocioso Se Doozy estiver perto o suficiente, você atacará 47. Tutorial 4: visão geral de tópicos: Então, vamos analisar os tópicos abordados e você também pode usá-los como uma lista de verificação para ver quais funcionalidades e recursos você deseja implementar ou implementou Então, vamos atualizar o controlador do animador do jogador para permitir o ataque ao inimigo da organização Vamos pegar o inimigo da organização. Esse ativo aqui é chamado de organização estilizada em três D com esse link fornecido na loja de ativos e tem a seguinte aparência Adicione-os aos seus ativos e baixe-os. Vamos configurar e preparar a organização inimiga para a batalha. Vamos criar uma pedra mágica para o jogador pegar. Primeiro, criaremos uma pedra simples e depois aprenderemos como torná-la mais inteligente com efeitos especiais Crie uma pedra mágica pré-fabricada como arma de alcance para Dusi lançar ou jogar Vamos colocar pedras mágicas na cena e configurá-las como itens que podem ser gerados posteriormente Implemente um gerador de pedras mágicas, habilite a coleta de pedras mágicas e atualize a contagem de pedras, atualize a lógica para rastrear pedras mágicas e exiba a contagem na interface do usuário habilite a coleta de pedras mágicas e atualize a contagem de pedras, atualize a lógica para rastrear pedras mágicas e exiba a contagem na interface do Também vamos aprimorar o script de movimento de Doss para poder realmente jogar as pedras em um inimigo como a organização implementaremos o rastreamento de saúde para a organização. Vamos criar um sistema para causar dano aos inimigos e reduzir a saúde até que eles morram. Em nosso curso, vamos nos concentrar na organização para isso, mas você pode usá-la para qualquer outro inimigo de forma semelhante. Vamos controlar a diminuição da contagem de pedras quando usadas e permitir que a coleta aumente Vamos adicionar um pouco de lógica de resfriamento. Efeitos sonoros corporativos, faça um pouco de limpeza e depuração Importamos uma nova tela de interface de usuário e pacotes game over Canvas, que forneceremos ou você poderá criar os seus próprios, mas forneceremos alguns que pareçam melhores do que os que usamos até agora. Vamos aprimorar a funcionalidade do game over com tela separada para evitar conflitos de interface, se você os tiver. Se você os tiver, corrigiremos o bug do loop de animação de morte da organização desativando o loop desativando Também habilite o pós-processamento para aprimorar o visual de toda a cena do jogo e a iluminação e os efeitos Também ajustamos as camadas para player terrestre padrão e para o pós-processamento. 48. Atualize as habilidades do Doozy para ser capaz de atacar: Olá, e bem-vindo de volta. Neste módulo, começaremos a analisar as habilidades de dosagem aprimoradas para podermos atacar Como esperado, vamos usar mixamo.com e vamos comprar um clipe de animação para ele Vamos usar esse ataque mágico permanente de dois H no personagem Doozy, neste ano, em pé para atacar mágico Configure Doozy como o personagem aqui, defina essas configurações. E faça o download. Também vamos adicionar um novo parâmetro de gatilho chamado cast e vamos criar um novo estado chamado cast attack. Vamos criar transições do estado de inativo para o estado de ataque conjurado e vice-versa e fazer a transição da corrida para o ataque conjurado e Vamos usar o gatilho lançado para atacar e depois usar o tempo extra para voltar do modo inativo ou da corrida A propósito, esse diagrama é chamado máquina de estados, se você ainda não percebeu isso. Vamos dar uma olhada na configuração por um minuto. É uma chance de verificar se todos os parâmetros que você deve ter neste momento do curso estão aqui. Observe o elenco que você deve adicionar. Este é o clipe que usaremos para fundir ou atirar a pedra Esse é o estado definido com transições que se estabelecerão entre respirar ociosamente e correr para frente e para trás Usaremos a condição, configuraremos todas como antes e usaremos o tempo de saída quando fizer sentido retornar e usaremos a condição para acionar a fundição. Então, mais tarde no tutorial, atualizaremos o script dos jogadores para que possamos implementar o casting real. Mas, por enquanto, vamos passar para a organização e prepará-lo para a batalha também. 49. Importar o orc e preparar sua configuração: Olá e bem-vindo de volta. Neste módulo, vamos importar a organização e preparar uma configuração. Se você ainda não baixou a organização, faça isso agora. Você pode usar este link aqui para obtê-lo gratuitamente. Baixe-o, importe-o e, em seguida, arraste o orc prefab para Você o encontrará nesta pasta. Mas você notará que ele não está segurando seu X, então vamos deletar esse da cena e fazer algo um pouco diferente. Salve sua cena e, em vez disso, vamos abrir a cena de demonstração, orc, e procurar a versão ociosa dele Em breve, melhoraremos isso, já que ficar parado sem fazer nada é entediante. A propósito, agora você também sabe como abrir outra cena e voltar para a cena em que estamos trabalhando. Antes de fechar a cena, certifique-se de salvá-la antes de abrir essa cena de demonstração. Em jogos complexos, você aprenderá no futuro que um jogador pode se teletransportar entre vários níveis nas cenas do jogo Neste tutorial, não abordaremos isso, mas certamente mostraremos como você pode se teletransportar por meio de um gateway em futuras séries de tutoriais Então, quando tivermos o orc, queremos criar nosso próprio prefab O que nos interessa é um dos exemplos em que ele está segurando o x como este na cena demo Idle Idle Então, quando tivermos essa, reabriremos nossa cena principal chamada Old Forest e agora vamos arrastar o prefab org enemy do prefab ácido que criamos acima Depois de tê-lo, você cria um pré-fabricado para ele. Sobre os ácidos pré-fabricados. Vamos colocá-lo fora de vista na floresta à direita nas árvores, mas não muito longe do jogador para facilitar o teste para nós . É aqui que ele guarda a idade. Você pode acompanhar exatamente ou simplesmente colocá-lo em algum lugar desta região aqui. Se é onde está a casa e é aí que está Dusi, queremos colocar a organização em algum lugar Nós o renomeamos para org enemy. Criamos um prefab no prefab de ativos que aparece lá Ainda temos seu animador original, mas vamos melhorar isso em breve Nesse ponto, com a organização em uma cena, você pode colocar o play e dar uma olhada. Ele deveria ficar lá parado, sem fazer nada. Ele não conhece Doozy, não conhece o jogador Além disso, você notará que o movimento da raiz de suprimento está ativado. Você pode desmarcar isso, não usaremos o movimento raiz. Você pode ajustar o raio e a altura conforme necessário e é uma maneira simples de entender o que o agente NAFMA Finja que você tem um ímã embaixo uma mesa de vidro e tem algumas arruelas de metal em cima e arrasta o ímã, ele moverá as lavagens. Exatamente desse jeito. Imagine um ímã sob o solo e ele moverá a organização conforme o ímã é A configuração do inimigo da organização, certifique-se de ter esta aparência, adicione um agente de AFMs para ele defina uma distância de parada para duas Adicione também um corpo rígido. Certifique-se de que a cinemática esteja ativada, adicione um colisor de cápsulas com configurações Você também pode fazer com que o deslocamento da base seja negativo 0,15 e isso apenas o ajudará a ficar logo abaixo da superfície deslocamento da base está aqui. Compare suas configurações aqui, certifique-se de fazer o mesmo. 50. Faça o movimento de orc, detecte e lute contra o jogador: Olá e bem-vindo de volta. Neste módulo, vamos fazer com que a organização se mova, detecte e lute contra o jogador. Vamos começar adicionando o script de locomoção de IA, o mesmo que usamos para a raposa, nele Vamos apenas adicionar um componente ou arrastar o script do script de ativos e atribuir o Doozy player conforme mostrado abaixo, e definir o intervalo de detecção para dez Defina o alcance de ataque para dois, mas esteja ciente de que você não conseguirá atacar ZD neste momento Precisamos configurar um controlador de animador adequado para ele, semelhante ao da raposa, mas usando suas animações e alguma lógica adicional Primeiro, certifique-se de ter seu inimigo orc. Certifique-se de arrastar o doozy player dentro e atribuir o script ALL commotion No módulo anterior, adicionamos um corpo rígido, um colisor de cápsulas e um agente AFMs, e vamos mudar isso e melhorar isso Vamos trabalhar nesse controlador de animador aprimorado em vez do padrão É assim que vamos fazer isso. Vamos começar fazendo uma cópia da que usamos para a raposa. Vá e encontre a raposa e veja onde ela é segura, e então você localiza o controlador fox blend que fizemos para a raposa. Você o seleciona e pressiona Control D para fazer uma duplicata dele e renomeá-lo para Orc Em seguida, você pode movê-lo para a pasta assets animator controllers Se você não tiver essa pasta, basta colocá-la nos controladores do animador de ativos selecionar o anime c na cena e atribuir o controlador Orc blend ao slot do controlador do animador orcs Então aqui está a cópia e nós a atribuímos ali. Lembre-se de verificar todas essas configurações , bem como as mencionadas. Precisamos modificar o controlador de combinação de organizações para funcionar com clipes de animação de organizações A organização vem com suas próprias animações, como você provavelmente já viu, então vamos usá-las Vamos clicar duas vezes no controlador de combinação de organizações para editá-lo. Observe que já temos os parâmetros de velocidade e gatilho de ataque e uma mistura com as transições de e para o ataque que herdamos do controlador Fox Blend Árvore mesclada de ataques rápidos, mas esses clipes precisam ser substituídos pelos da organização. Analisando nossas anotações, vemos que só precisamos configurar os clipes de animação corretos para a organização Abrimos a mistura e substituímos cada clipe da seguinte maneira. O orc só tem uma animação inativa. Podemos excluir o segundo que obtivemos quando copiamos a raposa Também queremos ter certeza de que os clipes para caminhada e corrida em marcha lenta estejam configurados em loop, o que, se não estiverem, os fará Certifique-se de definir o tipo de mistura para um D, automatizamos os limites e confirmamos que a velocidade é o parâmetro atribuído para controlar a combinação dos movimentos aqui Você pode arrastar o controle deslizante de velocidade para testá-lo, e ele deve funcionar quando estiver configurado para um e eu vou para zero e em algum lugar no meio da caminhada Como lembrete, os blendris são uma ótima maneira de combinar a transição entre animações com base em um Você deve se lembrar que a raposa não podia morrer, então ela não tinha um estado de morte, mas a organização deveria morrer. Precisamos criar um novo estado de morte para a organização na camada base da seguinte maneira. Também precisamos substituir o clipe de aderência que usamos. Usaremos uma das animações de ataque da organização em vez dos clipes de raposa Vamos também adicionar um novo booleano morto do Leste. Parâmetro. Lembre-se de que pode morrer enquanto se move por causa de sua força ou ao atacar Precisamos de uma transição do estado de mistura para o estado de morte e do ataque para o estado de morte na camada base Não se esqueça de configurar também os clipes de animação para o estado de morte e ataque Certifique-se de que o clipe para morrer não faça um loop, para que você possa desativar o tempo de loop e aplicar. Caso contrário, você morrerá constantemente. Esse é o que usaremos para o ataque. Então, nesta árvore de mistura, fazemos a transição da árvore de mistura para o ataque e voltamos do ataque para a morte e da árvore de mistura para a morte, usamos o parâmetro Estate como condição. Obviamente, uma vez que ele está morto, transição não volta. Em resumo, precisamos fazer transição da mistura para o ataque e vice-versa controlada pela condição de ataque e, em seguida, como hora de saída para retornar ao ataque em um clipe controlada pela condição de ataque e, em seguida, como hora de saída para retornar ao ataque em um Também precisamos passar do ataque para a morte e da mistura para a morte quando o Estado B se tornar realidade É quando o bezerro é zero. Adicionamos o parâmetro East date bull. É importante definir a condição desde a matança e o ataque até a morte usando o parâmetro East Date Bo Você pode notar que o clipe de matriz está configurado como circular por padrão por algum motivo estranho . Nós não queremos isso. Se você ver isso ao baixá-lo, certifique-se de desativar o tempo de loop e solicitar esse clipe. Neste curso, apenas para garantir que mostramos como manter um script simples do Alocommotion separado de um mais complexo O que vamos fazer é fazer uma cópia do script Alocommotion, e vamos chamá-lo de clocomotion scripts, onde você deve salvá-lo Para explicar isso, poderíamos ter editado o script original, mas quero ilustrar a versão básica usada pela Fox versus a versão mais aprimorada da organização, que não lida com ataques e detecções de locomoção da mesma forma que prejudica o jogador e também adiciona funcionalidades para que a Vamos fazer isso substituindo script do componente de locomoção de IA apenas no inimigo da organização por ou locomotion e reatribuindo a transformação do jogador como jogador Você precisa abri-lo no Visual Studio e garantir que o nome da classe corresponda ao nome do arquivo após copiá-lo ou à locomoção Defina um alcance de detecção para 20 agora e podemos definir o alcance de ataque para dois e experimentaremos isso mais tarde. Faremos com que a organização fique ociosa por um tempo e, quando detectar o jogador, ele a ataque Também apresentaremos a habilidade da organização de sofrer danos do jogador e morrer quando a saúde for zero ou menor. Primeiro, vamos aumentar o dano para torná-lo mais realista. Cerca de duas eliminatórias com X devem bastar. Defina o dano para 50. Isso significa que se você pensar que a saúde de Dozi é 100, duas vezes 50 é 100, então Doozy deve morrer após duas eliminatórias e esse é o código que o Continuaremos anunciando a lógica para possibilitar que Doozy corra mais rápido, o que é opcional. Para que ele possa escapar com mais facilidade e atacar a organização, podemos adicionar saúde e morte à organização criando um LScript inimigo e aprimorando um pouco mais as habilidades e a lógica de Dozi Agora, abra seu script de locomoção e verifique se ele tem todo esse código aqui Lembre-se de que você precisa de uma referência ao LScript inimigo, obtenha o script inimigo Isso é para seguir o jogador. Isso é para atacar o jogador. O método de seguir o jogador e o método do jogador de ataque. Queremos evitar o ataque se ele estiver morto. É aqui que você define o valor do dano com um parâmetro de dano de 50. Estabelecemos um atraso de 1,5 segundo entre os ataques e implementamos um tempo de recarga de ataque com I enumerator attack, cooldown implementamos um tempo de recarga de ataque com I enumerator attack E também criamos e anexamos o script de saúde do inimigo à organização e atribuímos as referências conforme necessário no inspetor, criando um novo script de saúde do inimigo com o código a seguir Isso é opcional. Se você quiser fazer isso, basta descomentar essas linhas para que possamos desativar o colisor do inimigo para que ele não interfira com outros objetos da morte, mas vamos destruí-lo de qualquer maneira, então isso realmente não importa Essa é a aparência de um inspetor com script de locomoção c, alcance de detecção de 20, alcance de ataque de dois, o jogador designado aqui e o script de saúde do inimigo com uma saúde máxima Neste ponto, eles podem matar Dusi, mas Dozi ainda não pode revidar e faremos isso Vamos tirar um momento para limpar um pouco as coisas para o Canvas. Renomeie seus componentes do Canvas e a ordem dos elementos como essa seguindo as notas do curso fornecidas Vamos renomear o jogo do painel para o pop-up GameOver, renomear a caixa de diálogo do painel para caixa de diálogo, se você ainda não o fez, e basta arrastá-los para reordená-los Os componentes que você vê aqui sobre os quais não falamos serão adicionados posteriormente, não se preocupe com isso por enquanto. Vá para verificar o código do script do gerenciador de pontuação para ter a seguinte aparência. Novamente, use o botão copiar. E você deve ser capaz de testar o jogo e confirmar se consegue matar Doozy e se o botão de nova tentativa funciona Assista ao vídeo do ponto de verificação do projeto, que o guiará por esses módulos, revisando a configuração do k enemy no editor Unity, e você também pode usar isso como uma validação para ver se você fez tudo corretamente nas notas do curso 51. Ponto de verificação do projeto (Mod4.1-4.3): Olá, bem-vindo ao vídeo do checkpoint de TutorialFur, na primeira parte, em que veremos um novo inimigo, o orc, e logo depois pegaremos algumas pedras mágicas que Doozy pode usar algumas pedras mágicas que Doozy Então, o que vamos abordar é como atualizar o controle do animador do jogador, como obter um inimigo k estilizado de três D gratuitos, configurar e reparar o inimigo k para a batalha, criar uma pedra mágica para o jogador pegar, projetar uma pedra mágica pré-fabricada como uma arma de alcance para Doozy lançar na organização, colocar as pedras mágicas na cena ou configurá-las como itens ou Vamos implementar um gerador de pedras mágicas opcional. Vamos ativar a coleta de pedras mágicas e atualizar a contagem de pedras Podemos atualizar a lógica para rastrear as pedras mágicas e exibir a contagem na interface do usuário. Vamos anunciar o roteiro do movimento de Dozi para poder lançar e atirar essas pedras na organização Vamos melhorar o monitoramento da saúde do inimigo da organização. Vamos criar um sistema para causar dano aos inimigos, reduzir sua saúde até que eles morram, controlar a contagem de pedras diminuindo-as quando Duty usa uma pedra e permitir as pedras lançadas que erraram o alvo sejam coletadas novamente Adicione também uma lógica de resfriamento para limitar a frequência de fundição de pedras. Vamos melhorar os efeitos sonoros, ajustar algumas configurações do jogo, depurar e assim por diante Vamos importar um novo UI Canvas e um pacote game over Canvas será fornecido pela MafutaGames Mas você também pode construí-los . Anuncie a funcionalidade de fim de jogo com uma tela separada para evitar conflitos na interface do usuário ou, pelo menos, demonstrar como ela reduz o risco de conflitos sobrepostos Vamos corrigir o bug do loop de animação de morte de organizações, se você o conseguir desativando Você pode ativar o pós-processamento caso ainda não tenha feito isso, para anunciar imagens, ajustar camadas para padrão, reprodutor básico e pós-processamento Vamos revisar alguns dos itens importantes do Módulo 4.1, onde atualizamos as habilidades de Dozi para poder atacar Vamos receber um clipe de animação do elenco do xamoot com para Lembre-se de fazer o download sem a capa e sem 60 quadros por segundo para o Unity. Escolhemos usar este, o personagem 19, não PBR, com ataque mágico de duas mãos 04 FBX Adicionamos um novo parâmetro de gatilho chamado cast. Criamos um novo estado chamado ataque de elenco. Criamos transições de inatividade para carstac e vice-versa e corremos para casetac e vice-versa, usamos o gatilho de lançamento para atacar e, em seguida, temos tempo de saída para voltar do modo inativo ou em execução usamos o gatilho de lançamento para atacar e, em seguida, temos tempo de saída para voltar do modo inativo ou A propósito, o diagrama é chamado de máquina de estados. Também atualizaremos os scripts de saúde do jogador. Isso mostra onde você pode importar a organização e onde obtê-la na Unity Asset Store. O aviso é um ativo gratuito. Módulo 4.2. Isso é o que parece quando você o baixa, nós o importamos. Nós arrastamos o k brief para a cena, mas descobrimos que ele não está segurando seu X. Não vamos usar essa versão, vamos salvar a cena e abrir a cena de demonstração k e vamos encontrar a versão Idlidl Foi encontrado o Asset three D estilizado Ok. Aqui estamos na cena demo, a versão Idle Idle dele, essa E vamos usar isso como ponto de partida seguindo as notas do curso. Vamos criar nosso próprio prefab a partir dele. Em seguida, vamos trazê-lo de volta para nossa cena na floresta alternativa. Depois de renomearmos como Ok enemy e criarmos nosso próprio prefab. Então aí está ele. Ele só está fazendo um ídolo. Claro, ele não sabe nada sobre doozy, então ele não pode fazer nada Ressaltamos que você deve desativar o movimento raiz para o caso de os clipes de animação interferirem no movimento da navegação Adicionamos um agente Navmes para ele. Definimos a distância de parada para dois. Nós adicionamos um corpo rígido para ele. Não se esqueça de ativar sua cinemática. Adicionamos um colisor de cápsulas com as configurações abaixo. Então, podemos ajustar levemente o deslocamento da base do agente Navmes em menos 0,15 apenas para garantir que seus pés estejam logo abaixo do solo Modio 4.3, demos uma olhada em como podemos fazê-lo se mover, detectar e lutar contra o jogador Então, começamos adicionando o script AI locomon nele. Você contrata o jogador doozy ali mesmo. O alcance de detecção ainda é de dez e dois, assim como era para a raposa. Mas tomamos a decisão de configurar um controlador de animador aprimorado para ele em vez do padrão, e começamos copiando o da Fox e o chamamos de controlador de combinação de organização ou simplesmente ignoramos meu tipo de controlador de combinação de organização Deve ser um controlador de combinação de organizações. Em seguida, modificamos o controlador c blend para funcionar com clipes de animação de organizações Certifique-se de ter parâmetros para velocidade e ataque. Substitua todos os clipes de caminhada ociosa e corrida para usar os clipes de animação dos orcs, não a raposa. Arraste-os para testá-los, encontre-os encontre-os E então discutimos que uma raposa não pode morrer, então ela não tem um estado de morte, mas é claro que queremos que Dui seja capaz de revidar e matar o orc Então, criamos um novo estado de morte para o orc na camada base e, seguindo esta captura de tela, você deve ser capaz de fazer isso usando o ataque 1 para o ataque dele Vamos do blente para o ataque e voltamos. Vamos da abundância para a morte. Passamos do ataque à morte. Obviamente, uma vez que ele está morto, não precisamos fazer a transição de volta. Não se esqueça de adicionar o parâmetro dead bull, que usaremos como condição quando ele morrer. Fazemos uma cópia do script de locomoção de IA como locomoção c, porque queremos adicionar algumas funcionalidades adicionais sem perder a funcionalidade da locomoção de IA que ainda está associada a uma raposa ou a outros personagens como a raposa Descobrimos que deveríamos tornar mais fácil e rápido que o c matasse o jogador Então, aumentamos o valor do dano aqui. Há um pequeno trecho de código que mostra como isso foi feito Atualizamos o script de locomoção k da seguinte forma. Também tenha o script de saúde do inimigo, que será adicionado logo depois. Aqui está o script de saúde do inimigo, também anexado ao c. Isso é opcional. Mas se você ver isso, desativa o colisor inimigo para que ele não interfira com outros objetos após Então, se isso for um problema, você pode habilitar esse trecho de código aqui. Agora decidimos tornar o alcance de detecção 20, alcance de ataque dois. Quem vamos designar como jogador, jogador do Doozy, como você chamou seu jogador Também temos o script Health do inimigo com no máximo 20. Neste ponto, o ou pode matar Doozy, mas Doozy ainda não pode Faremos isso em breve. Confirmamos com declarações do registro de depuração que um jogador pode morrer e sofrer danos Essas correções e limpezas são opcionais, mas recomendadas Então, decidimos renomear o painel Game Over para o pop-up Game Over, renomear a caixa de diálogo do painel para caixa de diálogo e você pode simplesmente arrastá-los para reordená-los Atualizamos o script do gerenciador de pontuação Vamos garantir que seu script corresponda ao código aqui. E neste momento, quando testarmos e jogarmos, devemos confirmar que o k pode matar Doozy e que o botão de nova tentativa funciona. Em seguida, garantiremos que Doozy possa revidar Em seguida, garantiremos que Doozy possa revidar Então, dentro do projeto Unity, vamos dar uma olhada em como deve ser nosso inimigo k. O inimigo da organização, aqui mesmo, ele conseguiu que o prefab que criamos está usando o controlador org blend Tem seu agente Nav Ms com menos 015 e as Tem seu corpo rígido. Se a cinemática estiver ativada. Tem seu colisor de cápsulas, um para o raio do centro Y Ele tem o script de locomoção orc, que copiamos do script de locomoção de IA e adicionamos funcionalidades. Também definimos o alcance de detecção para 20, garantindo que o doozy player seja atribuído Também criamos e adicionamos o script de saúde do inimigo. Então, aqui estamos dando uma olhada na árvore de combinação da organização com transições para atacar e voltar do ataque e da árvore de combinação para a morte e do ataque para a morte Essa transição aqui. Observe também as condições que vamos usar Certifique-se de ter um parâmetro para es dead, attack e speed. Então essa transição azul é mostrada aqui, Blendt para atacar, sem hora de saída A transição acontece aqui. Isso acontece no ataque condicional. Voltando, temos hora de sair de Blendtry até a morte Usamos a condição de Es morto ser verdadeiro ou do ataque à morte. E você pode testar qualquer transição até o momento. Também adicionamos uma casa de fantasia para Jolene, e isso é opcional. Você não precisa fazer isso. Mas eu só quero ressaltar que, se você fizer isso, você pode adicionar um componente chamado Nap mas obstacle e esculpi-lo para que outros NPCs não entrem pela Muito útil. Você deve ter notado que o gerente de spawn com NPC spawner agora tem um coelho marrom e um coelho branco A configuração é exatamente a mesma do coelho original , então você pode fazer isso Há notas no curso anterior que você pode seguir. Vamos dar uma olhada rápida nos scripts. A locomoção de IA, que é usada pela raposa, você se lembra Se for mais fácil para você seguir o código aqui, faça isso. Caso contrário, deve ser o mesmo que nas notas do curso. Script do gerenciador de pontuação Passe o vídeo a qualquer momento , se você quiser ver algo específico ou ler as notas do curso O script de saúde do inimigo que faz referência ao script de locomoção A que criamos criamos É aqui definimos o parâmetro Estate como verdadeiro, para que possamos acionar a animação da morte O script de locomoção orc, com um intervalo de detecção de 20 ou dez, também pode substituir esse inspetor e padronizá-lo para qualquer valor que você quiser no código, já que é Então, no próximo módulo 4.4, começaremos a descobrir como configurar uma pedra mágica e como você pode usar essa pedra para combater a organização. Podemos criar um ponto de lançamento especial diretamente dentro do personagem doozy, a partir do qual instanciaremos Esse é apenas o protótipo. Vamos acabar com uma pedra mais bonita. Mais sobre isso mais tarde, vamos interromper esse status de projeto aqui por enquanto e você pode continuar com as notas do curso do Módulo 4.4. 52. Doozy aprende como lutar contra um orc: Olá, bem-vindo ao Módulo 4.4, onde vemos Doozy descobrindo pedras mágicas e ganhando uma nova organização inimiga Então, vou destacar apenas alguns destaques das notas do curso. Vamos configurar um ponto de lançamento para o personagem Doozy aqui um pouco mais tarde Vamos criar uma pedra mágica, um objeto simples por enquanto e, mais tarde , anunciaremos que ela terá uma aparência melhor e se comportará melhor. Ao script de pedra mágica que criamos, atribuímos o som de captação do item Adicionamos uma esfera com um gatilho. E uma escrita em pedra aqui. Na verdade, vamos adicionar outro colisor de esferas com um pouco maior sem o gatilho Siga as instruções passo a passo para implementar a mecânica da pedra mágica Lembre-se de que ele precisa de um corpo rígido, mas desta vez deixamos a cinemática Precisamos de uma fonte de áudio e a enviamos para nosso mixer de áudio, efeitos sonoros SFX Jogamos quando estamos acordados. Você pode definir a mistura espacial para 0,5, então entre dois D e três D. Baixe essas texturas e ativos Nós os usaremos um pouco mais tarde. Criamos o script mágico Stone. O código será fornecido abaixo. Lembre-se de atribuir o som de captação do item, criar um prefab e substituir todas as alterações feitas até concluir Como você pode ver, temos dois aceleradores de esferas aqui. Analisaremos a união daqui a pouco. E material vermelho, por enquanto, na pedra. Aqui está um roteiro para a pedra mágica, a quantidade de pedras adicionadas na coleta. Então você pega um, adiciona um à contagem, o som a ser reproduzido. Certifique-se de que essa verificação esteja aqui para que uma fonte de áudio esteja lá. Verifique se colidimos com um jogador, adicione pedras ao inventário do jogador, toque o som do captador, destrua a pedra após a Também usamos um atraso de slide para permitir que o som seja reproduzido antes que o objeto seja destruído. Em seguida, criamos um script de inventário de jogadores. Isso deve ser anexado ao player. Além disso, temos que atualizar o Canvas de contagem de pedras que possamos ter um contador para as pedras. Crie isso em seu Canvas, seguindo as notas do curso abaixo. Não se esqueça de atribuir todas as referências aos novos scripts à medida que avançamos e não se esqueça de atualizar todos os scripts, incluindo o movimento do jogador, para poder lidar com a capacidade da pedra mágica lançá-la ou lançá-la aqui mesmo. Por isso, mencionamos que precisamos um ponto de lançamento ligeiramente à frente e abaixo, doozy em X menos dez rotações, de onde você possa jogar ou lançar Usaremos a instanciação do prefab, então faça com que apareça aqui e, então faça com que apareça aqui e seguida, empurre-o para frente Você pode usar meus valores se quiser, mas provavelmente é melhor entender o que você precisa alcançar. O que significa que o ponto de instanciação da pedra no ponto de lançamento não precisa estar em uma posição em que possa colidir com a cápsula ou qualquer outra coisa Caso contrário, ele se desintegrará e será destruído ali mesmo, o que não é o que queremos Comece com esses valores e, se precisar, experimente movê-los um pouco para frente, girá-los para baixo e assim por diante Em seguida, atribuímos o ponto de lançamento ali mesmo. O som do carro, a carroceria rígida, então este é um vale que eu testei que funciona bem em relação ao Doozy Atualize o script de movimentação do jogador. O script de inventário do jogador é fornecido abaixo. Leia a explicação. Aqui está o código da escrita em pedra. É assim que a pedra mágica se parece neste momento. Tem a escrita da pedra mágica e a escrita da pedra. A propósito, esse é o valor do dano. Além disso, como nota lateral, certifique-se de voltar para o inimigo da organização e marcá-lo como inimigo. Se você não vê a etiqueta do inimigo, basta adicioná-la e selecioná-la. Aqui está o código atualizado para o script de movimentação do jogador. Você pode usar esse botão de copiar, colá-lo ou comparar seu script e fazer as alterações adicionais manualmente. Como, por exemplo, o som do calor, o som do lançamento, a força com que a pedra é lançada, o ponto de lançamento e assim por diante. Aqui está o novo método para realmente jogar ou lançar uma pedra chamado arremesso de pedra. Faça alguns testes. Essas dicas extras são opcionais, mas dê uma olhada porque mostram como criar materiais mais parecidos com o ponto de lançamento. E se você pegar um bug com os botões de bandeja rápida e vermelha, talvez seja uma opção melhor. Esconda e mostre o ponteiro do mouse, um pouco mais avançado, mas é bom jogar sem ver o ponteiro, então dê uma olhada Unidade interna. Vamos dar uma olhada em como o projeto deve ser agora. Vamos começar com Doozy seu controlador de personagem, é animador, fonte de áudio doozy, saída para os efeitos sonoros, saída para os efeitos sonoros Temos uma nova lógica no script de movimento do jogador, então certifique-se de observar o código nas notas para pedra pré-fabricada, ponto de arremesso e força de arremesso e o inventário do jogador para acompanhar a contagem de pedras Criamos um campo de texto de contagem de pedras Ms Pro. Nós o inicializamos com pedras, cólon zero, e o colocamos no canto inferior esquerdo Dando uma olhada na pedra mágica pré-fabricada que criamos. Fabricamos uma pedra mágica pré-fabricada de ácidos pré-fabricados. Primeiro, ele tem um colisor de esferas com um raio de 0,5 e, em seguida, um segundo com gatilho ativado com um raio de um deve ser maior para que possa ser usado no gatilho end dt Mindzis perto o suficiente para pegá-lo gatilho end dt Mindzis perto o suficiente para Em seguida, ele tem um corpo rígido com a cinemática desativada para que participe da física e possa ser movido pelo terreno Sem restrições. Tem a escrita da pedra mágica e escolhemos o som de captação do item Há uma fonte de áudio que enviamos para os efeitos sonoros no mixer de áudio e reproduzimos ao acordar Ele também tem a escrita em pedra, o dano de 25 e um som de impacto confiável e, em seguida, um material vermelho que criamos em nossa pasta de materiais com um leve valor metálico Quanto aos materiais, o tapete vermelho é o material, e você pode fazer as propriedades que quiser aqui. Observe que ficou um pouco metálico, então você pode experimentar com isso Outra visão geral rápida da aparência de um inimigo c neste momento. Ele tem o controlador orc blend como antes. Agora tem uma etiqueta chamada inimigo aqui e você pode adicionar uma etiqueta se não tiver inimigo e depois escolhê-la. O agente de mensagens NaF como antes, não se esqueça do menos 015 Não esqueça as configurações semelhantes a essa. Isso funciona bem. Você poderia colocar uma distância de parada, talvez uma ou 0,5, mas isso funciona bem. O corpo rígido é cinemático, colisor de cápsulas, um no centro Y, raio Ele tem a locomoção com DZ atribuída, detectando a 20 unidades de distância e atacando duas unidades de alcance. A saúde do inimigo pode fazer experiências com a saúde dele aqui. Vamos dar uma olhada rápida nos scripts. Então, o código do script está aqui, quantidade de dano que o Stonewall causa está configurada aqui com um número inteiro público de dano Esse é um novo campo para o som de sucesso. Então, verificamos se a pedra colidiu com um inimigo. É por isso que precisávamos marcar nossa organização como inimiga. Dando uma olhada na escrita da pedra mágica. Desta vez, verificamos se o jogador colidiu para que Doozy o pegue e atualize seu inventário O movimento do jogador e o script voltarão para você em um minuto, mas o inventário do jogador está aqui. Existe nossa variável de contagem de pedras ou elemento de tela para acompanhar a pontuação das pedras. Apenas certifique-se de que eles sejam atualizados quando ele pegar uma pedra e atualizar a interface do usuário Ah, a propósito, quando ele usa um, você pode ver que temos a contagem de posições menos menos, então ele subtrai O script de movimento do jogador agora deve ter essa aparência. Novos campos para os sons de calor, os sons do elenco. Se você não os tiver, adicione-os, certifique-se de que seu código corresponda essa ou às notas do curso, pelo menos. Posteriormente, você pode experimentar aumentar a força de lançamento para 20, 30 ou 40, o que significa que ele pode jogar a pedra ainda mais. NÃO. ' é uma nova funcionalidade para anal de pedras usando o botão esquerdo do mouse E aqui está o método para atirar a pedra. Esse atraso ajuda a afundar as coisas. Experimente qual atraso funciona para você. A locomoção de IA usada pela Fox, como antes, caso você precise verificá-la novamente, percorra-a Gerenciador de pontuação. O script de saúde do inimigo. E a locomoção k, que foi derivada da locomoção de IA, mas ganhou funcionalidade extra apenas 53. Tutorial 5: introdução: Olá, e bem-vindo de volta ao tutorial número cinco do Unity, Doozy rende suas vitórias, o cogumelo mágico Hunt Neste tutorial, Doozy tem a missão de encontrar cogumelos curativos mágicos escondidos em uma floresta Esses cogumelos especiais podem curar magicamente Doozy sempre que ele Seu trabalho é ajudar Doozy aprendendo como fazer esses cogumelos aparecerem em locais aleatórios ou colocá-los perto das árvores onde Doozy possa Para explicar, Doozy pega um cogumelo e isso instantaneamente o faz se sentir melhor, aumentando sua saúde um cogumelo e isso instantaneamente o faz se sentir melhor, aumentando sua saúde em dez pontos a cada vez. Mas há um problema. Doozy só pode render até 100 pontos de saúde. Depois que ele estiver totalmente curado, coletar mais cogumelos não o ajudará. Se Dozi se machucar novamente, você precisará encontrar novos cogumelos para ceder. Neste tutorial, aprenderemos como criar essa mágica de cura atualizando e melhorando os scripts do jogo. 54. Tutorial 5: visão geral de tópicos: Vamos dar uma olhada nos cinco tópicos que abordaremos. Primeiro, vamos visitar a loja de ativos e comprar alguns bons cogumelos que podemos usar para comer. Vamos preparar esses cogumelos para que possamos pegá-los. Podemos aplicar a cura ao jogador e colocar algumas opções de design ao lado. Para obter conteúdo bônus, mostraremos como você pode tornar sua interface de usuário e tela mais agradáveis. Nós forneceremos os ativos. Você pode fazer o seu próprio, mas forneceremos um bom exemplo com uma pele mais bonita. Examinaremos o guia de referência conceitual e de script C Sharp para iniciantes em Unity. Apresentaremos o método de pós-processamento , usado para melhorar a aparência da cena e da iluminação. Esse é um grande tópico, mas vamos apresentá-lo com alguns efeitos básicos de vinheta e efeitos de luz Vamos analisar como buscar a conclusão da pedra mágica. Vamos atualizar o script de locomoção dos orcs para garantir que ele não se mova depois Há um questionário opcional para testar seus conhecimentos. Teremos uma breve discussão sobre as considerações finais desta série e algumas sugestões de dicas que você pode experimentar sozinho Mas também adicionamos um tutorial bônus no número seis, onde você verá recursos mais avançados para buscar pedras mágicas, cabeçalhos manuais e revisão de código. 55. Encontre cogumelos adequados (Loja Asset): Vamos ver quais cogumelos vamos usar em nosso curso. Há alguns aqui que eu dei links sobre a loja de ativos, mas este parece funcionar bem, o cogumelo brilhante e estilizado Além disso, o pacote de cogumelos aqui é bom. Vamos escolher esse. Acabei de importá-lo, baixá-lo e salvá-lo em seu projeto. 56. Prepare o(s) cogumelo(s) para coleta pelo jogador: Olá e bem-vindo de volta. Neste módulo, vamos preparar os cogumelos para serem recolhidos pelo jogador Depois de baixar e importar um cogumelo adequado, você o encontrará em Ativos, foto digitalizada, Sob a pasta prefabs. Quero que você arraste o grupo 01 do toadstools na amostra abaixo para a Você vai clicar com o botão direito do mouse e desempacotar o grupo um dos cogumelos em Basta clicar com o botão direito do mouse no pré-fabricado e selecionar a opção de desempacotar Em seguida, arraste cada um como um objeto separado no nível raiz da hierarquia, conforme mostrado na captura Para que você tenha Tod Stool um, total de dois, toadstool total de dois, toadstool Assim como indicado pela seta aqui, você criará um pré-fabricado de cada um deles arrastando cada um de cada vez em ativos pré-fabricados Depois de separá-los e criar os prefabs, lembre-se de que todos os prefabs, quando alterados, devem aplicar as substituições porque, mais tarde, quando forem gerados, precisarão e criar os prefabs, lembre-se de que todos os prefabs, quando alterados, devem aplicar as substituições porque, mais tarde, quando forem gerados, precisarão ser todos iguais. No total, todas as cópias serão iguais, no total duas, todas as cópias serão iguais e assim por diante. Nesta captura de tela, você pode ver um de cada exemplo, ligeiramente diferente e cada um com uma escala ligeiramente diferente Se eles não tiverem um colisor de esferas com um gatilho, adicione um componente para cada um deles e ajuste um raio para que fique um bom tamanho ao redor deles para facilitar a interação do Doozy com seguir, veremos a primeira opção para anunciar o script de coleta de itens para continuar a configuração do cogumelo Você deve fazer isso para cada um desses três cogumelos. 57. Aplique Healing ao jogador: opções de consideração de design: Olá e bem-vindo de volta. Neste módulo, veremos algumas opções para aplicar a cura ao jogador e discutiremos algumas opções de consideração de design. Mostraremos como fazer a opção um, mas sinta-se à vontade para revisar a opção dois que você possa entender os prós e os contras de cada uma. Isso é para ressaltar que há mais de uma maneira de resolver o mesmo problema, e é por isso que é interessante experimentar diferentes maneiras de codificar as coisas Portanto, a primeira opção, anunciar o script de coleta do item, é a que vamos demonstrar neste módulo e envolve a criação de um novo tipo de item com um Enum Primeiro, vamos definir um Enum para categorizar diferentes tipos, como um coelho e um cogumelo É importante declarar o tipo de item enum na parte superior do script de coleta do item, fora da classe de coleta do item Por exemplo, você codificaria o tipo de item Enum público, colchete curvo, vírgula coelhinha , colchete Na etapa três, atualizamos o script de saúde do jogador. Garantimos que o método de cura no script de saúde do jogador evite que a saúde do jogador ultrapasse 100 E esse pequeno trecho de código mostra os detalhes do que fazer Se ele estiver morto, retornaremos. Caso contrário, usamos essa matemática atual igual a F, min, saúde atual mais quantidade, Saúde máxima, e temos uma instrução debug dot log, que você pode ver no console para mostrar que está funcionando e, em seguida, chamamos o método update Health UI Na etapa quatro, configuramos prefabs e a unidade do cogumelo Lembre-se de que você precisa fazer isso para cada um dos cogumelos, até um, dois e três Portanto, o processo geral é selecionar o mushroom prefab em um editor de unidade em assets Você escala cada cogumelo para três, três, três, quatro, quatro, quatro no XYZ ou qualquer coisa intermediária que desejar para obter um tamanho razoável, mas o torna grande o suficiente para que Doozy pegue. Em seguida, você anexa o script de coleta do item , se ele ainda não estiver anexado a cada um desses prefabricados em forma de cogumelo, depois de aplicar as substituições em cada um dos Lembre-se de que dissemos que cada pré-fabricado precisa ter as mesmas configurações Defina o campo de tipo de item como cogumelo no inspetor, apenas outras configurações, como som de captação e item pré-fabricado, conecte um colisor de manchas com um gatilho ativado a cada cogumelo, caso ainda não tenha Algumas notas sobre a configuração do Spear Collider para o script de coleta de itens. Para detectar quando um jogador interage com os cogumelos ou com qualquer outro item que você possa adicionar ao jogo, você precisará garantir que cada cogumelo tenha um componente de colisor conectado com a opção de gatilho leste ativada opção de gatilho leste ativada Isso é necessário para que o método on trigger enter que vimos em nosso script funcione corretamente. Aqui estão as etapas para conectar o colisor. Resumindo, você seleciona o pré-fabricado como um desses cogumelos Você adiciona um colisor de esferas, ativa o gatilho, ajusta o tamanho do colisor e testa a configuração Apenas uma observação sobre por que isso é importante. A configuração do gatilho E permite que o colisor detecte a presença do jogador sem afetar a física do cogumelo E isso é crucial para situações de coleta como essa , em que você deseja que um jogador colete o item simplesmente entrando nele em vez de colocar uma chave, normalmente a tecla E, em vez causar uma colisão física com o Você só quer que o gatilho entre para ativar a condição de coleta. Essa etapa garante que um cogumelo ou qualquer item usando o script de coleta de itens detecte corretamente quando um jogador, e não outro personagem, interage com um cogumelo, acionando o resultado desejado, como curar o como curar Então, esta captura de tela mostra no inspetor em Unity, um exemplo de um desses três cogumelos, o cogumelo cogumelo Lembre-se de atribuir um script de coleta chamado CS de coleta do item. E atribua o prefab ao item prefab, atribua o som de captação do item de som, pop para captar o som e atribua o tipo, neste caso, cogumelo ao tipo neste caso Esse foi o nosso Enum. Aqui está uma breve olhada na Opção dois, que não implementamos no exemplo, mas sinta-se à vontade para experimentá-la por conta própria e ver como elas diferem. Para isso, precisamos criar um novo script chamado mushroom. Você verá que ele não usa Enums. Ele lida sozinho com a coleta do cogumelo Ele tem um número inteiro público para Helmount 20, quantidade de saúde a ser Ele tem o clipe de áudio, o som de captação, áudio Audiosuce. E para garantir que o objeto do jogo seja uma fonte de áudio, esse pequeno casaco garantirá que exista uma. Temos um vazio semelhante no gatilho Enter. Vemos se é um jogador, isso não é muito diferente. Se for o jogador, nós apenas curamos o jogador, tocamos o som de captação e retiramos o cogumelo. De certa forma, é mais curto, mas também é mais limitado. Na segunda etapa, atualizamos o script L do jogador e, assim como na primeira opção, garantimos que o método de rendimento evite que a cura do jogador exceda 100 Você não pode produzir mais do que 100 se continuar comendo cogumelos ou colhendo cogumelos Assim, podemos descobrir o cogumelo pré-fabricado. Novamente, crie um novo prefab para cada cogumelo ou selecione um dos existentes e anexe o novo script de cogumelo ao prefab, defina a quantidade de produção e o som de captação no inspetor, certifique-se de que o prefab tenha um colisor marcado como gatilho para detectar a selecione um dos existentes e anexe o novo script de cogumelo ao prefab, defina a quantidade de produção e o som de captação no inspetor, certifique-se de que o prefab tenha um colisor marcado como gatilho para detectar a interação do jogador. Agora, só uma advertência. Não faça os dois, apenas uma dessas duas opções. Notas de teste e depuração. Então aperte o botão play, veja se Doozy consegue pegar alguns cogumelos Mas para ter certeza de que eles realmente tenham o efeito desejado, passe rapidamente pela raposa, deixe a raposa te machucar um pouco uma ou duas vezes, depois fuja e veja se ela consegue pegar alguns cogumelos. E enquanto você faz isso, não jogue no modo de tela cheia. Observe seu console e você verá se o jogador a sofrer danos como neste exemplo aqui, mostra que sua saúde está caindo de 90 E então, assim que ele come um cogumelo, ele está curado de acordo com esta nota de depuração Apenas um lembrete de que a fusão máxima que o jogador pode alcançar deve sempre ser definida no script de saúde do jogador. A saúde máxima é igual a 100 e não se esqueça do controle deslizante da barra de saúde, o componente de interface do usuário deve existir aqui Uma dica bônus de interface de usuário para você podemos ajustar um pouco a tela, o controle deslizante de saúde e a área inteira para cobrir o plano de fundo, caso ainda não tenha feito isso Isso é só uma visão de perto. Observe que estamos trabalhando em uma visualização de cena em dois modos D enquanto trabalhamos na interface do usuário. Quando terminamos com a interface do usuário, você clica neste botão na parte superior da barra de ferramentas para voltar para três D. Olhando em uma hierarquia em nossa tela, encontramos uma área completa, que é uma barra de tela, e você pode arrastar esses botões azuis para a esquerda e para a direita cima ou para baixo com esquerdo do mouse para estique-os conforme necessário. Sinta-se à vontade para usar meus valores de acordo com este exemplo ou experimentar com o seu. Aqui está um slide para a área de preenchimento e seus parâmetros de posição de alongamento X e largura, seus parâmetros de pivô, a imagem que está usando, as cores que está usando e assim por diante Basta fazer o seu semelhante a este exemplo. Lembre-se também de atualizar as configurações do inspetor para pegar os coelhinhos, porque agora que temos um Enum, certifique-se de que, ao pegar coelhinhos, eles não estejam configurados para musham, eles devem estar configurados para coelhinho não estejam configurados para musham, eles devem estar configurados para . Ele deve fazer isso por padrão porque B vem antes de M, mas basta verificar e estar ciente disso se você adicionar listas mais longas. Portanto, em resumo, as considerações de design, opção 1 é mais integrada, permitindo que você gerencie vários tipos de itens em um único script Essa abordagem é eficiente se você planeja ter muitos itens diferentes para o seu jogo com funcionalidade compartilhada. Já a opção dois oferece uma separação clara da lógica, facilitando o gerenciamento de diferentes comportamentos de itens. Isso é ideal se você antecipar comportamentos únicos para muitos itens diferentes no jogo Ambas as opções exigem garantir que a lógica de produção seja aplicada corretamente e que a saúde do jogador seja limitada A escolha depende de como você prefere estruturar seu código e gerenciar o comportamento dos itens em seu jogo. você pode colocar cogumelos manualmente Por enquanto, você pode colocar cogumelos manualmente em toda a cena ou pensar em como configurar você mesmo um gerador de cogumelos usando o conhecimento adquirido e os scripts existentes fornecidos até agora em Na verdade, isso é muito fácil de fazer se você pensar no que abordamos até agora. Na verdade, você já tem um script que pode fazer isso por você. Você pode dizer qual deles é? 58. Pós-processamento: Então, pós-processamento, introdução ao pós-processamento no Unity para iniciantes. O pós-processamento em unidade se refere a um conjunto de efeitos visuais aplicados após renderizar uma cena para anunciar sua aparência Esses efeitos imitam o comportamento da câmera no mundo real como ajustar a iluminação, as cores e adicionar filtros artísticos, dando ao seu jogo ou projeto um toque polido e Mesmo que você seja relativamente novo no Unity, pós-processamento é simples de usar e pode aumentar significativamente o apelo visual do seu jogo sem exigir habilidades avançadas de programação ou design. Vamos nos aprofundar no que é pós-processamento e explorar alguns dos recursos mais populares que ele oferece. Você pode perguntar por que deseja usar o processamento. Os efeitos de pós-processamento são usados para ajustar a atmosfera de uma cena, tornando-a mais dinâmica e realista. Se você deseja obter um clima específico, melhorar a qualidade da iluminação ou aplicar filtros semelhantes a filmes, pós-processamento permite que você obtenha esses efeitos facilmente. Ao ajustar os elementos visuais, você pode transformar um mundo de jogo que parece plano e comum em algo rico, colorido e envolvente Esses efeitos geralmente são aplicados após a renderização principal do jogo, garantindo que os visuais principais do seu projeto permaneçam intactos enquanto o pós-processamento afeta a camada sobre Esse método permite que você mantenha o jogo otimizado e responsivo, especialmente quando combinado com renderização do Unity Como configurar o pós-processamento no Unity. Para usar efeitos de pós-processamento, primeiro você precisará instalar o pacote de pós-processamento, caso ainda não tenha feito isso a partir do gerenciador de pacotes do Unity. Um lembrete de como fazer isso, abra a janela do gerenciador de pacotes, procure o pacote de pós-processamento e instale-o E se você o instalou anteriormente, basta atualizá-lo. Depois de instalado, crie um volume de pós-processamento em sua cena clicando com o botão direito do mouse na janela da hierarquia, selecionando volume e, em seguida, volume global Como alternativa, você pode adicionar um volume de pós-processamento à câmera principal se não criar um na cena. Mantenha os recursos de pós-processamento e a unidade. Consulte as notas do curso conforme necessário Analisaremos algumas das mais interessantes. Número um, Bloom. Bloom é um efeito muito popular que adiciona brilho às áreas claras da cena Ele funciona fazendo com que luzes ou reflexos brilhantes pareçam brilhar, suavizando a dureza das fontes de luz e adicionando um O Bloom é frequentemente usado para cenas envolvendo luz solar, letreiros de néon ou qualquer objeto emissor de luz, ou qualquer objeto emissor de luz, proporcionando a eles uma qualidade de vida maior do que a qualidade de vida Número dois, gradação de cores. A gradação de cores permite que você modifique os tons gerais das cores, contraste e a exposição em sua cena É semelhante à aplicação de um filtro em um software de edição de fotos. Com a gradação de cores, você pode alterar o calor ou o frescor da cena, criar uma atmosfera mais vibrante ou sombria e ajustar sombras e realces para aperfeiçoar o gradação de cores do Unity também inclui HDR, que são configurações de alta faixa dinâmica, permitindo cores mais vibrantes e melhor controle sobre os níveis de brilho Isso facilita a manutenção da consistência nas diferentes condições de iluminação do jogo. Número três, profundidade de campo. profundidade de campo imita a lente de uma câmera focando em um objeto ou distância específica e desfocando Esse efeito tem realismo e pode ser usado para criar uma sensação de escala ou foco Por exemplo, em jogos em primeira pessoa, você pode desfocar objetos distantes enquanto mantém por perto uma loja, direcionando a atenção do jogador para onde ela é necessária É perfeito para cenas cinematográficas ou adicionar um toque fotográfico profissional ao seu jogo Número quatro, desfoque de movimento. desfoque de movimento simula o rastreamento de objetos em movimento rápido, adicionando uma sensação de velocidade e urgência Esse efeito funciona especialmente bem em jogos de corrida, cenas de ação rápida ou até mesmo durante uma transição de câmera, dando uma aparência dinâmica e fluida ao movimento. Número cinco, vinheta. A vinheta escurece as bordas da tela ajudando a centralizar o foco do jogador no meio da cena É um efeito sutil, mas poderoso, que cria uma sensação cinematográfica e pode ser usado para evocar certas emoções ou adicionar intensidade em momentos importantes, como uma sequência de combate ou cenas dramáticas Número seis, oclusão ambiente, oclusão ambiente aumenta o realismo ao simular como a luz se comporta em espaços ou cantos simular Onde as sombras geralmente são mais pronunciadas. Esse efeito escurece as áreas onde os objetos se encontram, como quando um personagem está perto de uma parede ou onde a mobília fica perto do chão, aumentando a profundidade e tornando a cena mais natural Número sete, anti-aliasing. antialiasing é um efeito crucial que suaviza as bordas irregulares em três modelos D. Sem suavização de borda, os modelos podem parecer pixelados às vezes ou ásperos nas bordas, especialmente quando vistos à distância aplicação desse efeito garante que seus objetos e personagens tenham uma aparência nítida e refinada, contribuindo para uma apresentação visual geral mais limpa. Número oito, aberração cromática. aberração cromática simula o efeito de distorção da lente que você pode ver em uma câmera real, onde as cores se separam ligeiramente nas bordas Isso pode dar ao seu jogo uma aparência estilizada única e geralmente é usado para criar ambientes retrô futuristas Dicas para usar o pós-processamento. Use com moderação. Embora os efeitos de pós-processamento possam fazer com que seu jogo pareça fantástico, usar muitos ao mesmo tempo pode afetar negativamente o desempenho. Comece com alguns efeitos essenciais e teste como eles afetam o desempenho geral do jogo, especialmente em hardware de baixo custo. Combine com o clima. Cada efeito de pós-processamento pode ajudar a evocar emoções específicas em seu jogo Use a gradação de cores para ajustar o humor do seu jogo. Por exemplo, cores quentes para uma cena alegre e tons frios para uma cena misteriosa. profundidade de campo pode anunciar cenas emocionantes eliminando as distrações e focando nos personagens Não tenha medo de experimentar. O Unity permite visualizações em tempo real dos efeitos de pós-processamento para que você possa ver instantaneamente como as diferentes configurações afetam sua cena Portanto, a unidade de pós-processamento é uma ferramenta poderosa que pode transformar a qualidade visual do seu jogo. Ao adicionar efeitos como floração, gradação de cores e profundidade de campo, você pode elevar seu projeto a padrões profissionais com um esforço relativamente mínimo Se você está criando um jogo de ação em alta velocidade, um mistério sombrio ou um empreendimento colorido, pós-processamento pode ajudar a definir o tom e criar uma experiência visualmente impressionante para seus jogadores Se você é iniciante, experimente diferentes efeitos e aprenda como eles interagem com o estilo artístico do seu jogo Com um pouco de prática, o pós-processamento se tornará uma parte inestimável do seu kit de ferramentas de desenvolvimento de jogos Então, vamos dar uma olhada em um exemplo em nossa série de jogos DZ. Primeiro, encontre a câmera principal na hierarquia e crie uma nova camada chamada pós-processamento com um P e atribua-a ao campo de camada no inspetor, conforme mostrado na captura A configuração da camada de pós-processamento deve ser semelhante a essa. Certifique-se de que seus valores correspondam aqui como exemplo de adição do volume de pós-processamento Você pode adicioná-lo como um objeto separado em uma hierarquia a um objeto de jogo vazio ou adicioná-lo à câmera principal Experimente efeitos e efeitos de pós-processamento até que você tenha o humor certo para o jogo Abaixo está um exemplo de vinheta. Definindo essas opções para vinheta exatamente como os slides mostram para modo, cor, centro, intensidade, suavidade, arredondamento e usando esses controles deslizantes para ajustá-las, você obterá esse efeito em um jogo Observe como as setas vermelhas estão apontando as áreas escuras 59. Uma pedra mágica em busca de calor: Olá e bem-vindo de volta. Neste módulo, veremos mais de perto como podemos fazer uma pedra mágica que busca calor. Vamos modificar a escrita de pedra e a pedra mágica para acomodar o novo comportamento do míssil de busca de calor sem quebrar nenhuma de nossas funcionalidades existentes Depois de criarmos esse script Stone Vision Two, você verá que há novos parâmetros para velocidade de Sk, altura de busca, alcance e desabilitar o alcance de Sk então vamos analisar as principais considerações de como fazer isso Número um, mantenha a funcionalidade existente da pedra e dos escritos da pedra mágica intactas o máximo possível Atualmente, a pedra causa dano ao atingir um inimigo, mas é difícil atingi-lo. Atualmente, a pedra mágica é usada para captadores, como devemos fazer isso? Vamos adicionar o comportamento de busca de calor para as pedras lançadas pelo jogador modificando nosso script atual de Cs de pedra para a lógica de busca de calor Vamos garantir que a pedra mágica mantenha seu papel de item de coleta Para implementar um plano, manteremos a pedra mágica como item de coleta sem alterações Vamos modificar a escrita de pedra e salvá-la primeiro como versão dois Cs para adicionar o comportamento de busca de calor quando instanciada como um projétil e desativar a antiga escrita de pedra Cs para adicionar o comportamento de busca de calor quando instanciada como um projétil e desativar a antiga Quando um jogador joga uma pedra, a pedra rastreia inimigos dentro um determinado alcance e desativa seu rastreamento se eles saírem do alcance Aqui está uma olhada no script Stone V two. Ainda temos a quantidade de dano que a pedra causará. Também temos um novo campo para o som térmico. Se você não adicionou isso antes, faça isso agora. Nesta seção, examinamos as variáveis relacionadas à busca de calor para velocidade de busca, altura de busca, faixa de busca e faixa de busca desativada com os seguintes valores padrão. Temos um método de início e um método de atualização. No método de atualização, primeiro verificaremos se temos um alvo válido dentro do alcance e, em seguida, podemos implementar o comportamento de busca de calor. Se um inimigo estiver dentro de um alcance, avançamos em direção a ele. Não há nenhum inimigo ao alcance, deixamos a pedra continuar sua trajetória normal A propósito, isso permitirá que Dougy pegue a pedra novamente e a reutilize Também habilitamos a gravidade para o comportamento normal da pedra. E esse método de entrada na colisão é chamado quando uma pedra colide com outro objeto e, em seguida, verifica se uma pedra colidiu com Fazemos isso com uma funcionalidade de tag do Unity. Certifique-se de que qualquer inimigo que você queira atingir com uma pedra seja marcado como inimigo. Obtemos o componente de saúde do inimigo do objeto de jogo inimigo e, se o inimigo tiver um componente de saúde inimigo, aplicamos o dano. Usando esta linha aqui, dano da etiqueta de saúde do inimigo e a quantidade do dano. Tocamos o som do calor, destruímos a pedra depois que ela atinge o inimigo. Opcionalmente, podemos destruir a pedra se ela for algo diferente de um inimigo, como uma árvore ou o terreno Mas, como você pode ver, isso está desativado por enquanto porque isso o impediria de pegar a pedra Se você quiser trabalhar dessa maneira , descomente essas duas linhas Com esse método, encontre o inimigo mais próximo. Vamos ver onde está esse inimigo e, se ele estiver dentro do alcance usando esses quatro circuitos, examinaremos todos os nossos inimigos que possam estar por perto. Buscamos o inimigo alvo movendo a pedra em direção a ele. É aqui que a magia da pedra mágica acontece. E desativamos a gravidade enquanto buscamos. Uma explicação das mudanças no script stone dot c, as novas variáveis de busca de calor são velocidade SEC, altura de busca, busca e intervalo de desativação de Sk, que controla o comportamento da pedra quando ela está buscando calor. O método de encontrar o inimigo mais próximo, esse método encontra o inimigo mais próximo dentro do alcance de busca desativado e o define como o inimigo alvo. O método de alvo Sk move a pedra em direção ao inimigo alvo se ela estiver dentro do alcance da SEC e desativa a gravidade enquanto busca Para o comportamento normal da pedra, se nenhum inimigo for encontrado ou o inimigo estiver fora do alcance, a pedra cai no chão com a gravidade ativada, comportando-se como uma pedra normal Não precisamos de nenhuma alteração no script CS da pedra mágica. Vamos mantê-lo funcionando como uma lógica de captação para nós, portanto, nenhuma alteração será funcionando como uma lógica de captação para nós, portanto, necessária E precisamos integrar isso a um script de visão três do movimento do jogador, ou pelo menos temos que verificar o código e ver se alguma alteração é necessária. Neste ponto do curso, nenhuma mudança é necessária para movimento do jogador, a menos que você queira modificar a forma como a pedra é lançada. O método de arremesso na visão três do movimento do jogador agora instanciará o objeto de pedra que tem o visão três do movimento do jogador agora instanciará o objeto de pedra que tem o comportamento de busca de calor. Como usar isso. Número um, a pedra mágica continua funcionando como um item colecionável, sem alterações Número dois, quando um jogador joga um objeto de pedra, a pedra se comportará como uma pedra normal Se um inimigo estiver dentro do alcance especificado, a pedra agora se transformará em lógica de busca de calor em direção ao inimigo. Se nenhum inimigo estiver ao alcance, a pedra cairá com a gravidade e se comportará normalmente. Essa abordagem mantém intactas todas as funcionalidades existentes que fizemos no curso até agora, ao mesmo tempo em que adiciona o comportamento de busca de calor à pedra quando ela é lançada Certifique-se de definir esses valores para os parâmetros e certifique-se de desativar o script antigo e ativar a versão dois do Stone. Além disso, verifique se você tem valores para a velocidade Sk de cinco, altura de busca de 0,5, faixa de busca de 20 e desative a faixa de busca de 25. Depois de fazer isso, você pode experimentar valores ligeiramente diferentes e ver como isso muda de comportamento. 60. Pare o movimento de orcs após a morte: Olá e bem-vindo de volta. Nesse modelo, analisaremos alguns problemas com o script orc locommotion que podem ocorrer de forma que a organização se mova após a morte Obviamente, não queremos que isso aconteça. O que faremos para corrigir isso é desativar completamente o agente NAPMS, deixando-o inativo após a morte e garantir que as colisões e o corpo rígido sejam totalmente desativados, lidando com quaisquer casos especiais em que possam ser reativados Também interrompemos todo movimento e interação física após a morte, só para ter certeza. Aqui está o script atualizado ou de locomoção. Observe os parâmetros da patrulha, verifique se você tem todos eles. Certifique-se de ter o parâmetro para rastrear os mortos de agosto e esses dois novos itens de funcionalidade para armazenar todos os colisores e armazenar todos os componentes rígidos da carroceria Nesta seção, temos todos os aceleradores conectados à organização e ao corpo rígido. No método de atualização, verificamos se o agosto está morto, se está morto, lidamos com a morte e o retorno, evitando qualquer ação adicional imediatamente. Pare de atacar se o jogador estiver morto e volte Pare de patrulhar ao Pare de patrulhar ao seguir o jogador. reinício do patrulhamento não está dentro do alcance de detecção, atualize a velocidade da animação com base no parâmetro de velocidade Esse é o método para seguir o jogador. O método para atacar o jogador. O ataque esfriou e a nova patrulha segue a rotina. Certifique-se de que, se você quiser que ele patrulhe sua rotina seja assim Ele fica ocioso por um tempo aleatório, depois escolhe um ponto de patrulha aleatório Confirmamos o ponto de patrulha, movemos o inimigo e monitoramos se ele fica preso no Nav Ms em algum lugar com um obstáculo no ambiente Se ele estiver preso, tente recalcular um novo caminho para ele. Usamos a posição de amostra do NAPM para garantir que os pontos de patrulha sejam válidos Lidamos com o comportamento da morte, interrompemos todos os movimentos, reproduzimos a animação da morte, desativamos as colisões e o corpo rígido método de lidar com a morte abaixo Paramos completamente os NAFMIs, reproduzimos a animação da morte, se você tiver uma, usando o gatilho, desativamos todos os aceleradores, desativamos o corpo rígido, Opcionalmente, você também pode interromper todas as corrotinas e outras ações E isso é apenas um bônus para ajudar você a visualizar quais são essas configurações Esse método para desenhar dispositivos em uma cena funciona da seguinte maneira. Desenhamos o alcance de detecção e amarelo, desenhamos o alcance de ataque e vermelho, desenhamos o raio da patrulha em Na visualização da cena, você poderá ver quais são as configurações e os intervalos. A principal mudança que estamos fazendo é desabilitar o agente de magnetização de facas corretamente Desativamos o corpo rígido e paramos o movimento e a física Acompanhe as anotações do curso, verifique seus scripts e sua lógica e certifique-se de que eles correspondam a eles neste momento do curso. 61. Tutorial 6: introdução: E bem-vindo ao tutorial número seis do Unity. Introdução. Neste tutorial, criamos uma pedra mágica aprimorada em busca de calor Apresentamos a cura manual de cogumelos e reescrevemos muitos scripts para melhorar a funcionalidade O orc agora patrulha e ataca o jogador quando está ao alcance, mas nosso jogador pode atacar o orc com mais eficácia quando ele está perto o As pedras mágicas agora procuram o orc e o destroem quando ele está ao alcance Este tutorial se aprofunda na compreensão da lógica dos scripts em C sharp que controlam a lógica do jogo. Vamos destacar alguns dos principais anúncios. Em primeiro lugar, doozy agora pode lançar pedras mágicas em busca de calor em sua organização inimiga, bloqueando-o se ele estiver dentro do alcance Número dois, Doozy continua sua missão encontrar cogumelos curativos mágicos escondidos na floresta No entanto, em vez de curar imediatamente, ele agora armazena esses cogumelos em seu inventário. E usa o MC para consumi-los após sofrer danos. Esses cogumelos especiais curam Magicamente Doozy sempre que ele Cada cogumelo que ele consome restaura dez pontos de saúde, mas há um limite Dozi só pode render até 100 pontos de saúde. Quando ele estiver totalmente curado, pegando mais cogumelos, um benefício é a saúde, pelo menos não até que ele se machuque novamente, e então ele possa comer um usando o Número três, muitas das faixas de suporte também foram atualizadas para funcionar de forma mais eficaz com melhor tratamento e estrutura de erros Portanto, compare com a versão antiga do script e observe como a estrutura foi otimizada com a mesma funcionalidade. Em quarto lugar, a documentação foi reescrita para este tutorial para explicar como as coisas funcionam em detalhes com a funcionalidade aprimorada do jogo Número cinco, muitas capturas de tela também são fornecidas como auxílio no aprendizado e na compreensão como configurar a configuração do jogo Portanto, se você não tiver certeza de uma determinada configuração de inspetor para um componente ou script específico, volte ao Tutorial seis e veja essas capturas 62. Tutorial da série Doozy 6: visão geral dos tópicos: Uma rápida visão geral dos tópicos Tutorial six é que daremos uma olhada no script AI Locomotion para o inimigo da Fox, mostraremos em detalhes como ele está funcionando e documentaremos as etapas necessárias para entrar no jogo Ou uma visão geral do script de locomoção e saúde do inimigo, todos os scripts do jogador, incluindo a versão três do movimento do jogador, a saúde do jogador e o inventário do jogador, o gerenciador de cogumelos, o gerenciador de pontuação, o gerente do jogo, os gerenciadores de desova, controlados pelo gerador de NPC versão um, e algumas outras variações de como você pode gerar coisas, também são mostradas aqui e algumas outras variações de como você pode gerar coisas Scripts de Magic Stone, o script original e a segunda versão, Stone v dot cs. O gerenciamento de coleta de itens usando o script de coleta de itens, gerenciamento de diálogos e a interface de usuário e câmeras do Canvas . No diálogo de Jolene, também examinamos a estrutura da árvore da tela na hierarquia, o componente e as configurações da câmera virtual, os principais componentes e configurações da câmera e , um questionário Isso encerra a série de tutoriais doozy e parabéns . Você criou um jogo Unity totalmente jogável e anunciou a funcionalidade Agora, o que você vai construir a seguir? 63. O inimigo da Fox: AiLocomotion.cs: Olá, e bem-vindo de volta. Neste módulo, veremos o roteiro final do inimigo da Fox, chamado AI Locomotion Portanto, leia o script em seu próprio ritmo e certifique-se de que seu script corresponda ao código que você vê na tela e verifique as notas do curso para obter explicações se tiver dificuldades. Vou destacar algumas das funções e recursos importantes do script. Começamos com a locomoção da classe Ai. Declaramos todas as variáveis públicas de que precisamos, as variáveis privadas, e garantimos que o dano que a Fox causará ao jogador esteja definido aqui Temos um pouco de calma entre os ataques. Temos uma referência à saúde do jogador para aplicar o dano. Temos o script de movimentação do jogador, certifique-se de usar a versão três neste momento para o caso final. Então, temos o método de início. Recebemos do player uma referência ao script do player. Fazemos com que o jogador mova três vezes para acionar o ataque. Em seguida, temos o loop principal para atualização anulada. Paramos se o jogador estiver morto. Atualizamos o parâmetro de velocidade com base na velocidade do agente e atualizamos o animador com uma velocidade de raposa para a árvore de mistura Verificamos a distância e determinamos se podemos atacar o jogador ou segui-lo, e paramos de nos mover se um jogador estiver fora do alcance de detecção. Esse é o método para seguir o jogador. Essa é a corrotina para atacar o jogador. Acionamos a animação de ataque dividindo o agressor de ataque em dois Esperamos que a animação do ataque atinja o jogador e você pode ajustá-la com base no tempo da animação. Neste exemplo, aguardamos 0,5 segundos. Nós aplicamos danos ao jogador. Acionamos o som e a animação do hit na versão três do movimento do jogador no player. Aguardamos o resfriamento, paramos a animação de ataque após o resfriamento. Se você quiser uma explicação detalhada, verifique as notas do curso aqui. Essas são as variáveis na etapa um, o método inicial na etapa dois, o método de atualização na etapa três, o que acontece a cada quadro. Decida se você quer atacar ou seguir. Etapa quatro: siga o jogador. Esse é o método para perseguir o jogador. Passo cinco, atacar o jogador, o método para atacar o jogador Aqui estão as instruções de configuração detalhadas que você pode precisar, como preparar a raposa, configurar suas animações, configurar o NavMSH, atribuir o player e o script, ajustar as variáveis, e aqui está uma captura de tela para ajudá-lo a confirmar se você a configurou corretamente controlador Fox Blend com componente animador, o agente NaFMES e suas configurações devem ter um corpo rígido, um colisor de lança com estigger, colisor de lança com estigger atribuir ao 64. O inimigo orc: orcLocomotion.cs; EnemyHealth.cs: Ok, então vamos dar uma olhada no inimigo orc. Os deslizes finais para ele são locomoção dos orcs Começaremos com a locomoção organizacional, e você verá que ele tem todas as seguintes variáveis necessárias Ele tem os parâmetros da patrulha. Essa é a velocidade para que, ao seguir o jogador, possamos ajustar a distância de patrulha. Temos uma distância de parada maior para evitar movimentos precisos Nós rastreamos se o morto de agosto com um touro está morto, armazenamos todos os colisores, armazenamos o corpo rígido. Aqui está o método inicial. Recebemos o script de saúde do inimigo. A velocidade inicial definida para patrulhamento é definida com a velocidade de patrulha. Definimos a distância de parada aqui. Colocamos todos os colisores conectados à organização e ao corpo rígido e iniciamos a corrotina para patrulhamento Veremos isso mais tarde. Esse é o loop principal para atualização. Verificamos se a organização está morta, lidamos com a morte e evitamos outras ações, paramos de atacar se o jogador estiver morto, ficamos ociosos e voltamos Verificamos se a distância até o jogador é menor que o alcance do ataque, depois paramos de patrulhar ao atacar e atacamos o Caso contrário, se a distância até o jogador for menor que o alcance de detecção, paramos de patrulhar ao seguir o jogador e seguimos o jogador Se não estivermos patrulhando, iniciamos a quadra em duas patrulhas para retomar o patrulhamento se não estiver dentro do alcance de detecção Atualizamos a velocidade da animação com essa velocidade de flutuação. Este é um método para seguir o jogador, evitando que ele se mova se estiver morto. Definimos uma velocidade mais alta para a perseguição. Aumentamos a velocidade da animação ao perseguir duas vezes. Enfrentamos o jogador enquanto o seguimos. Esse é o método para atacar o jogador. Novamente, evite atacar se estiver morto. Este é o enumerador Cooldown I. Esse é o método de inatividade, mas também evitamos a inatividade em caso de morte Aqui está a rotina final de patrulha para o ou então, verificamos a data de agosto antes mesmo de começarmos a patrulhar Ficamos ociosos por um tempo aleatório. Em seguida, escolhemos um ponto de patrulha aleatório. Nós movemos o inimigo e monitoramos se ele fica preso na malha de navegação Se estiver travado, seguimos essa lógica para tentar recalcular Usamos a posição da amostra NavM para garantir que os pontos de patrulha sejam válidos Retorne o vetor zero. Se nenhuma posição válida for encontrada, paramos o agente NavMS quando o patrulhamento Nós lidamos com o comportamento da morte. Reproduza a animação da morte. Defina a velocidade do animador como zero para interromper as animações, desativar todos os aceleradores, desativar o corpo rígido, se existir, interromper todas as corrotinas Isso destrói o modo de arma e a visão da cena para que você possa ver o alcance de detecção, o alcance do ataque e o raio da patrulha. Você pode ler esta nota do curso aqui para obter uma explicação do código sobre a locomoção dos orcs Primeiro passo, as variáveis importantes. O que o orc precisa saber? Etapa dois, o método para configurar as coisas. Etapa três, o que o c faz em cada quadro, o método de atualização? As principais ações são seguir o jogador atacando o jogador ou patrulha, o jogador que segue, o tag player, o sistema de patrulha. O script de saúde do inimigo, é assim que ele sofre dano e depois morre. Essa é a lógica de saúde de seu inimigo. Comece o Maxal com 20. No método start, obtemos um componente para sua referência ao animador e ao script de locomoção. público anula os danos e a quantidade de danos, ativando a função de matriz quando necessário Esse é o método de morrer aqui. Você inicia uma corrotina para destruir após a animação, aqui está a corrotina Aqui estão algumas das variáveis importantes, a explicação de como sofrer danos e morrer e as instruções detalhadas de configuração, se você precisar delas. Eu configurei c no Unity, a configuração do animador, a configuração do NapMSH, o player de sinais e os componentes do script, ajustando as configurações ajustando as Consulte essas capturas de tela se tiver dúvidas ou quiser comparar sua configuração Controlador de curvatura Ok, agente NaFMES, corpo rígido, colisor de cápsulas, script de locomoção Ok, não se esqueça de conectar também o HealthScript inimigo. 65. O jogador: PlayerMovementV3.cs; PlayerHealth.cs; PlayerInventory.cs: Olá e bem-vindo de volta. Então, para o jogador, revisaremos a versão três do movimento do jogador, a saúde do jogador e os scripts de inventário do jogador. Então, o primeiro é um script da versão três do movimento do jogador. Como você pode ver, as seguintes variáveis públicas e privadas são necessárias. Certifique-se de ter todos eles. Precisamos de uma referência ao script de saúde do jogador. Temos alguns campos para atirar pedras, o método de esteira. O método inicial, onde obtemos o componente de saúde do jogador e outros componentes necessários. No loop de atualização, evitamos o movimento se o jogador estiver morto. Verificamos se o controlador do personagem está aterrado e podemos pular se ele conseguir Verificamos se ele está se movendo, lidamos com o lançamento de pedras, lidamos com a morte do jogador, paramos o movimento após a morte, encerramos a lógica do jogo Esse é o método para lidar com o golpe. Use a corrotina para reproduzir o som do chapéu com um pequeno atraso Método para redefinir o estado do jogador para uma nova tentativa do jogo. Esse é o método de atirar uma pedra, atirar uma pedra. Nós apenas atrasamos conforme necessário. Temos um cheque para ver se ainda há alguma pedra. Caroteno para jogar a pedra após um atraso. Aqui está uma análise das variáveis importantes. O método inicial para configurar as coisas. O método de atualização também executa todos os quadros. O lançamento das pedras ou a fundição, se preferir, lidar com a morte Ele tem que interpretar um roteiro de saúde. Sua saúde máxima, sua saúde atual, uma referência à barra deslizante da interface do usuário que representa sua saúde O loop de atualização, um método para curar o jogador, método para sofrer danos, verificar se o jogador está morto, lidar com a morte. Análise das variáveis importantes, o método de partida, o manuseio e a recepção de danos , a morte do jogador. Ele é um inventário do jogador para acompanhar quantas pedras ele pegou. O método inicial, atualize a interface de contagem de pedras. As variáveis importantes, adicione ou use pedras. Atualizando a contagem de pedras na interface do usuário e aqui estão as instruções detalhadas de configuração para ajudá-lo a comparar sua configuração, configurar o player no Unity, o animador, a interface de saúde, a interface de contagem de pedras, como adicionar objetos de pedra e algumas capturas de tela para indicar a controlador do personagem, o animador, a fonte de áudio com o script de reprodução na versão três do movimento do jogador visitante, o script de saúde do jogador e o script de inventário do jogador Tudo isso deve ser anexado ao seu jogador e todas as referências devem ser atribuídas. Consulte as notas do curso se precisar de ajuda com alguma delas. 66. Gerente de cogumelo: MushroomManager.cs: O script do gerenciador de cogumelos trata de tudo relacionado à coleta e consumo de cogumelos no jogo Ele gerencia quantos cogumelos o jogador tem. Ele atualiza a interface do usuário e permite que o jogador consuma os cogumelos para produzir. Então, vamos fazer uma revisão rápida. O método void awake, certifique-se de que seja apenas uma instância do gerenciador de cogumelos, o método start, atualize a interface do usuário do O método para aumentar a contagem de cogumelos está aqui. Método para consumir um método de consumo de cogumelos Método para obter uma contagem de cogumelos, atualize o texto Ms pro display of the mushroom É um resumo das variáveis importantes, o método de ativação, a configuração da interface do usuário, a adição de cogumelos, o consumo de cogumelos Obtendo a contagem de cogumelos e atualizando a interface do usuário. Aqui estão as instruções de configuração, a configuração do script do gerenciador de cogumelos, a configuração da coleta de cogumelos É aí que o MK dá um exemplo e segue a captura de tela para ajudá-lo com a configuração Este é apenas um objeto de jogo vazio na hierarquia com um script anexado 67. Gerente de pontuação: ScoreManager.cs: Olá e bem-vindo de volta. O script do gerenciador de partituras. O script de gerenciamento de pontuação controla a pontuação do jogador, o cronômetro do jogo e controla o que acontece quando o jogo termina Ele também gerencia a tela de fim de jogo e permite que um jogador reinicie o jogo ou saia do jogo. Observe que ele usa a declaração de gerenciamento de cena aqui. Essas são as variáveis públicas e privadas de que precisamos. O cronômetro está configurado para 10 minutos por padrão, mas você pode ajustá-lo Aqui está o método de ativação para garantir que haja apenas um gerenciador de pontuação, o método inicial para verificar se o jogo não acabou Reinicie o cronômetro e a pontuação no início da cena. O loop ou método de atualização, método para adicionar uma pontuação e atualizar a interface, o método de atualização de texto para atualizar o cronômetro e verificar o fim do jogo, interface de texto do cronômetro atualizada, se ainda houver tempo, método para lidar com o fim do jogo Método para redefinir o estado do jogo, método para repetir o jogo, bloquear e olhar o cursor Redefina o estado do jogador e saia do jogo para obter versões compiladas do jogo. Isso não funciona no editor, como você sabe. As variáveis importantes, o método de despertar, o método de início, configurar o jogo, somar pontos à pontuação, controlar o cronômetro do jogo, terminar o jogo, reiniciar o jogo, sair do jogo Aqui estão as notas detalhadas para instruções de configuração, crie um objeto de jogo vazio, anexe seu gerenciador de pontuação, atribua os elementos da interface do usuário configure o jogo em Popa Manipulando a pontuação no jogo, no cronômetro e no final do jogo há uma captura de tela para ajudá-lo a ver quais referências devem ser atribuídas Então, quando tudo estiver configurado, o gerenciador de pontuação rastreará a pontuação do jogador, a contagem regressiva e lidará com o que acontece quando o jogador perde o jogo O jogador pode escolher reiniciar o jogo ou sair completamente. 68. Gerente de jogo: GameManager.cs: Olá e bem-vindo de volta. Portanto, o script do gerenciador de jogos lida com dois recursos importantes em seu jogo. Número um, mostrar e ocultar o suporte técnico com um botão e sair do jogo. É um script muito simples e é anexado ao objeto do gerenciador de jogos em uma hierarquia e ativa e desativa o suporte técnico Esse é o método de desistência. E verifica se a tecla está sendo pressionada e, se estiver, mostra ajuda e oculta a ajuda E se a tecla Q for pressionada, ela sai do jogo para jogos compilados Aqui estão as variáveis, mostrando e ocultando o texto, saindo do jogo, ouvindo a tecla pressionada com as teclas H ou Q, e aqui estão as instruções de configuração, adicionando a interface de ajuda, anexando o script e uma captura Arraste a interface de usuário do helpdesk que você criou ou use um prefab se você tiver um prefab feito para o helpdesk. Mamãe. 69. Gerentes de Spawn: NPCSpawnerV1.cs: Olá e bem-vindo de volta. Então, vamos fazer uma análise dos gerenciadores de spawn controlados pelo script da versão 1 do NPC Spawner. Portanto, o script da versão 1 do NPC Spawner é responsável por gerar NPCs, personagens não jogadores, aleatoriamente ao redor do jogador Ele controla onde o NPC aparece, garante que eles não apareçam muito perto do jogador ou um do outro e reapareça NPCs quando eles ficam Então, uma vez configurado, seu gerente de spawn, Mushom spawner e magic Stone spawner controlarão diferentes tipos Eles aparecerão ao redor do jogador, verificarão as posições válidas e garantirão que os objetos reapareçam se ficarem muito longe do Vamos fazer uma rápida revisão do código. Aqui, temos uma variedade de prefabricados de NPC, uma camada para detecção de solo, uma referência ao Temos configurações de alcance controladas por controles deslizantes no inspetor, para que você possa ajustar a distância mínima de desova, a distância máxima de desova, máxima de desova mínima de desova e a contagem Temos um parâmetro de variação de tamanho. Temos uma distância mínima entre os NPCs e acompanhamos os NPCs de desova em O método start chama o método spawn NPC. O método de atualização lida com o renascimento. No NPC de desova, é aqui Usamos quatro ciclos para implementar isso. O identificador respawn verifica se os NPCs estão muito longe do jogador e remove os PCs nulos Eu verifico a distância até o jogador e o reapareço, se necessário. Ele destrói o NPC e o remove da lista para manter tudo organizado e obter uma posição de respawn válida Eu precisava gerar um novo NPC na posição válida, aplicar uma escala aleatória e adicionar um novo NPC Obtemos uma posição de local válida com base nas restrições. Tentaremos 50 vezes encontrar uma posição válida. Verificamos se há NPCs próximos usando a lógica do elenco. outro lado, usamos um loop de quatro cada para verificar os NPCs próximos, ver se estão muito próximos e ajustamos as tentativas que fizemos Aqui está uma verificação das variáveis importantes. NPCs gerando, estão gerando os NPCs. Isso verifica cada NPC para ver se está muito longe do jogador e, se estiver muito longe, é destruído e um novo é gerado mais perto do Encontrar posições de desova válidas. Esse método escolhe aleatoriamente uma posição ao redor do jogador e garante que a posição esteja no chão e não muito perto de outros Aqui estão as instruções de configuração. Não esqueça a camada do solo e atribua ao jogador e ajuste seus parâmetros de desova, dependendo do que você está O gerador de cogumelos e o gerador pedras mágicas com uma captura de tela para mostrar alguns exemplos. Nesse caso, temos três variações do coelho na camada uma captura de tela para mostrar alguns exemplos. Nesse caso, de solo ao redor do Os cogumelos também têm três tipos de cogumelos ao redor do jogador na camada do solo e um tipo de pedra mágica no chão ao redor do jogador. Então, uma vez configurado, seu gerente de desova, gerador de cogumelos e gerador de pedras mágicas controlarão diferentes tipos de objetos em seu jogo, como mencionado, os NPCs, cogumelos, pedras mágicas, mas você pode usar esse script para gerar qualquer diferentes tipos de objetos em seu jogo, como mencionado, os NPCs, cogumelos, pedras mágicas, mas você pode usar esse script para outro objeto conforme necessário. 70. Scripts de pedra mágica: MagicStone.cs e StoneV2.cs: Olá e bem-vindo de volta. Scripts de Magic Stone. Temos dois nas versões finais. Este magicstone dot cs e a versão stone two dot Cs. Então, vamos dar uma olhada no código final. Temos um método de inicialização que garante que o objeto do jogo tenha um componente de fonte de áudio. E se não houver um, ele até adicionará um para você. Usamos o void on trigger Inter Collider, outro método para verificar se o jogador colidiu com E adicionamos pedras ao inventário do jogador, tocamos um som de captação Nós destruímos a pedra depois de ser recolhida. Usamos um pequeno atraso para permitir que o som reproduzido antes que o objeto seja destruído. Use os detalhes explicativos do CD para Magic Stone. O script da pedra mágica é usado quando o jogador pega uma pedra mágica no jogo Quando o jogador toca na pedra mágica, ela é adicionada ao inventário e depois desaparece Algumas variáveis importantes, como detectar o jogador e adicionar as pedras. Então, em Stone Vision two, temos uma pedra mágica em busca de calor e esse script controla uma pedra que um jogador joga em inimigos como o orc Ele pode procurar o inimigo mais próximo e se mover em direção a ele, assim como um míssil de busca de calor faria se estivesse perto o suficiente Você pode ajustar os parâmetros de acordo com sua preferência para velocidade e faixa de detecção e assim por diante Essa é a quantidade de dano que a pedra causará. Esse é o som do calor, a velocidade da pedra ao procurar um inimigo, a altura acima do solo durante a busca, as chuvas nas quais a pedra buscará, as chuvas além das quais a busca é desativada e a pedra não se comportará mais como um míssil de busca de calor Ele será lançado na frente do jogador e ele poderá pegá-lo novamente. Este é o inimigo alvo da busca de calor . Verificamos se temos um alvo válido dentro alcance no método tenso Se o inimigo estiver dentro do alcance, avançamos em direção a ele. A pedra que é. Se o inimigo estiver muito longe, deixamos a pedra continuar sua trajetória normal e ativamos a gravidade para o comportamento normal da pedra Na colisão Enter, esse método é chamado quando uma pedra colide com outro objeto E temos que verificar se a pedra colidiu com um inimigo ou não Lembre-se de que a organização precisa ser marcada como inimiga. Obtemos o componente de saúde inimigo do objeto de jogo inimigo. Se o inimigo tiver um componente de saúde inimigo, aplicamos dano a ele. Tocamos som térmico. Destruímos a pedra depois que ela atinge o inimigo. Opcionalmente, poderíamos destruir a pedra se ela atingir algo diferente de um inimigo Isso está desativado, mas você pode ativá-lo se quiser. Mas isso evitará que Doozy, nosso jogador, não consiga pegar a pedra e reutilizá-la Encontre o inimigo mais próximo dentro do alcance com o método encontre o inimigo mais próximo. Buscamos o inimigo alvo movendo a pedra em direção a ele. Resumo das variáveis importantes, encontrando e rastreando o inimigo A pedra procura o inimigo mais próximo dentro de um determinado alcance usando o método do inimigo mais próximo. Se encontrar um inimigo, ele se move em direção a esse inimigo usando o método de alvo Sk. Se nenhum inimigo estiver ao alcance, a pedra continua a se formar naturalmente com a gravidade. Este é um resumo de como lidar com colisões com inimigos. Então, quando uma pedra atinge um inimigo, ela causa dano ao inimigo e depois se autodestrói. Se uma pedra atingir algo que não seja um inimigo, ela continuará caindo ou será destruída dependendo de como você ativou o código. Buscando o inimigo, o melhor inimigo mais próximo procura por inimigos no jogo e escolhe o mais próximo da pedra, mas somente se estiver dentro de um alcance de busca válido Movendo-se em direção ao alvo, o corpo rígido do filho o moverá em direção ao inimigo e a gravidade desativará a busca de qualidade Instruções detalhadas de configuração para a pedra mágica, como adicionar os scripts, atribuir o áudio, atribuir o inventário e, para a segunda versão da pedra, clipe de áudio, configurações de busca, faixa de velocidade de busca e altura Aqui está uma captura de tela para ajudá-lo. Deve ter um colisor de lança com gatilho Es. Você deve ter a escrita da pedra mágica, atribuir o som de captação, um corpo rígido, uma fonte de áudio E a versão dois, é para a faixa de altura de velocidade de impacto e busca e quando deve ser desativada. Comece com esses valores e depois experimente. Depois que tudo estiver configurado, Pedra Mágica será um item colecionável que será adicionado ao inventário do jogador, e a segunda versão de Stone será um poderoso projétil de busca de calor que um jogador pode usar para atacar inimigos como a organização A propósito, não a Fox. 71. Gerenciamento de coleta de itens: ItemPickup.cs: Olá e bem-vindo de volta. Gerenciamento de coleta de itens, o script de coleta de itens Vamos dar uma olhada no que você pode usar esse script na versão final. Como você pode ver na nota aqui, ele é configurado com um Enum para nos permitir pegar um coelho ou um Ele tem as seguintes variáveis públicas e privadas. Adicionamos esse campo para especificar o tipo de item. Recebemos uma referência ao animador do jogador, supondo que o jogador esteja marcado como jogador Em seguida, encontramos o jogador com um bom objeto de jogo com tag player. Usamos o void on trigger Enter collider outro método para verificar se é o jogador Verificamos se o animador do jogador está atribuído antes de usá-lo Se for, reproduzimos a animação de captação no player. Tocamos o som do captador. Desativamos o visual do item e o colisor. Iniciamos uma corrotina para esperar que a animação de captação termine Esta é a corrotina aqui, onde esperamos até que a animação de captação comece Então, quando terminar, fazemos essa lógica. Lidamos com diferentes tipos de itens com um switch e uma declaração de caso. Neste exemplo, temos item coelho e o tipo de item cogumelo Para coelhinho, atualizaremos a pontuação. Para cogumelos, adicionaremos um cogumelo à contagem de cogumelos. Essas são as variáveis-chave. Encontrando o jogador e configurando-o no método start, o jogo procura o jogador em uma cena usando o do jogo ou encontre o objeto do jogo com o método tag. Ele pressupõe que o jogador esteja marcado como jogador. O script também tenta obter o componente animador do jogador, que controla as animações do jogador Etapa três, pegar itens. Quando o jogador toca no item, o método trigger enter é chamado Se o jogador colidir com o item, o item será retirado. A animação do captador é acionada, o som do captador é reproduzido e o item desaparece do Lidando com a picape. Se o item for um coelho, a pontuação do jogador aumenta em um Se o item for um cogumelo, ele será adicionado ao gerenciador de cogumelos para uso posterior na cura Esta é uma olhada no enumerador I, espere a animação de captação terminar. Esperamos até que a animação de captação comece até terminar, lidamos com os diferentes tipos de itens, instruções detalhadas de configuração, criamos o item pré-fabricado, anexamos o script, atribuímos as variáveis, marcamos o player, configuramos e testamos o animador Neste exemplo, temos um coelho com um colisor de esferas e o gatilho es habilitados Temos o script de coleta do item com um coelhinho pré-fabricado aqui, o som e definimos o tipo de item Neste exemplo, definimos o tipo de item como cogumelo. Seguindo essas etapas, seu jogo permitirá que os jogadores escolham itens que acionam animação, efeitos sonoros e recompensas de jogabilidade 72. Gerenciamento de diálogo: JoleenDialog.cs: Olá e bem-vindo de volta. Gerenciamento de diálogos e interface do usuário do Canvas. Portanto, o diálogo de Jalene é um exemplo simples de como você pode conversar com outro Portanto, esse script controla uma personagem não jogável, NPC chamada Jolene, que fala com o jogador quando um jogador chega Jolene avisará o jogador sobre quaisquer perigos e falará sobre a coleta de e falará Então, primeiro, precisamos de uma referência ao elemento de texto da interface de diálogo. Precisamos de uma referência ao elemento de interface do usuário da caixa de diálogo, e você coloca um texto que deseja dizer ao player que pode ser o que quiser, e você pode ter várias conversas para estender. Precisamos de uma referência à transformação do jogador, intervalo para a caixa de diálogo ser acionada e ao intervalo para a caixa de diálogo fechar. Isso é basicamente o quão perto ou a distância o jogador deve estar para mostrar ou ocultar a caixa de diálogo. Essa é uma referência ao animador de Jalen. Inicialmente, ocultamos a caixa de diálogo no método de atualização, verificamos a distância até o jogador e, em seguida, Jalen fica de frente para o jogador e mostra o diálogo para iniciar a conversa Caso contrário, se o jogador estiver muito longe, ele ocultará o diálogo. O método para encarar o jogador, o método para mostrar a caixa de diálogo e ocultar a caixa de diálogo. As principais variáveis usadas, inicializar o script com um método de início, verificar a distância do jogador, ficar de frente para o jogador, mostrar o diálogo, exibir uma mensagem, acionar a animação da palestra para que Jolene pareça estar Escondendo o diálogo, se estiver muito fora do alcance, algumas notas detalhadas das instruções de configuração. Crie Jolene, crie uma interface de usuário de caixa de diálogo, atribua a mensagem, defina a transformação do player, a configuração do animador, ajuste Seguindo essas instruções, Jalene agora interagirá com o jogador mostrando o diálogo quando ele se aproximar Ela também se vira para encarar um jogador e reproduz animações para tornar a conversa mais envolvente 73. Série Doozy: árvore de lona - câmera virtual - câmera principal: Olá e bem-vindo de volta. Você pode usar essa estrutura de árvore de tela em sua hierarquia para garantir que tenha todos os componentes de interface de usuário necessários que são usados no jogo Então, o suporte técnico, o texto da pontuação, a tarefa de dica de ajuda, a tarefa do cronômetro, o pop-up do game over, que é desativado até ser necessário, a caixa de diálogo também é desativada até que seja necessária a caixa de diálogo também é desativada até que seja O controle deslizante de ajuda para Doozy, o jogador, a alça, que não é necessária, então está desativada, a contagem de pedras e a contagem Além disso, daremos uma olhada nos componentes e configurações da câmera virtual para sua câmera virtual acionada pela máquina de cinema Lembre-se de atribuir ao seu player a importância de ter um transpositor de enquadramento. Aqui estão os detalhes da seção Faça o seu assim e, em seguida, você poderá experimentar e personalizar conforme necessário. Os principais componentes e configurações da câmera. Observe que o colocamos na camada de pós-processamento. Usamos um caminho de renderização adiado. Temos a camada de pós-processamento atribuída ao pós-processamento aqui, e esse volume pode estar no jogo ou na câmera e está usando um exemplo de perfil que veio com nosso mundo. Temos vinheta personalizada 74. Conclusão do curso da série Doozy: Parabéns. Você fez um jogo completo. Obrigado por participar deste curso comigo. Espero fazer muitos outros tutoriais como esse no futuro e espero ver você de volta Obrigado novamente, Emo. Hmm. E e e