Bem-vindo de volta, Meus desenvolvedores de jogos favoritos.
Sei que este é um vídeo longo,
mas fazemos muitas coisas.
Aprendemos muitos pequenos truques bacanas aqui.
Então, quando executarmos o jogo,
você notará que temos apenas
o pistilo agora e o
braço de armas devemos a pistola, tudo funciona bem.
Temos a espingarda no chão.
Uw, o que você acha que vai acontecer quando o pegarmos?
Então eu fui buscá-lo.
Lá vamos nós.
Podemos ver que eu tenho uma espingarda
e podemos ver a bala daquela arma de tiro.
Não podemos desligar nada.
Podemos alternar entre a pistola e a espingarda,
mas não vamos nos preocupar com isso.
Tudo acontecerá.
Tudo será corrigido no devido tempo.
Então, não vamos perder mais tempo com
este grande vídeo longo e vamos começar.
Oh, caso.
Então, hora de configurar a maneira como pegamos nossas armas.
Então, agora, a maneira como temos nossas armas é boa o suficiente.
Estamos mudando, estamos fazendo tudo,
mas não é assim que queremos que nosso jogo funcione.
Não queremos apenas começar com todos os
nossos botões e apenas alternar entre eles.
Queremos ter algum tipo de mecânica que nos permita
tê-los ou adquiri-los de alguma forma.
E uma dessas coisas é que podemos pegar
nossas armas em certos pontos e no nível.
Então, vamos seguir em frente e fazer isso.
A primeira coisa que vamos fazer
é entrar no doom player.
Vamos remover as
armas que não estamos segurando.
Então, vou remover o rifle,
precisarei abrir o script.
Então remova o rifle, remova a pistola
e volte para o nosso jogo. Lá vamos nós.
Agora, uma coisa que precisamos ter certeza é que também os removemos
das armas disponíveis aqui.
Então, vou remover esses slots vazios,
salvar isso e vamos ver o que temos aqui.
Ok, como você pode ver,
isso também é algo que precisaremos
mudar e eu vou te dizer o porquê.
Vamos tirar as coisas do caminho.
Então, atualmente, estamos configurando
a arma atual em um e, em seguida, configurando a interface do usuário da arma,
mas uma não está disponível aqui.
Então, vamos ver o que acontece quando executamos nosso jogo.
Devemos ver que temos uma seta aqui,
e esse erro é argumento fora do alcance.
Eu clico duas vezes aqui,
ele me leva para a arma de configuração.
Isso significa que a arma atual está fora
de alcance dentro das armas disponíveis.
E é claro que é porque
estamos definindo a corrente
para uma, enquanto só temos uma arma.
Então, o único índice que podemos acessar um 0.
Eu poderia definir isso como 0 se eu quisesse.
Mas o que acontece
é que toda vez que começamos o jogo,
temos, por exemplo,
a espingarda e o rifle,
e o rifle está ligado enquanto a arma atual é
diferente do que você entende o que quero dizer.
Então o índice ficará
fora de lugar e isso é algo que
não cuidamos no último vídeo.
Então eu vou mostrar o que acontece, mesmo
isso leve um pouco de tempo para
entender, mas não se preocupe.
Quero ter certeza de que tudo está
devidamente compreendido e por que
estamos fazendo todas essas coisas.
Então pistola, espingarda, rifle, aplique as mudanças.
Por exemplo, digamos que eu desligue
a pistola e desliguei o rifle.
Então agora o que devemos ter como espingarda quando começamos.
Então, vou executar isso.
Lá vamos nós.
Temos o tiro de espingarda,
mas eu tenho a pistola e a interface do usuário.
Se eu clicar nele novamente,
então eu tenho a espingarda que tenho o rifle.
Então, como você pode ver, as coisas são estranhas no início.
Então, em vez de fazer isso
, o que vamos fazer,
vamos remover isso e vamos
criar um loop for.
Então quatro e eu é igual a 0,
eu sou menor do que a contagem de pontos de armas disponíveis,
conte porque estamos usando listas e eu mais, mais.
E aqui vou verificar se a arma disponível, a
posição que pontuo GameObject ponto ativo na hierarquia,
isso significa que aparece e nós realmente escolhemos
estar disponíveis para o jogador?
Então vamos definir a arma atual igual a I.
E dessa forma tudo deve estar funcionando perfeitamente bem.
Então, se eu voltar aqui,
eu tenho a espingarda.
Eu executo o jogo.
A arma deve estar correta aqui.
Lá vamos nós, espingarda.
Vamos testá-lo no rifle.
Então, desligue isso, execute o jogo.
Então agora devemos ter o rifle.
E lá vamos nós, tudo está funcionando corretamente.
E finalmente, testamos na
pistola e removemos o rifle, corremos isso.
E devemos ter a pistola.
Certo, ótimo, então tudo está funcionando bem.
Agora, eu me diverti um pouco para fazer isso.
Não se preocupe, mas desde
isso esteja fora do caminho, porque será
importante quando começarmos a pegar armas.
Então, a primeira coisa que precisamos fazer é criar
o objeto de coleta com o qual vamos interagir.
E eu criei esses três sprites aqui.
E a diferença entre
os sprites regulares e as armas e
esses é que eu adicionei um pouco de
camada branca ao redor do console.
Podemos vê-los no mundo.
Então, vou entrar nos sprites, clique com o
botão direito aqui, criar.
Não.
Crie uma nova pasta que será o
backup de armas.
Pressione Enter, abra isso.
Ou poderíamos ter adicionado aos pickups,
mas não se preocupe com isso.
Ter mais pastas nunca machuca ninguém.
Então, como você pode ver, há
um contorno branco ao redor da espingarda.
Então, se eu adicioná-lo aqui,
coloque-o no player.
E vou fazer todos esses
32 e fazê-los apontar.
Aplique as alterações.
Lá vamos nós. Então, como você pode ver,
a espingarda tem esse contorno branco
em torno dela para que possamos vê-lo e trabalhar corretamente.
Não era tão grande coisa sempre que estávamos
segurando a arma
porque temos o jogador como pano de fundo.
Mas agora precisamos ter certeza de que podemos ver visivelmente e
facilmente a espingarda ou qualquer pistola e arma.
E se você não gosta, honestamente,
levei como, eu não sei,
uma hora para fazer isso no Photoshop.
Não faço ideia de como é bom ou ruim.
Talvez alguns de vocês estejam se encolhendo no trabalho,
mas pessoalmente, foi o meu melhor.
Vamos continuar um.
Então, o que vamos fazer aqui
é manter isso como a espingarda.
Vamos adicionar um componente.
Obviamente, vai ser o colisor.
Então, um colisor de caixa 2D.
Vamos ver o quão grande isso é.
E talvez possamos aumentar
um pouco o tamanho no x e no y.
Não precisa acertar
a arma inteiramente para pegá-la.
Então, só um pouco e tê-lo como um gatilho.
Nós salvamos isso. E a próxima coisa que
vamos fazer obviamente é algum comportamento.
Então vou entrar nos scripts, entrar nos captadores,
clicar com o
botão direito do mouse aqui e criar um novo script C-sharp
que será o backup de armas.
as armas Enter, pegue,
espere que ela seja compilada para o captador da espingarda.
E vamos abrir o roteiro e
ver o que vamos fazer aqui.
Ok, então a primeira coisa que precisamos,
pois realmente precisamos saber
qual arma isso vai ser.
Então a espingarda obviamente nos dará a arma de espingarda.
Então eu vou criar um campo serializado aqui,
que será o sistema de armas do
tipo sistema urbano será a
arma real que vamos pegar.
Salve isso.
Agora, a próxima coisa que queremos fazer é que queremos
ser capazes de pegar esse objeto.
E antes de podermos realmente adicionar esse objeto ao jogador,
queremos ter certeza de que ele
ainda não tem esse objeto.
Então eu não quero carregar cerca de 10 espingardas.
Só preciso de uma arma de tiro único para estar disponível para mim.
Então deixe-me antes de tudo assim para baixo.
Vamos ao pré-fabricado,
ir para as armas,
e vamos adicionar a espingarda aqui como arma.
Então, espero que você tenha entendido o que quero dizer.
Não quero pegar uma espingarda
enquanto já tenho uma espingarda.
Quero pegar uma espingarda somente se ela não estiver
sendo mantida em minhas armas disponíveis.
E esse é o seu desafio de
olhar através das armas de camada.
Então, antes de tudo, você precisa criar um empreendedor
Enter e verificar se colidimos com um jogador.
Obviamente, não queremos que nossos esqueletos
estejam nos atacando foram armas de tiro.
Quem, então, você precisará criar
uma variável dentro do método para
acompanhar se encontramos
a arma ou não no jogador.
Você precisa passar por toda a camada profunda das armas
e , obviamente, verificar se estamos carregando a arma,
você pegou usando o nome GAN,
então precisaremos do nome da arma e do telefone para
acessar o nome da arma e acesse as armas disponíveis,
você precisará criar alguns métodos extras.
Então este é um grande desafio,
um desafio muito difícil,
mas sei que você está à altura da tarefa.
Leve seu tempo, brinque,
cometa erros, não se preocupe com isso.
Estarei lá para ajudá-lo depois de tentarmos.
Então você não perde nada.
Pause o vídeo agora mesmo e vá até Alan.
Kay, bem-vindo de volta.
Então, a primeira coisa que vou fazer
é remover o início e a atualização.
Vou criar o empreendedor entrar em 2D.
E aqui, obviamente, verificamos se a
tag collision.com como o jogador.
E agora podemos continuar.
Agora, a próxima coisa e algo aqui,
talvez pudéssemos ter feito imediatamente
todos os captadores terem uma determinada camada e fazê-lo
interagir apenas com
a camada do jogador que teria sido um pouco inteligente
e talvez não tenha todas
essas condições f toda
vez que queremos usar uma pickup.
Então, só um silêncio,
esqueci disso.
Talvez você possa fazer isso sozinho.
Com isso dito, vamos continuar em seguida. O que queremos?
Bem, obviamente queremos
essa variável booleana que dirá
essa arma no jogador.
E isso será definido como falso.
Ok, agora a próxima coisa que precisamos fazer é que precisemos criar
um loop foreach que verifique.
E vai estar verificando armas ou armas.
Então, é o sistema de armas.
A arma para verificar.
E onde estamos procurando por isso?
Bem, estamos procurando
as armas disponíveis no jogador.
No controlador do jogador,
seu objetivo, ele diz isso aqui.
Então, vamos examinar as armas disponíveis,
mas obviamente as armas disponíveis,
mas obviamente é um campo serializado.
Não queremos torná-lo
público e disponível para todos.
Então o que faremos é aqui embaixo,
vamos criar e
lá você pode ver o erro que cometemos.
Vamos criar
uma lista pública de sistema de armas de tipo.
Então espero que você tenha tentado isso, com licença.
E vamos chamá-lo de obter
armas disponíveis
na camada.
Lá vamos nós. Esse é um nome longo.
E o que vamos fazer é simplesmente devolver
as armas disponíveis. Lá vamos nós.
Então agora o que podemos fazer de volta aqui,
e porque podemos
acessá-lo imediatamente a partir da colisão,
que colidimos com o componente Get.
E como já sabemos que é o jogador,
podemos acessar o controlador do jogador.
E a partir do controlador do jogador podemos obter
as armas disponíveis no jogador.
Ótimo. Então, o que fizemos aqui,
criamos as armas disponíveis do gueto
tendo o retorno simples,
que retorna uma lista.
E como é uma lista,
podemos adicioná-la aqui.
Então, estamos verificando as armas para verificar.
Agora, como vamos saber se a arma está lá?
O que faremos é criar uma condição if.
E aqui vamos verificar se a arma que está
aqui pontilha o nome da arma.
Então, obviamente, se eu for para o sistema de armas,
se estiver aqui em algum lugar,
o sistema de armas, nós temos o nome das armas,
mas novamente, é um campo serializado.
Então, estes estão bem.
Então, temos o nome das armas get, UI.
Certo. Não se preocupe.
Isso é tudo o que precisamos.
Sim, isso é tudo o que precisamos.
Então, aqui vamos verificar o
nome das armas nas armas ou não,
na verdade, não precisamos disso.
Obter o nome das armas que você é.
E se for igual à arma para
verificar ponto, obtenha o nome da arma UI.
Então, talvez a UI não
tenha sido o nome perfeito aqui para o método,
talvez seja melhor chamá-lo de nome
porque estamos usando-o de uma maneira diferente.
Podemos clicar duas vezes em criar nosso R
e apenas usar o getWidth e o nome.
Pressione Enter. Lá vamos nós.
Agora mudamos isso tudo,
mesmo no sistema de armas.
Aqui em baixo, você pode ver o quão legal é isso.
Portanto, controle, dobre ou
, ou, então, se estiver lá,
isso significa que a arma já está
nas armas disponíveis.
Então, vamos definir a arma na camada como verdadeira.
E depois de terminarmos de olhar
através de todas as armas disponíveis,
vamos depois deste check-in aqui,
se a arma V no jogador não for verdadeira,
então isso significa que ainda é falso.
Não temos a arma, honesto.
O que faremos é ir em frente e instanciar
a arma no componente get ponto de colisão.
E vai ser o controlador do jogador.
E por que estou fazendo todas essas etapas?
Bem, porque eu quero realmente fazer essa arma.
Se voltarmos aqui, você pode ver que a arma é
na verdade, um filho do braço de armas.
Então precisamos fazer com que possamos
ver aqui que uma instanciação,
podemos definir a criança.
Então, vamos fazer exatamente isso e precisamos
de uma referência às armas.
Então, se eu rolar para cima e aqui
você pode ver que temos um braço de armas.
Então, tudo o que precisamos fazer uma rolagem para baixo e novamente,
criar um público. E o que é isso?
É uma transformação, eu acredito.
Sim, digamos transformar.
Então, precisaremos criar
uma transformação pública e obter braço de armas.
E nós simplesmente vamos voltar, devolver as armas.
São.
Lá vamos nós. Então esse foi um desafio difícil,
eu sei, mas espero que você pelo menos
tente chegar na metade dele.
Então, pegue armas.
Não está aparecendo porque é uma transformação pública.
Coloque armas.
Então, o ponto do controlador do jogador pegue arma.
Oh, então controlador de bala do jogador.
Certo, então o controlador do jogador pegue braço de armas.
E lá vamos nós, salvamos isso.
Voltamos ao nosso jogo.
E vamos ver como isso funciona.
Então, temos o histone e
temos a espingarda no chão.
Pegamos a espingarda,
a arma disponível nela,
salvamos isso, executamos o jogo.
E agora, quando chegamos perto da espingarda,
nada acontece porque se eu clicar duas vezes aqui,
podemos ver isso, ok.
E além disso aqui,
podemos verificar.
Certo. Então, bem-vindo de volta.
Por algum motivo, não mudei nada.
Acabei de executar o jogo agora e parece funcionar.
Lá vamos nós. Você pode ver que
pegamos duas espingardas. Por que isso?
Bem, obviamente por causa dos
dois coliders que temos sobre nós.
E também não destrua essa espingarda.
Mas, como você pode ver, ainda estamos
pegando a espingarda várias vezes,
mesmo que possamos analisar isso e ver
que temos a espingarda já honesta agora.
Então, antes de continuarmos,
a primeira coisa que precisamos fazer é
criar o booleano privado,
assim como temos na coleta de saúde.
Então podemos simplesmente copiar isso, colá-lo aqui
e dizer que a coleta
verdadeira sempre que realmente pegamos a arma.
Então aqui disse isso imediatamente para verdade.
E também verificamos se ainda não pegamos a arma.
Então, como você sabe, isso é porque temos
os dois colisores em nós.
Então salve isso de volta em nosso jogo.
Vamos ver como isso funciona.
Agora, nós executamos o jogo.
Temos a espingarda. Ah, e também precisamos
destruir a arma, com licença.
E depois de pegá-lo,
se instanciarmos a arma,
onde está ela para cada um?
Então, aqui você pode escolher
se deseja destruí-lo em qualquer caso.
Acredito que devemos destruí-lo em qualquer caso.
Então, mesmo que não o peguemos,
ele não precisa ficar lá.
Então, vou destruir o objeto assim que
a camada profunda realmente encabeça esse objeto.
Então, volte aqui, execute o jogo.
E lá vamos nós.
Pegamos a arma,
e agora temos a espingarda e a mão.
Como você pode ver, a espingarda dispara e não podemos
ligar e sair as armas
entre a espingarda ou a pistola.
Por que isso? Bem, porque
na verdade não adicionamos a espingarda aqui
nas armas disponíveis e isso é
algo que precisaremos consertar no próximo vídeo.
Essa também é a razão pela qual
vimos aqui que temos
várias espingardas sendo apanhadas
sem que a arma fosse destruída.
Isso será corrigido no próximo vídeo, onde realmente começamos
a adicionar a arma pegada
nas armas disponíveis.
Dito isso, espero que você goste.
Certifique-se de confirmar
suas alterações e eu o verei na próxima.