Ei, bem-vindos de volta, meus colegas desenvolvedores de jogos.
Neste vídeo, não mudamos muito,
mas o que fizemos foi que acabamos
começar a montar um sistema de armas adequado.
Movemos a mecânica de tiro
do jogador do condenador para a arma real,
que é o console Sharp.
Como você pode ver, não há nada de novo aqui.
Acabamos de fazer algumas mudanças.
Este vídeo é tudo sobre,
vamos chamá-lo de atualizar
seu projeto para que você chegue a um certo ponto.
Você tem todas as mecânicas básicas que você quer,
mas agora é hora de torná-las muito mais eficientes.
Então, sem mais delongas,
não vamos perder mais tempo.
E vamos fazer a nota do projeto novamente.
Caso 0.
Então é hora de criar um sistema de tiro mais
avançado e profissional.
Então, a primeira coisa que vamos
fazer é mover tudo o
que está relacionado ao
disparo do controlador do jogador
para um script separado
que vou criar agora.
Se eu entrar nos roteiros
e talvez vamos fazer isso um pouco maior.
Assim, podemos vê-los pelo menos e duas linhas.
Estes, tudo bem, lá vamos nós.
Vou entrar aqui.
Estou criando uma pasta que será chamada de
arma ou
vamos chamá-la de sistema de armas.
Tenha Enter.
E eu vou criar
um script aqui que será o
sistema de armas.
Pressione Enter, aguarde que ele seja compilado.
E lá vamos nós.
E um dia agora. Obrigado.
Foi apenas um roteiro.
De qualquer forma, vou fazer
do fogo apontar um filho da espingarda,
e isso não permitirá que precisemos abrir o pré-fabricado.
Lá vamos nós, torná-lo uma criança, salvar isso.
Volte para o nosso jogo. Lá vamos nós.
Então agora temos, e às vezes quando
você quer adicionar os prefabs,
fazer filhos das coisas e fazer pais.
Às vezes, isso exigirá que você
faça o passo extra de realmente mudar todo o pré-fabricado.
E a próxima coisa que vamos fazer
é adicionar
esse sistema de armas à espingarda real.
Então, agora a espingarda vai lidar com todo o tiroteio.
Primeiro de tudo, vamos abrir o sistema de armas.
E se eu olhar no controlador de camada, onde está?
Vamos clicar aqui.
Enquanto o controlador do jogador, tudo bem, no entanto.
Então lá vamos nós. Como você pode ver,
temos tantos scripts agora.
Mas, de qualquer forma, o que queremos fazer é nos mover
e esse deve ser um método separado.
O que queremos fazer é mover toda a
mecânica de tiro do jogador do
controlador do jogador para o sistema de armas.
Talvez já tenha mencionado isso antes.
Não queremos que o jogador cuide de tudo.
Por exemplo, não queremos que
o jogador cuide de como as balas voam,
e não queremos que o jogador cuide de como as armas funcionam.
Então, com isso dito,
vou lhe emitir um desafio.
E seu desafio será mover
o disparo para o roteiro adequado.
Então, alguns dos métodos de disparo do
controlador do jogador para o script do sistema de armas.
Certifique-se de que os dois copiem todas as variáveis apropriadas com ele
e definam tudo em unidade e teste-o,
certifique-se de que ele funcione corretamente.
Portanto, esse desafio é apenas
sobre como você atualiza seu script,
como você atualiza seu projeto e ganha.
Às vezes você começa seu projeto.
Você não tem todo o grande plano para isso,
então você precisa fazer ajustes.
Este será apenas um exercício
como transferir coisas de um roteiro,
o próximo, tornando-o melhor,
eu farei isso na sua frente,
então não se preocupe com isso.
Vamos garantir que tudo funcione corretamente.
Mas, por enquanto, pause o vídeo e vá fazer o desafio.
Oh, ok, bem-vindo de volta.
Então, o que vamos fazer aqui?
Vamos seguir em frente e selecionar tudo isso.
Vou cortar então Control X. Vou
seguir em frente e colocá-lo aqui ou saber o que,
vamos manter a atualização e começar.
Talvez precisemos deles.
colar tudo aqui para que você possa
ver que temos muita coisa que precisamos lidar.
Então, de volta aqui,
precisaremos de algumas
variáveis que são, deixe-me subir.
Primeiro de tudo, vou comentar
este, salvar isso.
Então vou verificar aqui, o que precisamos?
Precisamos da troca e automatize a bala no ponto mais distante.
Certo.
Então, vamos ver como o tempo automático da arma entre tiros,
tiros combatidos, ponto de fogo. Lá vai ele.
Estes são.
Variáveis e eu vou colá-las aqui.
Salve isso.
Vamos ver o que mais temos?
Temos algum tipo de erro aqui?
Não, não acho que fosse toda a mecânica.
Então, de volta aqui, o que mais temos?
0. Então, se o jogador pode correr, agora,
obviamente, o arrojado faz parte da
mecânica
do jogador do jogador é aquele que vai correr.
Então, o que precisamos é de uma maneira de
obtermos uma referência ao traço.
Então o jogador está arrojado ou não?
O que podemos fazer?
Se rolarmos aqui para baixo,
podemos criar um método.
E se eu olhar aqui,
o traço que você pode ver como privado.
E o que podemos fazer é criar um método aqui.
E essas são coisas que vamos usar cada vez mais à
medida que seguirmos esse tipo de método.
Portanto, é um bool público e é arrojado em camadas.
Então, aqui, tudo o que você vai fazer
é retornar pode traçar.
E vou adicionar um ponto de exclamação
porque lembre-se de como os traços funcionam.
E porque só retornamos uma coisa,
é assim que vamos escrevê-la.
Agora, obviamente, isso não é algo
que seja como um padrão.
Isso é mais como práticas.
Portanto, tenha algum tipo de
variável em algum script diferente
que você deseja acessar.
Como você faz isso?
Bem, ou você torna a variável pública,
você a torna acessível a todos.
Mas o problema ao torná-lo
público é que você pode mudar.
Então, se eu tornar isso público,
posso mudá-lo de um roteiro diferente,
o que é uma péssima ideia.
Confie em mim, você nunca quer poder alterar
variáveis em scripts diferentes de scripts diferentes.
Portanto, você não quer ser capaz de fazer
o jogador passar,
digamos, do UI Manager por
engano, isso acontece às vezes.
Então, uma maneira melhor é apenas poder verificar se
estamos arrojados para que possamos obter o arrojado,
mas não podemos mudar se o jogador está arrojado.
Portanto, essa é uma camada extra de segurança e
é por isso que sempre usamos campos serializados.
Poderíamos ter tornado todos públicos
e teriam sido as mesmas funções.
Poderíamos tê-los visto no inspetor e assim por diante.
Mas torná-lo um campo serializado significa que não podemos
acessar essas variáveis de diferentes scripts,
e isso pagará dividendos mais tarde
medida que você for em sua jornada de desenvolvimento de jogos.
Certificando-se de que você pode,
não apenas no desenvolvimento de jogos,
sempre que se trata de programação,
você não quer classes diferentes,
alterando variáveis, outras classes diferentes.
De qualquer forma, estou ficando à frente de mim.
O que vamos fazer aqui?
Podemos encontrar o objeto do jogador
ou podemos obter o componente no pai.
E podemos, vamos remover isso por um segundo.
Podemos acessar o controlador do jogador e os pais,
e podemos ir em frente e verificar.
O jogador é o jogador arrojado ou o que,
o que é esse jogador é arrojado.
O que é essa camada é arrojado, está se movendo.
Há 0 arrojado,
então também podemos retornar isso.
Portanto, esse método não é mais necessário.
E isso realmente não foi algo que eu notei.
Mas, de qualquer forma, a camada é arrojada.
Pelo menos tivemos a oportunidade.
Vamos verificar se a
velocidade de movimento atual é igual à velocidade.
Certo, então retornamos verdadeiros. E lá vamos nós.
Se estivermos arrojados ,
não podemos atirar
e não chamaremos isso de tiro do jogador.
Vamos mudar para as balas de disparo.
Lá vamos nós. Então isso faz mais sentido agora.
E o que mais deveríamos estar fazendo?
Bem, obviamente, precisamos
chamá-lo aqui na atualização,
certificando-se de que podemos filmar.
Então, vou simplesmente chamar
o método de balas de disparo.
E agora precisamos voltar ao
Unity e configurar tudo.
Então, vou abrir o Unity.
Você verá que o sistema de armas mudou.
E isso foi, isso é tão embaraçoso.
Nem percebi que estava lá e
esqueci completamente que tínhamos exibido isso arrojado.
Mas, de qualquer forma, pelo menos você aprende
algo de um tipo diferente.
Ou temos esse pequeno monólogo do motivo pelo qual
não queremos acesso às variáveis.
Agora, não se preocupe. Electron,
é claro, estaremos implementando muitos desses
métodos à medida que avançamos
e tornamos nosso código um pouco mais profissional.
Então, com isso, quem as coisas fizeram?
Vamos entrar, antes de tudo,
como 70 pontos distantes da espingarda.
Vamos nos certificar
que esta arma não é romântica e faremos
o tempo entre os tiros em torno de 1 segundo, 1, não 21.
Precisamos de uma bala, então vamos para os Prefabs,
balas quebradas e as balas da camada.
Salve isso.
Vamos entrar no doom player e aplicar todas as alterações.
E agora vou para O que mais temos?
Vamos executar o jogo e ver o que acontece.
Então o jogador, o jogador se move por aí,
mas então o jogador se move e se devemos,
lá vamos nós, podemos atirar.
E se eu segurar o botão do mouse,
por algum motivo, ele não está disparando.
123.
Oh, não é automático.
Certo.
Mas o problema é tão bom.
Agora, mesmo que eu mantenha pressionado o botão do mouse,
não é automático, mas a espingarda ainda dispara muito.
E isso é algo que queremos consertar porque agora estamos
falando de uma mecânica de tiro avançada.
Não é o mecânico de tiro habitual.
Precisamos ter certeza de que nossa filmagem seja consistente.
Então a espingarda, se segurarmos, ela dispara
um botão,
mas se continuarmos pressionando para que a espingarda não deva
estar disparando tanto ao atirar.
Então, com isso fora do caminho,
com toda essa seção, Alterar, criar scripts de tudo.
Espero que você goste e te vejo no próximo vídeo.
Certifique-se de que você sempre confirme suas alterações.
E eu vou fazer esse commit
mover a mecânica de tiro da
camada dois, a arma real.
Lá vamos nós, comprometemos as alterações
e te vejo no próximo vídeo.