Ei, bem-vindo de volta, Meus desenvolvedores de jogos favoritos neste vídeo,
nossa arma não é mais um objeto estático.
Se você olhar de perto,
você pode ver que quando nos movemos para baixo,
a arma se move para baixo.
Quando olhamos para cima,
a arma trava.
Obviamente, ainda há algumas coisas que precisam ser consertadas
porque segurar a arma assim que eu sinto é muito desconfortável,
mas não se preocupe com isso.
Este é o primeiro passo para nomear nossa arma corretamente.
Então, não vamos perder mais tempo e vamos começar.
Há muita matemática nisso.
Então, coloque seus bonés de pensamento.
Agora que estamos nos movendo e estamos esbarrando nas coisas,
é hora de começar a apontar nossa arma.
Para fazer isso, queremos girar a arma em torno de uma determinada posição.
Não queremos realmente estar girando a arma exata porque se olharmos aqui,
se formos para a cena,
você pode ver agora mesmo,
se tentarmos girar a arma como ela é,
ela não parece tão boa.
Precisamos de um ponto a partir do qual a arma estará girando.
Então, o que faremos é clicar com o botão direito do mouse no reprodutor de domo.
Vamos criar um objeto de jogo vazio.
Vamos chamá-lo de braço de armas.
E vamos movê-lo para um certo ponto.
E este é o ponto em que a arma ou a partir do qual a arma estará girando.
Então, vou colocá-lo em torno de quase a mão ou o braço do jogador.
E eu vou fazer a espingarda,
um filho dessas armas são.
Então, agora, quando giramos o braço das armas,
você notará que a espingarda permanece em seu lugar quase ao redor do braço aqui,
e parece muito mais natural à medida que giramos a espingarda ou as armas estão.
Então agora é hora de um pouco de frio.
Mas antes de fazermos isso,
como vamos realmente girar esse braço?
Vai depender de onde nossa boca está.
Então, vamos dizer que estamos aqui em cima.
Queremos que a arma de tiro aponte para o mouse.
Como vamos calcular isso?
Bem, vamos precisar de alguns pontos e deixe-me explicar isso usando matemática, sim matemática.
Então, vamos começar.
Primeiro, precisamos da posição do jogador na tela.
Bem, eu uso o termo posição do jogador,
mas na verdade é o ponto em que estamos girando a espingarda ao redor.
Mas, por enquanto, vamos manter isso simples.
Chame isso de posição do jogador
e temos a posição do mouse na tela.
Então, o que queremos é que queremos obter o vetor nesses dois pontos.
Esta é a direção que se foi apontando.
Mas como vamos calcular o ângulo em que queremos que a arma esteja apontando?
Bem, conhecemos a exposição e conhecemos a posição y.
Bem, eu quis dizer X e Y.
Então o que podemos fazer é usar algo chamado tangente de arco.
E isso é algo disponível para nós em matemática.
F da unidade é biblioteca.
Então, podemos usar isso para calcular o arctan.
E se você não sabe o que arctan ou você nem sabe o que Dan é
tangente Eu acredito que se chama é o lado da frente,
que é o y dividido por V x.
E quando fazemos isso,
obtemos um certo número,
que é a tangente.
Então, para obter o ângulo,
usamos algo chamado tangente do arco,
que é meio inverso.
Mas tudo o que você precisa saber é que temos a diferença na altura,
temos a diferença na distância.
E usando isso, calculamos o ângulo em que o argônio deve estar apontando.
Isso é matemática elementar básica.
Não tenho certeza se você está familiarizado com isso.
Se você quiser se aprofundar nisso, seja meu convidado,
acredito que isso será explicação suficiente.
Então, vamos traduzir essas equações matemáticas em códigos matemáticos.
Então, vou voltar e nosso script aqui no controlador do jogador.
E a primeira coisa que precisamos é das duas referências para a câmera e para as armas são.
Então, vou começar criando um campo serializado,
que será uma transformação.
E isso vai representar que as armas são ótimas.
A segunda variável que vamos criar como uma câmera privada,
e ela será a câmera principal.
E o legal disso é que podemos imediatamente entrar em
Stuart e dizer que a câmera principal é igual à câmera.
Dot principal.
E usando esta câmera, essa principal,
podemos imediatamente obter uma referência à câmera principal que temos.
E aqui, ótimo.
Agora precisamos saber onde nossa boca está no mundo.
Então, vamos rolar para baixo e aqui,
e vou remover esses comentários porque não precisamos mais deles.
Se você acha que precisa deles,
mantenha-os como um lembrete para mais tarde como mudamos e passamos pelo nosso código.
Então agora vou conseguir a posição do mouse.
Vou usar um vetor três.
E vai ser chamado de posição do mouse.
E será igual à posição do mouse de ponto de entrada.
E você pode ver agora que imediatamente a Comunidade Visual Studio
nos dá a posição atual do mouse em coordenadas de pixel.
Tão ótimo, é disso que precisamos.
E, obviamente, já conheço essas coisas.
Se você quiser pesquisar isso,
você precisaria entrar no Google,
como obter a maioria das posições.
Você obteve as documentações para a unidade.
Você teria encontrado essa posição do mouse de ponto de entrada.
Você teria usado isso.
Isso é apenas um atalho.
Vamos continuar. A próxima coisa que precisamos é o ponto de tela.
Então, ponto de tela, e será igual à câmera principal, à câmera
mundial, ponto de mundo a tela.
E você pode ver a definição e aqui está
a posição de transformação do espaço mundial e do espaço da tela.
Lá vamos nós. Isso é o que precisamos.
Transforme a escala local, quero dizer posição local.
E isso nos dará a posição local da transformação,
que é o jogador agora.
E agora é hora de calcular o ângulo.
Vamos antes de tudo, salvar tudo isso.
Vamos seguir em frente e atribuir o braço para o jogador.
Então, vou arrastar o braço das armas agora mesmo.
Vamos salvar isso.
E agora o próximo passo é realmente calcular o ângulo.
Então eu vou antes de tudo,
mostrar-lhe isso novamente para que você possa voltar e olhar para ele se precisar.
E então vou te dar um desafio.
E seu desafio será calcular o ângulo.
Então, a primeira coisa que você faz é que você precisa subtrair
a posição do mouse x da posição do ponto da tela do x.
Obviamente, você precisará fazer o mesmo para o y.
E então você precisará calcular
o ponto F matemática arctangent para descobrir isso na documentação Unity.
Vá em frente, pause o vídeo agora mesmo.
Vá fazer o seu melhor.
Experimente.
Você não perderá nada fazendo o seu melhor.
Pause o vídeo agora mesmo e faça o desafio.
Ei, bem-vindo de volta.
Então, como você pode ver,
acabei de procurar matemática,
arco tangente em Unity.
Agora estou aqui.
O que eu faço? Bem, preciso ver como isso funciona.
O que faz? Ele retorna um flutuador.
É assim que eu uso matlab.org Tange.
Certo, ótimo.
Então vamos voltar aqui.
Então, a primeira coisa que precisamos fazer é calcular a diferença.
Vou colocar os dois em um vetor dois.
Então eu vou usar um vetor para,
vou chamar isso de deslocamento.
Portanto, é o deslocamento entre os dois pontos.
Será igual a um novo vetor dois.
E aqui vou primeiro pegar a posição do mouse ponto x e subtrair dele,
o ponto da tela direciona.
E vou fazer o mesmo sobre o porquê.
Agora vou criar um float porque, como vimos esse método,
o método dot arctan retorna um flutuador,
será igual a matemática F dot arc tan ou não, Eta.
Chama-se bronzeado dois.
E vou usar o ponto offset y dividido pelo offset DRX.
Ótimo, então vou salvar isso.
Mas sempre que queremos atribuir a rotação real às armas são,
não podemos simplesmente fazê-lo usando um flutuador.
O que precisamos fazer é usar um método extra,
que é o método que rad dois graus.
E você pode ver isso converte radianos em graus constantes.
Então, precisaremos fazer isso.
E a última coisa que precisamos fazer é que precisemos acessar as armas na
rotação de pontos e agora nos preparar para um mundo um pouco assustador.
Vamos usar quaternions.
Então quaternion dot Bueller.
E vamos defini-lo como 00 no eixo x.
Não giramos no eixo y, não giramos.
Nós giramos apenas em torno do eixo z usando o ângulo.
Agora, antes de fugir,
o que é Turnitin dot Hulu?
Se você olhar para o anterior aqui,
você pode ver que ele retorna uma rotação que gira Z graus em torno do eixo z,
x em torno do eixo x,
e assim por diante e assim por diante.
Então quaternion dot.
Se você estiver interessado,
você pode se aprofundar nisso.
Eu pessoalmente, tenho girado objetos no Unity
há vários anos e nunca entendi muito bem o que eles
querem dizer com quaternion é apenas uma maneira de converter
do XYZ em uma rotação e espaço reais.
Portanto, sinta-se à vontade para se aprofundar,
ir procurar, certifique-se de entender tudo.
Caso contrário, se você não está incomodado por não entender completamente
o que está acontecendo com o quaternion u dot.
Confie em mim, você pode passar por sua jornada de desenvolvimento de jogos sem se preocupar com isso.
Portanto, esta é simplesmente uma maneira de converter x,
y e z em um ângulo em uma rotação.
Vamos salvar isso.
Voltaremos para a Unity.
E vamos executar o jogo.
E vamos ver o que está acontecendo com a arma agora,
nós movemos para cima, a arma se move para cima.
Nós nos movemos para baixo. A arma se move para baixo.
Se formos para a esquerda, sim.
Nossa arma parece um pouco estranha quando olhamos na outra direção,
mas quando se trata da direção correta, lá vai você.
Nós nos movemos e até nos ajustamos à medida que caminhamos.
Então você pode ver quando nos movemos para cima,
a arma se move para baixo.
Sempre olhando exatamente onde está a posição do mouse.
Tão bom agora temos uma arma que está realmente disparando,
o que é incrível na minha opinião, não atirando,
que será disparando na direção certa mais tarde à medida que avançarmos.
Mas, obviamente, há algo errado quando
tentamos mover o mouse na outra direção,
ele se move corretamente.
Isso é o que vamos corrigir no próximo vídeo enquanto aprendemos
algo muito bom codificação que é chamado de instruções if e condições if.
Então eu te vejo lá.
Mas antes de irmos,
certifique-se sempre de preparar todos os seus arquivos.
Mega commits.
Vou chamar isso fez minha arma apontar na
direção certa ou não invejar o ângulo reto.
Porque no próximo vídeo,
faremos com que ele aponte na direção certa,
faremos todo o jogador apontar e a direção certa.
Então, vejo você então.