Bug no pulo do personagem
4 participantes
Página 1 de 1
Bug no pulo do personagem
Olá! Estou desenvolvendo um jogo 2d e tenho um problema que esta acontecendo, ao clicar para pular, às vezes o pulo não funciona como se não reconhecesse o comando e outras vezes o pulo vai bem mais alto que o normal, não sei o que está ocasionando isso, sou novo, então não sei otimizar código e pode estar pesado, mas também não possuo placa de vídeo. Porém pode ser algo no código, se puderem me ajudar eu ficaria grato!
Pedro Schumann- Iniciante
- PONTOS : 1480
REPUTAÇÃO : 0
Respeito as regras :
Re: Bug no pulo do personagem
Primeiro va no seu player e adicione o Component RigidBody 2D, depois crie um script e insira ele no player, depois é só editar os valores das variaveis:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Jump : MonoBehaviour {
public float forcaDoPulo;
private Rigidbody2D caindo;
public float esperaParaPular;
public bool podePular;
void Start () {
caindo = GetComponent<Rigidbody2D>();
podePular = true;
}
void Update () {
if(Input.GetKeyDown(KeyCode.Space) && podePular){
caindo.AddForce(Vector2.up * forcaDoPulo);
podePular = false;
StartCoroutine("poderPular");
}
IEnumerator poderPular(){
yield return new WaitForSeconds(esperaParaPular);
podePular = true;
}
}
}
Pokedlg- ProgramadorMaster
- PONTOS : 2339
REPUTAÇÃO : 198
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras :
Re: Bug no pulo do personagem
Provavelmente no seu script o pulo esta sendo chamado dentro da Update sem nenhum controle isso vai gerar esse problema, pós em um frame ele vai chamar no outro tbm , e assim sucessivamente, o código do amigo acima esta perfeito para solucionar esse problema
MatheusEleodoro- Membro
- PONTOS : 2463
REPUTAÇÃO : 7
Áreas de atuação : Cientista da Computação. Unity, C#,C,C++,
Java, Dev.Android
Respeito as regras :
Re: Bug no pulo do personagem
Meu jogo se trata de subir plataformas, pelo que entendi no código ele define um tempo de espera para poder pular de novo, não seria preciso algo para identificar se o player está no chão? Pois o tempo dele chegar na plataforma de cima é diferente dele pular e cair no mesmo lugar que está. Ou com esse código ele já faz isso corretamente?
Pedro Schumann- Iniciante
- PONTOS : 1480
REPUTAÇÃO : 0
Respeito as regras :
Re: Bug no pulo do personagem
Aaa sim, entendi o q vc qr.
Primeiro add uma Layer:
Na User Layer 11 coloque o nome de Chao:
Continua em baixo (Deu o limite de Palavras)
Primeiro add uma Layer:
Na User Layer 11 coloque o nome de Chao:
Continua em baixo (Deu o limite de Palavras)
Pokedlg- ProgramadorMaster
- PONTOS : 2339
REPUTAÇÃO : 198
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras :
Re: Bug no pulo do personagem
Mude a layer da sua plataforma para a layer Chao:
E por ultimo troque aqle script q eu mandei por este:
[list=linenums]
[*]using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Jump : MonoBehaviour {
public float forcaDoPulo;
private Rigidbody2D caindo;
public float esperaParaPular;
public bool podePular;
void Start () {
caindo = GetComponent<Rigidbody2D>();
podePular = true;
}
void Update () {
if(Input.GetKeyDown(KeyCode.Space) && podePular){
caindo.AddForce(Vector2.up * forcaDoPulo);
podePular = false;
}
}
void OnCollision2d (Collision2D colidindo){
if(colidindo.gameObject.layer == 11){
podePular = true;
}
}
}
[/list]
E por ultimo troque aqle script q eu mandei por este:
[list=linenums]
[*]using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Jump : MonoBehaviour {
public float forcaDoPulo;
private Rigidbody2D caindo;
public float esperaParaPular;
public bool podePular;
void Start () {
caindo = GetComponent<Rigidbody2D>();
podePular = true;
}
void Update () {
if(Input.GetKeyDown(KeyCode.Space) && podePular){
caindo.AddForce(Vector2.up * forcaDoPulo);
podePular = false;
}
}
void OnCollision2d (Collision2D colidindo){
if(colidindo.gameObject.layer == 11){
podePular = true;
}
}
}
[/list]
Pokedlg- ProgramadorMaster
- PONTOS : 2339
REPUTAÇÃO : 198
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras :
Re: Bug no pulo do personagem
- Código:
[size=14]using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Jump : MonoBehaviour {
public float forcaDoPulo;
private Rigidbody2D caindo;
public float esperaParaPular;
public bool podePular;
void Start () {
caindo = GetComponent<Rigidbody2D>();
podePular = true;
}
void Update () {
if(Input.GetKeyDown(KeyCode.Space) && podePular){
caindo.AddForce(Vector2.up * forcaDoPulo);
podePular = false;
}
}
void OnCollision2d (Collision2D colidindo){
if(colidindo.gameObject.layer == 11){
podePular = true;
}
}
}[/size]
Pokedlg- ProgramadorMaster
- PONTOS : 2339
REPUTAÇÃO : 198
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras :
Re: Bug no pulo do personagem
- Código:
public LayerMask Ground;
public Transform groundDetector;
public float radius = 0.2f;
public bool isOnGround = false;
void Update() {
isOnGround = Physics2D.OverlapCircle(groundDetector.position, radius, Ground);
if(Input.GetKeyDown(KeyCode.Space) && isOnGround) {
personagem.AddForce(new Vector2(0, 1), ForceMode2D.Impulse)
}
}
Micco- MembroAvançado
- PONTOS : 1793
REPUTAÇÃO : 17
Áreas de atuação : C#, GDScript, HTML e CSS.
Respeito as regras :
Tópicos semelhantes
» Personagem dar apenas um pulo
» [RESOLVIDO] Problema com pulo do jogador - O personagem demora muito no ar!
» [TUTORIAL] Controle de personagem em primeira pessoa + pulo para android!
» (Unity2D) Como fazer o personagem cair mais rápido depois do pulo
» Personagem da AS, animações do mixamo dão erro ao usar avatar do personagem.
» [RESOLVIDO] Problema com pulo do jogador - O personagem demora muito no ar!
» [TUTORIAL] Controle de personagem em primeira pessoa + pulo para android!
» (Unity2D) Como fazer o personagem cair mais rápido depois do pulo
» Personagem da AS, animações do mixamo dão erro ao usar avatar do personagem.
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos