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