Como fazer pulo no Unity - Tutorial

  Рет қаралды 11,583

Programando Games

Programando Games

Күн бұрын

Пікірлер: 70
@kubartm
@kubartm 4 жыл бұрын
Parabéns pelo vídeo. Bem legal sua lógica. Num cenário que uso Rigibody seria possível implementar esse tipo de feature? Obrigado
@ProgramandoGames
@ProgramandoGames 4 жыл бұрын
Muito obrigado Trabuk! A resposta é sim, é possível utilizar a mesma lógica usando rigidbody. No entanto, não é recomendado fazer isso modificando diretamente a velocidade, igual faço no vídeo. Como está descrito na documentação:"In most cases you should not modify the velocity directly, as this can result in unrealistic behaviour". O rigidbody é baseado numa simulação realística de modelos físicos de corpos rígidos, modificando diretamente a velocidade, vc estará "inserindo" um valor no meio da simulação, o que vai interferir nos processos e causar comportamentos inesperados. A solução é modificar diretamente a gravidade da engine de física, Physics.gravity, utilizando o mesmo calculo que faço no vídeo: Physics.gravity = ((-2 * maxHeight) / Mathf.Pow(timeToPeak, 2)) * Vector3.up; // multiplicado pelo Vector3.up pois gravity é um vetor. jumpSpeed = Physics.gravity.y * timeToPeak; Depois, pra alterar a velocidade do objeto, tem que usar a função AddForce, com o modo Force.VelocityChange, pois vc quer modificar a velocidade diretamente: AddForce(-jumpSpeed * Vector3.up, ForceMode.VelocityChange); Fiz uns testes aqui e funcionou perfeitamente, os parâmetros da altura máxima e tempo continuam funcionando como deveriam. Achei legal pois nunca tinha testado com o rigidbody, obrigado pela dúvida, foi bem divertido resolver! :D Qualquer coisa só chamar!
@kubartm
@kubartm 4 жыл бұрын
@@ProgramandoGames Muito Obrigado. Consegui fazer funcionar, valeu mesmo.
@crijogos
@crijogos 3 жыл бұрын
​@@kubartm Olá, onde coloca a parte do: AddForce(-jumpSpeed * Vector3.up, ForceMode.VelocityChange);
@ManoAiron
@ManoAiron 3 жыл бұрын
Rapaiz nunca tinha visto esse Character Controller!
@nicolasfernandodesouza7800
@nicolasfernandodesouza7800 3 жыл бұрын
Eu tmb hehe, só usava o RigidBody...
@xubenka
@xubenka 4 жыл бұрын
ficou muito bom mesmo, eu sempre tive problemas em desenvolver o pulo porque não tinha controle direito da distância máxima e sempre achava ele meio lento quando caia, mas com seu vídeo aprendi como resolver isso, parabéns :-)
@ProgramandoGames
@ProgramandoGames 4 жыл бұрын
Valeu Xubenka! Se tiver sugestões de algo pra implementar, só falar.
@brendosantiago8579
@brendosantiago8579 4 жыл бұрын
Cara parabéns mesmo! Sou iniciante e já estava a uma semana quebrando cabeça com um pulo legal. Ganhou mais um inscrito.
@ProgramandoGames
@ProgramandoGames 4 жыл бұрын
Valeu Brendo! Que bom que consegui te ajudar, logo vai ter mais vídeo assim desse tipo de implementação mais básica. Se tiver qualquer dúvida ou sugestão de vídeo só deixar ai! Obrigado pela força!
@glossantoss
@glossantoss 2 жыл бұрын
Usando a lógica da equação e pondo ela em forma de código ficou bem didático, não entendo muito de C# mas entendi a lógica da programação do pulo, gravidade e tempo aplicada ao código
@ProgramandoGames
@ProgramandoGames 2 жыл бұрын
Essa é a ideia Guilherme! Conseguir entender a lógica independente da linguagem. Dessa forma vc consegur aplicar em qualquer ferramenta. Mto bom!
@ManoAiron
@ManoAiron 3 жыл бұрын
E sobre sempre falarem pra fazer calculos da física da Unity no FixedUpdate?
@Anonimo98734
@Anonimo98734 3 жыл бұрын
isso é valido apenas para rigidbody. nesse caso está usando o character controller, e fazendo coisas para simular a gravidade. e se usasse o fixed, o movimento ia ficar mais travadão.
@ManoAiron
@ManoAiron 3 жыл бұрын
@@Anonimo98734 valeu!
@giovanniprosim
@giovanniprosim 4 жыл бұрын
Explicação muito clara e bem ilustrada com os exemplos e mudanças de parâmetro durante a execução. Foi uma boa ideia dar "voz" ao personagem ficou engraçado. Ótimo vídeo 👏👏👏
@ProgramandoGames
@ProgramandoGames 4 жыл бұрын
Valeu giovanni!
@BeatLevelUp
@BeatLevelUp 4 жыл бұрын
Adorei o Tutorial, Usando a Matemática fica tudo perfeito, o script que eu tinha feito, tava péssimo em relação ao pulo, isso me ajudou bastante...Preciso Urgente melhorar meus conhecimentos em Matemática.
@ProgramandoGames
@ProgramandoGames 4 жыл бұрын
Valeu Matheus! Realmente, a matemática é a linguagem perfeita pra descrever muitas coisas dentro dos jogos. Até me deu uma ideia, talvez eu faça uma série mostrando técnicas de matemática essenciais para programadores de jogos... ; )
@orangotango_santificado_6463
@orangotango_santificado_6463 3 жыл бұрын
me ajuda porque eu to a um tempão tentando ajeitar mas n consigo eu fiz o script direitinho mas quando coloco no unity n consigo mover o player porque isso ta acontecendo
@fuji_0431
@fuji_0431 4 жыл бұрын
Melhor Explicação Ganhou um inscrito e espero mais videos
@ProgramandoGames
@ProgramandoGames 4 жыл бұрын
Valeu Fora da Caixa!
@RenanGimenez13
@RenanGimenez13 4 жыл бұрын
Mano, esse video ta PERFEITO. O melhor tutorial que eu ja vi de movimentação 2D na unity. Parabéns irmão
@Anacromidia
@Anacromidia Жыл бұрын
obrigadoo, que video foda
@portariaminiclip4128
@portariaminiclip4128 Жыл бұрын
Excelente video
@Miguel-p6k5e
@Miguel-p6k5e 5 күн бұрын
Opa mn tudo bom? Eu fiz aqui mas ele não está tendo colisão com o chão esse é o meu código using System.Collections; using System.Collections.Generic; using UnityEngine; public class Player_Move : MonoBehaviour { CharacterController controller; Vector2 xVel; Vector2 finalVelJump; Vector2 yVel; // variaveis de pulo float xspeed; float maxHeight = 2f; float jumpSpeed; float timeTopeak = 1f; //Gravity float gravity; void Start() { controller = GetComponent(); gravity = 2 * maxHeight / Mathf.Pow(timeTopeak, 2); jumpSpeed = gravity * timeTopeak; } // Update is called once per frame void Update() { float xInput = Input.GetAxis("xInput"); xVel = xspeed * xInput * Vector2.right; yVel += gravity * Time.deltaTime * Vector2.down; if(controller.isGrounded) { yVel = Vector2.down; } if(controller.isGrounded && Input.GetKeyDown(KeyCode.Space)) { yVel = jumpSpeed * Vector2.up; } finalVelJump = xVel + yVel; controller.Move(finalVelJump * Time.deltaTime); } } acho que fiz a mesma coisa que está no video, mas se eu deixar algo passar eu realmente não estou vendo.
@raphaelgibson6555
@raphaelgibson6555 3 жыл бұрын
Que vídeo maravilhoso, cara! Muito obrigado por compartilhar seu conhecimento!!
@rodrigoc3871
@rodrigoc3871 2 жыл бұрын
Muito da hora a aula, eu gostaria de fazer um pulo variável com Jump Buffering. Acho que seria top se você fizesse uma aula ensinando.
@Mr.Rafael2005
@Mr.Rafael2005 8 ай бұрын
O video é meio antigo, mas ainda ssim vou perguntar, pq usar o character controller e não o rigidbody? Algum tem alguma vantagem sobre o outro ou é questão de escolha?
@nightx_6399
@nightx_6399 4 жыл бұрын
Aula incrível 😃
@ProgramandoGames
@ProgramandoGames 4 жыл бұрын
Valeu nightX! 😁
@Lulpe
@Lulpe 3 жыл бұрын
Muito bom o video, mas tem como fazer para quando o personagem colodir com um objeto acima dele ao inves de ele continuar indo pra cima ate o tempo acabar, ele descer assim que colidir com o objeto acima
@ProgramandoGames
@ProgramandoGames 3 жыл бұрын
Valeu Luiz! Tem sim, nesse meu outro vídeo aqui, eu explico como fazer isso. Como eu uso o character controller nos dois, a técnica é a mesma, basta replicar. Segue o momento em que eu explico: kzbin.info/www/bejne/lYe4oXl8i62NjLM
@Lulpe
@Lulpe 3 жыл бұрын
@@ProgramandoGames Muito obrigado pela resposta,agora sim poderei continuar meu projeto :)
@majork2009
@majork2009 Жыл бұрын
eu fiz igual a o video e n foi alguem sabe se teve alguma mudança na unity? queria uma ajuda
@ProgramandoGames
@ProgramandoGames Жыл бұрын
fala major, o que acontece com o seu?
@majork2009
@majork2009 Жыл бұрын
@@ProgramandoGames oi oi e que o código pra velocidade y n estava funcionando no caso Vector.down Cabei usando yvelocity.y -= gravidade × time deltatime
@eduardothadeu4959
@eduardothadeu4959 4 жыл бұрын
Alguem sabe resolver o meu problema? aq ele n reconhece o Vector2 n sei se perdi alguma parte mas ele n muda a cor ele fica em branco como se fosse qualquer
@ProgramandoGames
@ProgramandoGames 4 жыл бұрын
Fala Eduardo, tudo bem? Isso é um bug do visual studio, que não consegue detectar o Unity, vi que tem acontecido com algumas pessoas e a solução pra resolver isso é meio desconhecida ainda. Isso também pode acontecer se vc colocou acento ou caracteres especiais no nome do seu projeto Unity. Verifique se é isso. Qualquer coisa só falar, desculpe a demora em responder, as vezes me perco nos comentários e acabo deixando um ou outro passar.
@eduardothadeu4959
@eduardothadeu4959 4 жыл бұрын
@@ProgramandoGames de boa kkkkk eu fui tentar dps e foi mt obg pelo tutorial e pelo suporte
@davidffortesmeireles5328
@davidffortesmeireles5328 3 жыл бұрын
pq vc nao coloca xdirection e ydirection ?acho que fica mais facil de entender assim
@ProgramandoGames
@ProgramandoGames 3 жыл бұрын
Olá david, tudo certo? De quais variáveis vc está falando?
@davidffortesmeireles5328
@davidffortesmeireles5328 3 жыл бұрын
@@ProgramandoGames das vector2 xvelocity e yvelocity
@SoGabrielMesmo
@SoGabrielMesmo 3 жыл бұрын
alguém me da uma força, eu fiz o codigo todo certo e ele está "funcionando", tanto que o visual code nem o unity reconhecem erro nenhum, mas não acontece nada quando eu aperto nos botões, que era pra reconhecer como "a" ou "d", nada acontece
@brendosantiago8579
@brendosantiago8579 4 жыл бұрын
Cara estou com uma duvida, como faço para o Character Controller colidir com um tillemap? Só consegui fazer ele colidir com o SPRITE igual tu criou aí, mas quando tento no TILEMAP ele não colide.
@ProgramandoGames
@ProgramandoGames 4 жыл бұрын
Obrigado pela pergunta Brendo! Verifique se o boxcollider que ta no tile é 2D, se for, pode ser isso, pq o character controller usa uma capsule, que é 3D, entao eles nunca vao colidir pq falta a dimensão z no collider do tile. Caso seja uma boxcollider2d mesmo, trocando pela boxcollider deve resolver : ) depois me diz se funcionou!
@RenanGimenez13
@RenanGimenez13 4 жыл бұрын
Como faz pulo duplo?
@Milgatte
@Milgatte 4 жыл бұрын
faz um tutorial de como fazer um movimento tipo de uma flecha jogada pra cima e batendo bem onde foi calculada sabe
@ProgramandoGames
@ProgramandoGames 4 жыл бұрын
Bem legal essa ideia Megatte! Com certeza farei um vídeo sobre isso. Valeu pela força!
@StevonFerreira
@StevonFerreira 9 ай бұрын
porque você não coloca o script na descrição?
@fuji_0431
@fuji_0431 4 жыл бұрын
Tem como ensinar a fazer uma camera de 3 pessoa como Word War Z ?????
@ProgramandoGames
@ProgramandoGames 4 жыл бұрын
Estou montando uma lista de tutorias pra fazer e esse tá no meio ; ) Só aguardar que logo sai!
@fuji_0431
@fuji_0431 4 жыл бұрын
@@ProgramandoGames Vlw
@kilpkgames9770
@kilpkgames9770 3 жыл бұрын
Melhor tutorial do assunto....
@fuji_0431
@fuji_0431 3 жыл бұрын
Mano, o meu pulo não ta funcionando, poderia dar uma olhada no codigo Vector2 endvelocity; Vector2 X_velocity; public float speedMax; public float speed; Vector2 direction = Vector2.zero; Vector2 current; Vector2 Y_velocity; // jumo variable public float maxHeight = 5f; public float gravity; public float speedjump; public float timemax = 4f; void Start() { gravity = (2 * maxHeight) / Mathf.Pow(timemax , 2); speedjump = gravity * timemax; } void Update() { move(); jump(); } public void move() { float Movex = (Input.GetAxis("Horizontal")); direction = new Vector2(Movex, 0).normalized; X_velocity = Vector2.SmoothDamp(X_velocity, direction * speedMax, ref current, speedMax / speed); transform.position += (Vector3)X_velocity * Time.deltaTime; } public void jump() { Y_velocity += gravity * Time.deltaTime * Vector2.down; if (Input.GetButtonDown("Jump")) { Y_velocity = speedjump * Vector2.up; } }
@aguiarlucas455
@aguiarlucas455 3 жыл бұрын
pq minhas palavras nao ficam coloridas que nem as suas?
@dafferman
@dafferman 4 жыл бұрын
Vc poderia fazer um tutorial de como colocar esse rastro? Ele ficou muito bom cara!
@mrztikki
@mrztikki 3 жыл бұрын
o meu nao roda nao nao reconhece o script
@relativistico3794
@relativistico3794 4 жыл бұрын
Você usou cálculos de física 🙀 amei
@ProgramandoGames
@ProgramandoGames 4 жыл бұрын
Física é vida 😁
@beatrizmagri9484
@beatrizmagri9484 4 жыл бұрын
em um notebook d 2009 da pra fazer ? ano q vem eu compro outro vídeo muito bom mesmo parabéns
@ProgramandoGames
@ProgramandoGames 4 жыл бұрын
Olá Beatriz! Nessa página vc consegue baixar todas as versões anteriores do Unity: unity3d.com/pt/get-unity/download/archive Tenta ir comparando as versões com os requisitos do seu notebook, quando encontrar alguma próxima instala e vê se roda :D Caso dê algum problema de compatibilidade com o tutorial, só me avisar que eu te ajudo. Até o/
@joshd4290
@joshd4290 4 жыл бұрын
estou tendo um problema, após eu criar o if (controller.isGrounded) o personagem não consegue mais pular, ele só sobe bem pouco e volta pro chão, provavelmente a resposta é bem besta, mas eu to a quase 2h procurando a resposta e não achei, por favor me ajude
@fuji_0431
@fuji_0431 3 жыл бұрын
O meu nem sai do chão kkkkk to a 3 dias tentando arrumar isso
@dafferman
@dafferman 4 жыл бұрын
Bom demais
@ProgramandoGames
@ProgramandoGames 4 жыл бұрын
Valeu Dafferman! :D
@RenanGimenez13
@RenanGimenez13 4 жыл бұрын
A colisão só funciona se o colisão do chão for 3D?
@vanboorish8065
@vanboorish8065 3 жыл бұрын
valeuu
@matacalangamineiro9271
@matacalangamineiro9271 3 жыл бұрын
só faltou disponibilizar o código
@pebadiario
@pebadiario 2 жыл бұрын
Amigo, não estou criticando o seu trabalho, mas porque você não faz a movimentação simplesmente Criando uma variável do tipo float para definir a velocidade, e usa o if Input.getkey e coloca como criterio um transform.translate?
MOVIMENTAÇÃO E PULO NA UNITY EM 2D | CRIE SEUS JOGOS
21:39
Crie Seus Jogos
Рет қаралды 72 М.
Movimento e Câmera em primeira pessoa no Unity - Tutorial
11:01
Programando Games
Рет қаралды 33 М.
To Brawl AND BEYOND!
00:51
Brawl Stars
Рет қаралды 17 МЛН
REAL or FAKE? #beatbox #tiktok
01:03
BeatboxJCOP
Рет қаралды 18 МЛН
Каха и дочка
00:28
К-Media
Рет қаралды 3,4 МЛН
Dear Game Developers, Stop Messing This Up!
22:19
Jonas Tyroller
Рет қаралды 761 М.
CRIANDO TERRENOS NA UNITY COMO VOCÊ NUNCA VIU
14:21
Desenvolvedor Unity
Рет қаралды 75 М.
I Made the Same Game in 8 Engines
12:34
Emeral
Рет қаралды 4,3 МЛН
A new way to generate worlds (stitched WFC)
10:51
Watt
Рет қаралды 548 М.
Aprenda Programação C# para Jogos na Unity
20:39
Desenvolvedor Unity
Рет қаралды 50 М.
Como criar sistema de diálogo no Unity - Tutorial
19:13
Programando Games
Рет қаралды 4,2 М.
How do non-euclidean games work? | Bitwise
14:19
DigiDigger
Рет қаралды 2,5 МЛН
5 tipos de MOVIMENTAÇÃO 2D na UNITY
21:33
Sharpax
Рет қаралды 19 М.
Much bigger simulation, AIs learn Phalanx
29:13
Pezzza's Work
Рет қаралды 2,8 МЛН
To Brawl AND BEYOND!
00:51
Brawl Stars
Рет қаралды 17 МЛН