18:48 "Como o personagem é mais pesado q a plataforma então ele cai primeiro" Galileu se contorceu no tumulo após isso. Kakakak. Vlw cara, esses videos estão me ensinando bastante
@@edilsonbispo8271 vc n entendeu cara. esse mundinho q ele criou é especial e a gravidade age diferente em cada objeto. no exemplo, 4 vezes mais gravidade no player do que na plataforma :V
Para quem está com problemas na parte das plataformas não cairem, isso é facil de resolver, verifique se o Player (bonequinho) está com a tag Player (fica no lado do layer), eu fiquei um tempo batendo cabeça até ver que esqueci de colocar kkkk (é por conta que o projeto crasho e perdi algumas alterações).
Primeiramente quero agradecer a você pelo curso de introdução incrível, estou adorando aprender, o que facilita é o conhecimento de programação que já tenho, em poucas aulas você entende a mecânica da ferramenta facilmente, lembra muito mexer com GUI, você apenas cria as instâncias dos elementos e manipula seus atributos dentro do script de forma que o mesmo fique interativo. A forma como utilizaram a POO pra tornar a utilização mais fácil chega a ser uma obra de arte da programação. Valeu e sucesso pra vc!
Para quem está com dificuldade no GameOver, no meu caso a Box não dava Destroy na plataforma, mas ai é só deixar assim com o "private" antes de "void": private void OnTriggerEnter2D(Collider2D collider) { if (collider.gameObject.layer == 9) { Destroy(gameObject); } }
gente na hora de colocar o script na plataforma dizia que dava erro, então eu mudei o nome do script da FallingPlatform que tava com F e P maiusculo e deixei minusculo, ai deu certo
Ola , já fiz tudo passo a passo mas mesmo assim as minhas plataformas não estão a ser destruídas quando atingem o game over, alguém sabe como resolver??? Obrigado
cara vc é muito bom, to acompanhando seus videos e eu tenho só uma dúvida. Quando pulo com o personagem e ele encosta numa parede ou em qualquer lugar durante o pulo ele meio que fica flutuando, oq pode ser?
Muito bom o conteúdo, sempre interessante! Então, estou seguindo o passo a passo e fiquei presa na plataforma. O player atravessava ela direto ou ela simplesmente caia sozinha. Depois de reescrever o script algumas vezes, resolvi deletar a plataforma e fazer outra. Só que ao invés de criar um objeto vazio e arrastar a plataforma pra lá, eu simplesmente arrastei a plataforma para dentro do jogo. Depois disso, segui todos os passos seguintes e agora funciona direitinho. Não sei se seria o caminho certo, mas para mim, funcionou.
Pensei numa forma de organizar as fases melhor na hora de desenvolver elas. Você pode criar o jogo e suas funcionalidades num lvl_0 pra poder fazer todos os testes logo de cara, e depois você cria um novo level base, e duplica ela várias vezes pra não ter que ficar duplicando uma fase que já tem coisas e ter que ficar apagando tudo. Talvez tenha algum jeito melhor, mas foi o que consegui pensar até agora.
@@CrieSeusJogos mas quando eu ponho a câmera dentro do player, a tela para de mostrar a cena (fica azul), então eu pus o Z do player = -1 e daí voltou a aparecer a cena mas daí era o próprio player q não aparecia...
Olá! Estou assistindo a série para deixar minhas aulas de Fisica para o curso de Jogos mais dinâmica. Embora não esteja entendo quase nada na parte dos scripts, tuas aulas são excelentes . Neste vídeo 09 é dito que o player caiu mais rápido por ser mais pesado, contudo na Física a queda independe do peso. Como posso contornar a situação nas aulas? O que seria esse "peso" na programação? [edit: agora já entendo um pouco mais e realmente não é o peso e sim a aceleração imposta devido ao valor da gravidade, que inclusive é a primeira coisa que mudo deixando 10m/s2 para facilitar os cálculos]
Seria a escala da gravidade, Alexandre. Quanto maior, mais força você deve impor na programação para mover ou arremessar determinado objeto. A escala da gravidade é alterada no Rigidbody2D, na opção "Gravity Scale" que por padrão tem o valor de 1. Esse valor de 1 é a gravidade padrão da engine, que impõe uma força de -9.81f no eixo Y "empurrando" o corpo para baixo. Quando você aumenta o gravity scale, está alterando esse valor padrão porém só para o objeto em questão.
@@CrieSeusJogos entendi. Seria então um mundo onde o valor da aceleração gravitacional pose ser sentida diferente para cada objeto. Muito grato. Continuarei estudando para tornar as aulas de Física mais interessantes para os alunos do curso de Jogos digitais.
Gente, o meu player fica grudando nas paredes, eu pesquisei e tentei por um physics material 2d com 0 friction, tentei por no rigidbody do player, no box collider do player e no collider do ground mas nada funciona. O que eu faço?
Wenes quando eu fui salvar a cena para depois renomear para LV_1, ela sumiu, a questao das maçãs, tipo, parecia que eu nao tinha feito a questão de colocar as maçãs no cenario e tb sumiu o contador de pontos, ai to tentado recolocar as maçãs na nova cena usando os prefabs so que elas nao esta tendo colisão, o personagem passa por traz dela, e ela nao somi. Poderia disponibilizar para downlod essa parte ai pronta, pq nao sei se vai dar certo voltar de onde ta. E sim quando vc falou para salvar o projeto eu salvei, so que aparentemente o unity não reconheceu que salvou. Por facor me ajuda ai, queria poder continuar a ver essa serie sua !!!!!!
para testes coloca o objeto da câmera dentro do jogador mas já que isso é mt bugado, pesquisa sobre cinemachine é uma câmera configuravel que é da propria unity
Fala Devs! Meu personagem fica grudando na parede, verifiquei os colisores e estão corretos. Alguém tem alguma dica para a resolução deste caso? Agradecido!
@Crie Seus Jogos existe um problema (ainda não fui pra outras aulas, não sei se resolverá) que quando você bate com o player embaixo da plataforma, ela cai também. Tem como fazer pra ela cair apenas quando você pisa nela?
Assim como mostra o vídeo que o anderGames te mandou, você tem que colocar um componente na plataforma chamado "Platform Effector 2D". Porem, ele ainda vai cair quando você pular e o player não colidir, isto porque o collider da plataforma, que está como "is Trigger", ainda está checando a colisão, então o método Falling ainda assim será chamado no script, pra resolver isso, na sua função OnCollisionEnter2D da plataforma, no if (collision.gameObject.tag == "Player"), você vai colocar um && (e), para cumprir outra condicional, e que condicional será essa? Simples, a plataforma só vai cair se o Y do player for maior que o Y da plataforma, para pegar o Y dos dois eu declarei estas variáveis: public Vector3 platformPosition; private Vector3 playerPosition; void Start() { platformPosition = GetComponent().position; playerPosition = GameObject.FindObjectOfType().transform.position; } e então minha função do OnCollisionEnter2D ficou assim: if (collision.gameObject.tag == "Player" && playerPosition.y - 0.4 > platformPosition.y) { Invoke("Falling", fallingTime); } Obs: Eu subtrai 0.4 do playerPosition.y para ajustar a posição do y mais ou menos no seu pé
O que eu faço com esse erro estou desesperado demorei 8 horas para fazer tudo Unknown error occurred while loading 'Assets/Pixel Adventure 1/Assets/Animations/Player 1.controller'. UnityEditorInternal.InternalEditorUtility:LoadSerializedFileAndForget(String) UnityEditor.WindowLayout:LoadDefaultWindowPreferences Vou ter que fazer tudo de novo????
Peço ajuda, será que está faltando algo? Apareceu pra mim a seguinte mensagem: Trying to Invoke method: FallingPlatform.Falling couldn't be called. O que esta acontecendo?
Mestre Wenes, primeiramente gostaria de agradecer por essa série excelente de videos! Sua didatica é muito boa. Estou ao mesmo tempo assistindo a sua série de C# e aprendendo muito. Segundamente, eu tenho uma grande duvida. Eu criei uma plataforma flutuante 100% funcional exatamente da forma q vc ensinou no video, mas eu notei que se o Player der uma "cabeçada" nessa plataforma (atingindo o colisor de baixo para cima), ele vai executar o script e a plataforma vai cair da mesma forma. Eu gostaria de ativar o "Falling" somente se o Player encostar na parte de cima da plataforma! Existe alguma maneira de "matar" as arestas laterais e inferior do BoxCollider2D e deixar só a superior, ou existe outro modo mais eficaz?
use o componente PlataformEffector2D com isso vc determina qual a região efetiva do Collider, inclusive vai permitir que vc passe por dentro da plataforma de baixo para cima. ou seja só vai funcionar se vc tocar de cima para baixo. espero ter ajudado
Eu tenho uma dúvida, por exemplo se eu quiser fazer um jogo de plataforma onde em cada fase eu jogo com um boneco diferente eu preciso refazer a movimentação do player ou apenas posso copiar e colar o Script em outro modelo?
A minha plataforma nao cai dps de 2 segundos que eu coloquei, e tbm quando eu encosto na plataforma da um um erro. Obs consegui coloquei o i do "invoker" para maiusculo
@@욤애퍄 calma galera, o meu rolou isso ee u fiquei em desespero, mas depois vi que a cena que o meu jogo tava não era aquele lv1 e sim uma cena que tava fora da pata, procurem onde vcs estão salvando o arquivo salvo de vcs
Hey mano, minha plataforma n está caindo. Tem como me ajudar? Código: using System.Collections; using System.Collections.Generic; using UnityEngine; public class FallingPlataform : MonoBehaviour { public float fallingTime; private TargetJoint2D target; private BoxCollider2D boxColl; // Start is called before the first frame update void Start() { target = GetComponent(); boxColl = GetComponent(); } void OnCollisorEnter2D(Collision2D collision) { if(collision.gameObject.tag == "Player") { Invoke("Falling", fallingTime); } } void Falling() { target.enabled = false; boxColl.isTrigger = true; } }
eu nao consigo adcionar o script as plataformas aparece esse erro Não é possível adicionar o script component 'Falling plataforms' porque a classe de script não pode ser encontrada. Certificar-se de que que não há erros de compilação e que o nome do arquivo e o nome da classe correspondem., alguem poderia me ajudar?
The type or namespace name 'TargetJoin2D' could not be found (are you missing a using directive or an assembly reference?) que erro é essa? Alguém pode ajudar?
Minha plataforma esta caindo no mesmo instante que pulo em cima dela. Alguém pode me ajudar?? Ela está com 4 segundos, já tentei com mais tempo porem não mudou nada.
Alguém saberia me dizer por que aparece essa mensagem de erro no console "'Player' AnimationEvent has no function name specified!".... Já verifiquei os scripts e as animações. Normalmente o jogo roda mas tem vezes que ele dá erro e não roda e é sempre essa mensagem que aparece no console, estando o jogo rodando ou não.
Pra quem está com problema no boxColl, o console diz q nao achou, é só mudar a letra C para minuscula, ficando boxcoll! Resolveu meu problema, espero ter ajudado alguém tbm!
por algum motivo meu istrigger tava dando um bug visual q a plataforma n estava caindo wtf. apaguei o código q tava usando o istrigger e funfou tudo certinho mas ainda tem colisão com a plataforma bem pra mim fico ok
se o codigo de vcs n funcionou tentem o meu, eu dei uma alterada e funcionou direitinho. using System.Collections; using System.Collections.Generic; using UnityEngine; public class plataforma : MonoBehaviour { public float FallingTime; private TargetJoint2D target;
// Start is called before the first frame update void Start() { target = GetComponent();
O meu nao funcionou, ele continua so atravassando, errei em alguma coisa ? using System.Collections; using System.Collections.Generic; using UnityEngine; public class FallingPlataform : MonoBehaviour { // essa e a variavel que vai contar o tempo, para a plataforma cair public float fallingTime; //essa e a variavel, que serve para desativar o trigger, da plataforma, fazendo ela atravessar a parede e sumir // que pode ser visivel, desativando manualmente private BoxCollider2D boxColl; // essa variavel, e para fazer a ação de cair, a desativando. que tbm pode ser feito manualmente. private TargetJoint2D target; void Start() { // esta ganhando todas as funçoes de targerjoint target = GetComponent(); // esta recebendo todas as funçoes de BoxCollider2D boxColl = GetComponent();
}
// permite detectar toda vez que o objeto tocar em alguma coisa void OnCollisionEnter2D(Collision2D collision) { // se colidir com algum objeto que tenha o nome Player if(collision.gameObject.tag == "Player") { // chama o metodo, após o tempo, da variavel se percorrer Invoke ("Falling", fallingTime); }
} //se o objeto collidir com um triger, void OnTriggerEnter2D(Collider2D collider) { if(collider.gameObject.layer == 9) { // destroi o objeto Destroy(gameObject); }
} void Falling() { // desativa a força que mantem o objeto no ar target.enabled = false; // ativa a transparencia para sair do cenario boxColl.isTrigger = true; } }
O meu deu o msm problema, e fui olhar o script, e tava assim "Invoke("Falling", fallingTime);" e o o void tava ''falling" ou seja, o F no minusculo era o problema, como o falling do invoke era maiusculo ele não estava achando
mano, tem uma serie de bugs q acontecem. tipo quando caio da plataforma, as vezes ele n pula, as vezes ele afunda, as vezes ele sai pra fora do cenario kk.
@@alexnogueira2662 acho que pelo menos tem que ter o conhecimento básico talvez. Na unity você tem o "Mathf" que você pode mexer com raiz quadrada, com o PI também, entende.
@@nikomu7256 também, se for usar o Navigation na Unity, cê vê umas parada de raio da circunferência algumas coisas assim que cês aprende pro 9° ano, 1° e em diante.
precisa de muita matematica pra programação de jogos, mas como a unity ja tem uns negocios pra facilitar fica mais simples se vc fosse fazer um jogo do zero sem nenhuma game engine precisaria de muita mais matematica e programação
error CS1061: 'TargetJoint2D' does not contain a definition for 'enable' and no accessible extension method 'enable' accepting a first argument of type 'TargetJoint2D' could be found (are you missing a using directive or an assembly reference?) Fica dando esse erro alguém consegue me ajudar? script: using System.Collections; using System.Collections.Generic; using UnityEngine; public class fallingplatform : MonoBehaviour { public float fallingTime; private TargetJoint2D target; private BoxCollider2D boxColl; // Start is called before the first frame update void Start() { target = GetComponent(); boxColl = GetComponent(); } void OnCollisionEnter2D(Collision2D collision) { if(collision.gameObject.tag == "Player") { Invoke("Falling", fallingTime); } } void OnTriggerEnter2D(Collider2D collider) { if(collider.gameObject.layer == 9) { Destroy(gameObject); } } void Falling() { target.enable = false; boxColl.isTrigger = true; } }
quando eu encosto na plataforma ela cai intantaneamente, ja coloquei 10 seg e nada, algm sabe resolver? edit: consegui resolver galera, ao inves de editar o tempo da plataforma da pasta prefabs, era so editar a plat que ta na hierarquia
Eu conferi o código caractere por caractere , ainda assim sem sucesso em derrubar a plataforma, também exclui e refiz a plataforma pra ver se não era nada que eu havia cagado, mesmo assim sem sucesso, estou deixando o código aqui por desencargo de consciência mas se alguém tiver alguma ideia do que pode ser o problema agradeço< using System.Collections; using System.Collections.Generic; using UnityEngine; public class FallingPlatform : MonoBehaviour { public float fallingTime; private TargetJoint2D target; private BoxCollider2D boxColl; // Start is called before the first frame update void Start() { target = GetComponent(); boxColl = GetComponent(); } void OncollisionEnter2D(Collision2D collision) { if (collision.gameObject.tag == "Player") { Invoke("Falling", fallingTime); } } void Falling() { target.enabled = false; boxColl.isTrigger = true; } }
@@Iara-exe Infelizmente não, eu consigo chamar por outros métodos como pro exemplo colocando um trigger externo mas como meu objetivo é de fato aprender a usar os comandos quero encontrar o erro, quando e (se) eu descobrir falo aqui. Complementando, depois de testar um monte de coisa confirmei que o problema é que o método não está sendo chamado e que o problema é que a condição da colisão não está sendo atendida mas não sei como resolver ainda.
@@lmilani7608 Pelo incrível q pareça eu consegui aqui, meu erro foi colocar player com P minúsculo, mas esse n foi seu caso, talvez seja outra letra em minúsculo ou maiúsculo
No meu deu tudo certo, porém a plataforma ainda continua passando direto pelo Boxcollider, alguém sabe onde errei? using System.Collections; using System.Collections.Generic; using UnityEngine; public class Fallenplatform : MonoBehaviour { public float fallingTime; private TargetJoint2D target; private BoxCollider2D boxColl; // Start is called before the first frame update void Start() { target = GetComponent(); boxColl = GetComponent(); } void OnCollisionEnter2D(Collision2D collision) { if(collision.gameObject.tag == "Player") { Invoke("Falling", fallingTime); }
using System.Collections; using System.Collections.Generic; using UnityEngine; public class plataforma : MonoBehaviour { public float FallingTime; private TargetJoint2D target;
// Start is called before the first frame update void Start() { target = GetComponent();
@@joaodavi7717 seu código me ajudou com minha plataforma que não caia e como eu estava fazendo exatamente como no vídeo o meu script não estava invokando falling, acho zuado como os códigos do cara do vídeo não funcionam perfeitamente sem modificações.
if(collider.gameObject.layer == 9") Essas aspas depois do 9, retira elas Quando vc está comparando com um texto aí usa-se "", mas quando é um número inteiro aí usa sem mesmo
A minha plataforma nao esta caindo podem me ajudar o meu codigo e esse?? codigo using System.Collections; using System.Collections.Generic; using UnityEngine; public class FallingPlataform : MonoBehaviour { public float fallingTime; private TargetJoint2D target; private BoxCollider2D boxColl; // Start is called before the first frame update void Start() { target = GetComponent(); boxColl = GetComponent(); } void OnCollisionEnter2D(Collision2D collision) { if(collision.gameObject.tag == "player") { Invoke("Falling", fallingTime); } } void Falling() { target.enabled = false; boxColl.isTrigger = true; } }
a minha plataforma não está desaparecendo, alguem pode me ajudar, por favor? aqui está o código: public class FallenPlatfroms : MonoBehaviour { public float fallingTime; private TargetJoint2D target; private BoxCollider2D boxColl;
// Start is called before the first frame update void Start() { target = GetComponent(); boxColl = GetComponent(); } void OnCollisionEnter2D(Collision2D collision) { if (collision.gameObject.CompareTag("Player")) { Invoke("Falling", fallingTime); } } void OnTriggerEnter2D(Collider2D collider) { if(collider.gameObject.layer == 9) { Destroy(gameObject); } } void Falling() { target.enabled = false; boxColl.isTrigger = true; } }
using System.Collections; using System.Collections.Generic; using UnityEngine; public class FallingPlataform : MonoBehaviour { public float fallingTime; private TargetJoint2D target; private BoxCollider2D boxColl; // Start is called before the first frame update void Start() { target = GetComponent(); boxColl = GetComponent(); } void OnCollisionEnter2D(Collision2D collision) { if (collision.gameObject.tag == "Player") { Invoke("Falling", fallingTime); } } void Falling() { target.enabled = false; boxColl.isTrigger = true; } } esse é o meu código minha plataforma não está caindo alguém me ajuda.
Creio que não foi apenas eu que tive problemas, então consegui essa solução: void OnCollisionEnter2D(Collision2D collision) { if(collision.gameObject.tag == "Player") { Debug.Log("Colidiu"); StartCoroutine(FallingCoroutine()); } IEnumerator FallingCoroutine() { yield return new WaitForSeconds(fallingTime); Falling(); } void Falling() { target.enabled = false; boxColl.isTrigger = true; } } }
18:48
"Como o personagem é mais pesado q a plataforma então ele cai primeiro"
Galileu se contorceu no tumulo após isso. Kakakak.
Vlw cara, esses videos estão me ensinando bastante
Einstein: >:(
@@edilsonbispo8271 vc n entendeu cara. esse mundinho q ele criou é especial e a gravidade age diferente em cada objeto. no exemplo, 4 vezes mais gravidade no player do que na plataforma :V
@@joandersonoliveira6802 eu sei por isso Einstein está bravo
Ele só aumentou a gravidade. Como fazem em Dragon ball z
Para quem está com problemas na parte das plataformas não cairem, isso é facil de resolver, verifique se o Player (bonequinho) está com a tag Player (fica no lado do layer), eu fiquei um tempo batendo cabeça até ver que esqueci de colocar kkkk (é por conta que o projeto crasho e perdi algumas alterações).
Primeiramente quero agradecer a você pelo curso de introdução incrível, estou adorando aprender, o que facilita é o conhecimento de programação que já tenho, em poucas aulas você entende a mecânica da ferramenta facilmente, lembra muito mexer com GUI, você apenas cria as instâncias dos elementos e manipula seus atributos dentro do script de forma que o mesmo fique interativo. A forma como utilizaram a POO pra tornar a utilização mais fácil chega a ser uma obra de arte da programação. Valeu e sucesso pra vc!
As melhores aulas de game de toda a internet. Estou amando!
Mermão vc é um deus liberou o projeto todo comentado ainda
QUE AULA FODA!!!!!
Nem imagino como vai ser a Aula 18... VAMBORA!!!
Para quem está com dificuldade no GameOver, no meu caso a Box não dava Destroy na plataforma, mas ai é só deixar
assim com o "private" antes de "void":
private void OnTriggerEnter2D(Collider2D collider)
{
if (collider.gameObject.layer == 9)
{
Destroy(gameObject);
}
}
nossa vlw msm
muito obrigado procurei em todos os comentarios até descer aqui e achar kkkkk,muito obrigado mesmo
10 meses depois e ainda ajudou alguem... tank you, my friend
me ajudou kkkkk, obrigado
gente na hora de colocar o script na plataforma dizia que dava erro, então eu mudei o nome do script da FallingPlatform que tava com F e P maiusculo e deixei minusculo, ai deu certo
Fico imaginando como que os caras criaram o game do mario naquela época onde não tinha programas como Unity. Os caras eram verdadeiros gênios.
Muito boa e de fácil entendimento. Obrigado!
Incrivel me ensino muinto musmo ate eu que numca usei a Unit
Ola , já fiz tudo passo a passo mas mesmo assim as minhas plataformas não estão a ser destruídas quando atingem o game over, alguém sabe como resolver???
Obrigado
cara vc é muito bom, to acompanhando seus videos e eu tenho só uma dúvida. Quando pulo com o personagem e ele encosta numa parede ou em qualquer lugar durante o pulo ele meio que fica flutuando, oq pode ser?
Estou com o mesmo problema
@@LincolnLuiz No ultimo episodio desta série ele corrige esse bug
Quais são as extensões que você usa no Visual Studio Code para o Unity?
Muito bom o conteúdo, sempre interessante! Então, estou seguindo o passo a passo e fiquei presa na plataforma. O player atravessava ela direto ou ela simplesmente caia sozinha. Depois de reescrever o script algumas vezes, resolvi deletar a plataforma e fazer outra. Só que ao invés de criar um objeto vazio e arrastar a plataforma pra lá, eu simplesmente arrastei a plataforma para dentro do jogo. Depois disso, segui todos os passos seguintes e agora funciona direitinho. Não sei se seria o caminho certo, mas para mim, funcionou.
@Rafa._. msm coisa a parte do collected n funfa
kkk eu não sabia desses joints kkk muito interesante
Trem bão 🎉
Pensei numa forma de organizar as fases melhor na hora de desenvolver elas.
Você pode criar o jogo e suas funcionalidades num lvl_0 pra poder fazer todos os testes logo de cara, e depois você cria um novo level base, e duplica ela várias vezes pra não ter que ficar duplicando uma fase que já tem coisas e ter que ficar apagando tudo.
Talvez tenha algum jeito melhor, mas foi o que consegui pensar até agora.
ideia ótima!
poderia ensinar como fazer a camera seguir o player
Uma forma simples e funcional consiste em apenas colocar a câmera dentro do objeto do player
@@CrieSeusJogos mas quando eu ponho a câmera dentro do player, a tela para de mostrar a cena (fica azul), então eu pus o Z do player = -1 e daí voltou a aparecer a cena mas daí era o próprio player q não aparecia...
@Erick Azevedo coloca verdadeiro no eixo Freeze rotation Z no seu Ridigbory do player
@Erick Azevedo ñ entendi sua pergunta
@@rafahoyos4247 você precisa alterar o eixo Z, pode ser tanto por código quanto só freeze pelo inspector.
Olá! Estou assistindo a série para deixar minhas aulas de Fisica para o curso de Jogos mais dinâmica.
Embora não esteja entendo quase nada na parte dos scripts, tuas aulas são excelentes .
Neste vídeo 09 é dito que o player caiu mais rápido por ser mais pesado, contudo na Física a queda independe do peso. Como posso contornar a situação nas aulas? O que seria esse "peso" na programação?
[edit: agora já entendo um pouco mais e realmente não é o peso e sim a aceleração imposta devido ao valor da gravidade, que inclusive é a primeira coisa que mudo deixando 10m/s2 para facilitar os cálculos]
Seria a escala da gravidade, Alexandre. Quanto maior, mais força você deve impor na programação para mover ou arremessar determinado objeto.
A escala da gravidade é alterada no Rigidbody2D, na opção "Gravity Scale" que por padrão tem o valor de 1. Esse valor de 1 é a gravidade padrão da engine, que impõe uma força de -9.81f no eixo Y "empurrando" o corpo para baixo. Quando você aumenta o gravity scale, está alterando esse valor padrão porém só para o objeto em questão.
@@CrieSeusJogos entendi. Seria então um mundo onde o valor da aceleração gravitacional pose ser sentida diferente para cada objeto. Muito grato. Continuarei estudando para tornar as aulas de Física mais interessantes para os alunos do curso de Jogos digitais.
Muito bom o vídeo parabens
Gente, o meu player fica grudando nas paredes, eu pesquisei e tentei por um physics material 2d com 0 friction, tentei por no rigidbody do player, no box collider do player e no collider do ground mas nada funciona. O que eu faço?
engajamento nesse videoo
Wenes quando eu fui salvar a cena para depois renomear para LV_1, ela sumiu, a questao das maçãs, tipo, parecia que eu nao tinha feito a questão de colocar as maçãs no cenario e tb sumiu o contador de pontos, ai to tentado recolocar as maçãs na nova cena usando os prefabs so que elas nao esta tendo colisão, o personagem passa por traz dela, e ela nao somi. Poderia disponibilizar para downlod essa parte ai pronta, pq nao sei se vai dar certo voltar de onde ta. E sim quando vc falou para salvar o projeto eu salvei, so que aparentemente o unity não reconheceu que salvou. Por facor me ajuda ai, queria poder continuar a ver essa serie sua !!!!!!
Como eu faço para a camera seguir o player?
para testes coloca o objeto da câmera dentro do jogador mas já que isso é mt bugado, pesquisa sobre cinemachine é uma câmera configuravel que é da propria unity
Fala Devs! Meu personagem fica grudando na parede, verifiquei os colisores e estão corretos. Alguém tem alguma dica para a resolução deste caso? Agradecido!
@Crie Seus Jogos existe um problema (ainda não fui pra outras aulas, não sei se resolverá) que quando você bate com o player embaixo da plataforma, ela cai também. Tem como fazer pra ela cair apenas quando você pisa nela?
ua-cam.com/video/En_LBZVsctE/v-deo.html
Assim como mostra o vídeo que o anderGames te mandou, você tem que colocar um componente na plataforma chamado "Platform Effector 2D". Porem, ele ainda vai cair quando você pular e o player não colidir, isto porque o collider da plataforma, que está como "is Trigger", ainda está checando a colisão, então o método Falling ainda assim será chamado no script, pra resolver isso, na sua função OnCollisionEnter2D da plataforma, no if (collision.gameObject.tag == "Player"), você vai colocar um && (e), para cumprir outra condicional, e que condicional será essa? Simples, a plataforma só vai cair se o Y do player for maior que o Y da plataforma, para pegar o Y dos dois eu declarei estas variáveis:
public Vector3 platformPosition;
private Vector3 playerPosition;
void Start()
{
platformPosition = GetComponent().position;
playerPosition = GameObject.FindObjectOfType().transform.position;
}
e então minha função do OnCollisionEnter2D ficou assim:
if (collision.gameObject.tag == "Player" && playerPosition.y - 0.4 > platformPosition.y)
{
Invoke("Falling", fallingTime);
}
Obs: Eu subtrai 0.4 do playerPosition.y para ajustar a posição do y mais ou menos no seu pé
a mais ou menos 4 minutos e 23 segundos vc volta pra imgem do jogo pra fazer o LvL 2 como volta?
Cara clica duas vezes em background_text 😉
Alguém me ajuda pfv, quando eu renomeio a "Scenes" não aparece a função de reiniciar a "Scenes" e quando eu vou abrir o "lvl_1" não aparece nada la
O que eu faço com esse erro estou desesperado demorei 8 horas para fazer tudo
Unknown error occurred while loading 'Assets/Pixel Adventure 1/Assets/Animations/Player 1.controller'. UnityEditorInternal.InternalEditorUtility:LoadSerializedFileAndForget(String) UnityEditor.WindowLayout:LoadDefaultWindowPreferences
Vou ter que fazer tudo de novo????
Muito bom vídeo Wenes, mas não tem como fazer um script que controla todas as "traps"? Vlw. :p
Peço ajuda, será que está faltando algo? Apareceu pra mim a seguinte mensagem: Trying to Invoke method: FallingPlatform.Falling couldn't be called.
O que esta acontecendo?
Mestre Wenes, primeiramente gostaria de agradecer por essa série excelente de videos! Sua didatica é muito boa. Estou ao mesmo tempo assistindo a sua série de C# e aprendendo muito.
Segundamente, eu tenho uma grande duvida. Eu criei uma plataforma flutuante 100% funcional exatamente da forma q vc ensinou no video, mas eu notei que se o Player der uma "cabeçada" nessa plataforma (atingindo o colisor de baixo para cima), ele vai executar o script e a plataforma vai cair da mesma forma. Eu gostaria de ativar o "Falling" somente se o Player encostar na parte de cima da plataforma! Existe alguma maneira de "matar" as arestas laterais e inferior do BoxCollider2D e deixar só a superior, ou existe outro modo mais eficaz?
use o componente PlataformEffector2D com isso vc determina qual a região efetiva do Collider, inclusive vai permitir que vc passe por dentro da plataforma de baixo para cima. ou seja só vai funcionar se vc tocar de cima para baixo. espero ter ajudado
Eu tenho uma dúvida, por exemplo se eu quiser fazer um jogo de plataforma onde em cada fase eu jogo com um boneco diferente eu preciso refazer a movimentação do player ou apenas posso copiar e colar o Script em outro modelo?
A minha plataforma nao cai dps de 2 segundos que eu coloquei, e tbm quando eu encosto na plataforma da um um erro. Obs consegui coloquei o i do "invoker" para maiusculo
a minha dava o mesmo erro mas eu corrigi mudando o component
a, o meu deu bug, bugo tudo quando eu coloquei para criar uma scenes, eu fiz oq vc pediu dai bugou tudo... sumiu tudo que estava no jogo
O meu também.... : (
O meu tbm
@@욤애퍄 calma galera, o meu rolou isso ee u fiquei em desespero, mas depois vi que a cena que o meu jogo tava não era aquele lv1 e sim uma cena que tava fora da pata, procurem onde vcs estão salvando o arquivo salvo de vcs
Ola pessoal, estou tendo um problema, eu fiz o codigo, mas na hora de testar diz q n foi possivel invocar o "falling" alguma ajuda?
@@nikomu7256 cara se não tiver achado a resposta ainda a reposta é que você tem que colocar o F maiúsculo
Hey mano, minha plataforma n está caindo. Tem como me ajudar?
Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FallingPlataform : MonoBehaviour
{
public float fallingTime;
private TargetJoint2D target;
private BoxCollider2D boxColl;
// Start is called before the first frame update
void Start()
{
target = GetComponent();
boxColl = GetComponent();
}
void OnCollisorEnter2D(Collision2D collision)
{
if(collision.gameObject.tag == "Player")
{
Invoke("Falling", fallingTime);
}
}
void Falling()
{
target.enabled = false;
boxColl.isTrigger = true;
}
}
no seu void tá escrito OnCollisorEnter2D(Collision2D collision). O certo é OnCollisionEnter2D(collision2D colission)
vc colocou Collisor invés de Collision
@@odanielfalou5227 Vlwzão mn! Amo mt a comunidade desse canal, um ajudando o outro. Obg msm cara!
@@animadaco9803 Flw mano, eu também tava com esse problema e acabei resolvendo mais cedo ai vi seu comentário e resolvi ajudar.
@@odanielfalou5227 Brigadão msm, eu fico distraído e um erro bobo como esse acaba passando despercebido
eu nao consigo adcionar o script as plataformas aparece esse erro Não é possível adicionar o script component 'Falling plataforms'
porque a classe de script não pode ser encontrada. Certificar-se de que
que não há erros de compilação e que o nome do arquivo
e o nome da classe correspondem., alguem poderia me ajudar?
tbm to tendo esse erro
The type or namespace name 'TargetJoin2D' could not be found (are you missing a using directive or an assembly reference?) que erro é essa? Alguém pode ajudar?
Minha plataforma esta caindo no mesmo instante que pulo em cima dela.
Alguém pode me ajudar??
Ela está com 4 segundos, já tentei com mais tempo porem não mudou nada.
Alguém saberia me dizer por que aparece essa mensagem de erro no console "'Player' AnimationEvent has no function name specified!".... Já verifiquei os scripts e as animações. Normalmente o jogo roda mas tem vezes que ele dá erro e não roda e é sempre essa mensagem que aparece no console, estando o jogo rodando ou não.
Wenes, dps de criar uma nova cena e clicar nela a tela fica td preta, aparece o erro "No cameras rendering" como resolvo?
Pra quem está com problema no boxColl, o console diz q nao achou, é só mudar a letra C para minuscula, ficando boxcoll! Resolveu meu problema, espero ter ajudado alguém tbm!
por algum motivo meu istrigger tava dando um bug visual q a plataforma n estava caindo wtf.
apaguei o código q tava usando o istrigger e funfou tudo certinho mas ainda tem colisão com a plataforma bem pra mim fico ok
Como faz para as plataformas reaparecerem?
caraca melhor video
se o codigo de vcs n funcionou tentem o meu, eu dei uma alterada e funcionou direitinho.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class plataforma : MonoBehaviour
{
public float FallingTime;
private TargetJoint2D target;
// Start is called before the first frame update
void Start()
{
target = GetComponent();
}
void OnCollisionEnter2D(Collision2D collision)
{
if(collision.gameObject.tag == "Player")
{
Invoke("Falling", FallingTime);
Invoke("disapear",FallingTime += 0.3f);
}
}
void Falling()
{
target.enabled = false;
}
void disapear()
{
Destroy(gameObject);
}
}
Valeu cara
quando subo na plataforma a variável "IsJumping" não ativa, fazendo com q o player possa pular sem fim, alguem sabe como resolver?
is não é maiúsculo
@@pifando740 Obrigado, mas o problema não é esse. Configurei td pra ficar maiúsculo, achei a solução, mas tive q mudar o método
Quem tiver problema com a plataforma não cair, verifique todas as letras se estão corretas como "Player" com P maiusculo.
Os prefebs das maças não executam animações. Mesmo com a animação no animator, não executa ao dar play no game.
cara n sei se é esse o problema, mas você tem que ir na pagina do prefabs e puxar a maça de lá mesmo
aki é vasco!!
É normal as vezes meu personagem cair pra fora do cenário ou o pulo funcionar quando quer?
O meu tbm tem os mesmos bugs.
O meu tbm faz isso
Estou com um erro, não sei como resolver, meu player esta pulando mais de duas vezes na plataforma.
Se alguém puder me ajudar, eu agradeço.
O meu nao funcionou, ele continua so atravassando, errei em alguma coisa ?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FallingPlataform : MonoBehaviour
{
// essa e a variavel que vai contar o tempo, para a plataforma cair
public float fallingTime;
//essa e a variavel, que serve para desativar o trigger, da plataforma, fazendo ela atravessar a parede e sumir
// que pode ser visivel, desativando manualmente
private BoxCollider2D boxColl;
// essa variavel, e para fazer a ação de cair, a desativando. que tbm pode ser feito manualmente.
private TargetJoint2D target;
void Start()
{
// esta ganhando todas as funçoes de targerjoint
target = GetComponent();
// esta recebendo todas as funçoes de BoxCollider2D
boxColl = GetComponent();
}
// permite detectar toda vez que o objeto tocar em alguma coisa
void OnCollisionEnter2D(Collision2D collision)
{
// se colidir com algum objeto que tenha o nome Player
if(collision.gameObject.tag == "Player")
{
// chama o metodo, após o tempo, da variavel se percorrer
Invoke ("Falling", fallingTime);
}
}
//se o objeto collidir com um triger,
void OnTriggerEnter2D(Collider2D collider)
{
if(collider.gameObject.layer == 9)
{
// destroi o objeto
Destroy(gameObject);
}
}
void Falling()
{
// desativa a força que mantem o objeto no ar
target.enabled = false;
// ativa a transparencia para sair do cenario
boxColl.isTrigger = true;
}
}
a plataforma não cai e aparece a mensagem: Trying to invoke method: FallingPlataform.Falling couldn't be called
o que eu faço?
Checa seu código, talvez alguma chave está fechada errada, anexando assim uma função dentro de outra onde não deveria estar no mesmo laço.
O meu deu o msm problema, e fui olhar o script, e tava assim "Invoke("Falling", fallingTime);" e o o void tava ''falling" ou seja, o F no minusculo era o problema, como o falling do invoke era maiusculo ele não estava achando
@@CarlosAugusto-im2hn É isso mesmo mano, estava com o mesmo problema, muito obrigado
gente como faço para conseguir ver a area do objecto vazio
?
clica em edit collider no boxcollider
Como crio uma pasta na hierarquia?
aperta com o botão direito nas hierarquias e vai em ''creaty empty´´
mano, tem uma serie de bugs q acontecem. tipo quando caio da plataforma, as vezes ele n pula, as vezes ele afunda, as vezes ele sai pra fora do cenario kk.
O meu tbm acontece de cair do cenário.
Ei, qual o nível de matemática que a gente precisa para desenvolver jogos ? +1 sub
Não precisa ter quase nada
@@alexnogueira2662 acho que pelo menos tem que ter o conhecimento básico talvez. Na unity você tem o "Mathf" que você pode mexer com raiz quadrada, com o PI também, entende.
saber como funciona o sistema cartesiano é bom
@@nikomu7256 também, se for usar o Navigation na Unity, cê vê umas parada de raio da circunferência algumas coisas assim que cês aprende pro 9° ano, 1° e em diante.
precisa de muita matematica pra programação de jogos, mas como a unity ja tem uns negocios pra facilitar fica mais simples
se vc fosse fazer um jogo do zero sem nenhuma game engine precisaria de muita mais matematica e programação
error CS1061: 'TargetJoint2D' does not contain a definition for 'enable' and no accessible extension method 'enable' accepting a first argument of type 'TargetJoint2D' could be found (are you missing a using directive or an assembly reference?) Fica dando esse erro alguém consegue me ajudar? script:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class fallingplatform : MonoBehaviour
{
public float fallingTime;
private TargetJoint2D target;
private BoxCollider2D boxColl;
// Start is called before the first frame update
void Start()
{
target = GetComponent();
boxColl = GetComponent();
}
void OnCollisionEnter2D(Collision2D collision)
{
if(collision.gameObject.tag == "Player")
{
Invoke("Falling", fallingTime);
}
}
void OnTriggerEnter2D(Collider2D collider)
{
if(collider.gameObject.layer == 9)
{
Destroy(gameObject);
}
}
void Falling()
{
target.enable = false;
boxColl.isTrigger = true;
}
}
vc escreveu errado n é "enable" é "enabled"
Olá Wenes, ao invés de eu destruir a plataforma como faço pra ela reaparecer depois de um certo tempo ?
voce pode deletar a plataforma e criar outra em outro lugar, dando a impressao que ela reapareceu.
no meu nao funcionou ele cai direto nem chega a colidir com a plataforma
Perdi todo o meu progresso quando estava a criar uma nova cena
Alguém sabe como voltar a ter a minha cena antiga?????????????
Preciso de ajuda
quando eu encosto na plataforma ela cai intantaneamente, ja coloquei 10 seg e nada, algm sabe resolver?
edit: consegui resolver galera, ao inves de editar o tempo da plataforma da pasta prefabs, era so editar a plat que ta na hierarquia
Eu conferi o código caractere por caractere , ainda assim sem sucesso em derrubar a plataforma, também exclui e refiz a plataforma pra ver se não era nada que eu havia cagado, mesmo assim sem sucesso, estou deixando o código aqui por desencargo de consciência mas se alguém tiver alguma ideia do que pode ser o problema agradeço<
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FallingPlatform : MonoBehaviour
{
public float fallingTime;
private TargetJoint2D target;
private BoxCollider2D boxColl;
// Start is called before the first frame update
void Start()
{
target = GetComponent();
boxColl = GetComponent();
}
void OncollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.tag == "Player")
{
Invoke("Falling", fallingTime);
}
}
void Falling()
{
target.enabled = false;
boxColl.isTrigger = true;
}
}
Cara to passando pelo mesmo problema, ja conseguiu resolver ?
@@Iara-exe Infelizmente não, eu consigo chamar por outros métodos como pro exemplo colocando um trigger externo mas como meu objetivo é de fato aprender a usar os comandos quero encontrar o erro, quando e (se) eu descobrir falo aqui.
Complementando, depois de testar um monte de coisa confirmei que o problema é que o método não está sendo chamado e que o problema é que a condição da colisão não está sendo atendida mas não sei como resolver ainda.
@@lmilani7608 Pelo incrível q pareça eu consegui aqui, meu erro foi colocar player com P minúsculo, mas esse n foi seu caso, talvez seja outra letra em minúsculo ou maiúsculo
@@Iara-exe ainda bem que seu problema foi mais simples, n faço ideia do q errei, ja reescrevi 2 vezes e revisei mas n encontro ksksks vida dura....
@@lmilani7608 Revisei o seu, no void OncollisionEnter2D(Collision2D collision), deveria ser OnCollision, com o C em maiusculo, acho q pod ser isso
No meu deu tudo certo, porém a plataforma ainda continua passando direto pelo Boxcollider, alguém sabe onde errei?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Fallenplatform : MonoBehaviour
{
public float fallingTime;
private TargetJoint2D target;
private BoxCollider2D boxColl;
// Start is called before the first frame update
void Start()
{
target = GetComponent();
boxColl = GetComponent();
}
void OnCollisionEnter2D(Collision2D collision)
{
if(collision.gameObject.tag == "Player")
{
Invoke("Falling", fallingTime);
}
}
void OnTriggerEnter2D(Collider2D collider)
{
if(collider.gameObject.layer == 9)
{
Destroy(gameObject);
}
}
void Falling()
{
target.enabled = false;
boxColl.isTrigger = true;
}
}
a minha plataforma ainda ta passando tbm.. nao sei a onde ta errado
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class plataforma : MonoBehaviour
{
public float FallingTime;
private TargetJoint2D target;
// Start is called before the first frame update
void Start()
{
target = GetComponent();
}
void OnCollisionEnter2D(Collision2D collision)
{
if(collision.gameObject.tag == "Player")
{
Invoke("Falling", FallingTime);
Invoke("disapear",FallingTime += 0.3f);
}
}
void Falling()
{
target.enabled = false;
}
void disapear()
{
Destroy(gameObject);
}
}
tenta usar esse codigo ta dando direitinho
@@joaodavi7717 seu código me ajudou com minha plataforma que não caia e como eu estava fazendo exatamente como no vídeo o meu script não estava invokando falling, acho zuado como os códigos do cara do vídeo não funcionam perfeitamente sem modificações.
Quando estou encima da plataforma pro algum motivo o player não pula, ele fica travado, sabe como resolver isso ?
tem que colocar A layer "Ground" na plataforma, ou a qual você definiu como "Chão". ou seja, a mesma que tu colocou pra terra
@@DoubtfulSongs e como faz isso?
@@DoubtfulSongs deixa consegui:D
Consegui atravessar a plataforma mesmo depois de colocar gravity scale 5 nela, é só pular um pouco antes de ela cair... 🤣
Resolvi assim:
```
void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.tag == "Player") // Se colidiu com o jogador
{
Invoke("Falling", fallingTime);
}
if (collision.gameObject.layer == 6) // Se colidiu com o chão
{
boxColl.isTrigger = true;
}
}
void Falling()
{
target.enabled = false;
}
```
por favor me ajuda eu sai da cena agora nao consigo voltar
9:00
Quando o meu player chega no Falling o meu player não consegue mais pular
Você precisa colocar a layer "ground" na plataforma falling.
Up
18:08
acho que faltou audio
HELP: tudo certo, menos a plataforma ser destruída, simplesmente ela atravessa tudo e cai eternamente.
Código:
public class fallingPlatform : MonoBehaviour
{
public float fallingTime;
private TargetJoint2D target;
private BoxCollider2D boxColl;
// Start is called before the first frame update
void Start()
{
target = GetComponent();
boxColl = GetComponent();
}
void OnCollisionEnter2D(Collision2D collision)
{
if(collision.gameObject.tag == "Player")
{
Invoke("Falling", fallingTime);
}
}
void OntriggerEnter2D(Collider2D collider)
{
if(collider.gameObject.layer == 9")
{
Destroy(gameObject);
}
}
void Falling()
{
target.enabled = false;
boxColl.isTrigger = true; //
}
if(collider.gameObject.layer == 9")
Essas aspas depois do 9, retira elas
Quando vc está comparando com um texto aí usa-se "", mas quando é um número inteiro aí usa sem mesmo
A minha plataforma nao esta caindo podem me ajudar o meu codigo e esse??
codigo
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FallingPlataform : MonoBehaviour
{
public float fallingTime;
private TargetJoint2D target;
private BoxCollider2D boxColl;
// Start is called before the first frame update
void Start()
{
target = GetComponent();
boxColl = GetComponent();
}
void OnCollisionEnter2D(Collision2D collision)
{
if(collision.gameObject.tag == "player")
{
Invoke("Falling", fallingTime);
}
}
void Falling()
{
target.enabled = false;
boxColl.isTrigger = true;
}
}
acara programação de graça ja e caro
a minha plataforma não está desaparecendo, alguem pode me ajudar, por favor? aqui está o código:
public class FallenPlatfroms : MonoBehaviour
{
public float fallingTime;
private TargetJoint2D target;
private BoxCollider2D boxColl;
// Start is called before the first frame update
void Start()
{
target = GetComponent();
boxColl = GetComponent();
}
void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.CompareTag("Player"))
{
Invoke("Falling", fallingTime);
}
}
void OnTriggerEnter2D(Collider2D collider)
{
if(collider.gameObject.layer == 9)
{
Destroy(gameObject);
}
}
void Falling()
{
target.enabled = false;
boxColl.isTrigger = true;
}
}
obrigado 🙏 ✌
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FallingPlataform : MonoBehaviour
{
public float fallingTime;
private TargetJoint2D target;
private BoxCollider2D boxColl;
// Start is called before the first frame update
void Start()
{
target = GetComponent();
boxColl = GetComponent();
}
void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.tag == "Player")
{
Invoke("Falling", fallingTime);
}
}
void Falling()
{
target.enabled = false;
boxColl.isTrigger = true;
}
}
esse é o meu código minha plataforma não está caindo alguém me ajuda.
vida de pobre é foda 14 minutos só pra carregar os scripts pqp
Creio que não foi apenas eu que tive problemas, então consegui essa solução:
void OnCollisionEnter2D(Collision2D collision)
{
if(collision.gameObject.tag == "Player")
{
Debug.Log("Colidiu");
StartCoroutine(FallingCoroutine());
}
IEnumerator FallingCoroutine()
{
yield return new WaitForSeconds(fallingTime);
Falling();
}
void Falling()
{
target.enabled = false;
boxColl.isTrigger = true;
}
}
}