Meu personagem pula mesmo quando ja está no ar pulando
4 participantes
Página 1 de 1
Meu personagem pula mesmo quando ja está no ar pulando
Olá, quando eu aperto para meu personagem pular no Unity3d, ele pula, mas se eu aperto novamente para ele pular enquanto ele ja esta no pulo, ele pula novamente, fazendo com que eu consiga pular infinitamente com ele.
Alguem pode por favor me ajudar
O meu código é o seguinte:
Alguem pode por favor me ajudar
O meu código é o seguinte:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerMove : MonoBehaviour
{
public float spd = 0.002f;
private bool canJump = false;
public Animator anim;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
if (Input.GetKey("up"))
{
transform.position += transform.forward * spd;
anim.Play("walking");
}
if (Input.GetKeyUp("up"))
{
anim.Play("idle");
}
if (Input.GetKey("right"))
{
transform.Rotate(0,1f,0);
}
else if (Input.GetKey("left"))
{
transform.Rotate(0,-1f,0);
}
if (Input.GetKey("space"))
{
{
if (canJump)
Debug.Log("pular");
Rigidbody rb = GetComponent<Rigidbody>();
rb.AddForce(new Vector3(0, 0.3f, 0), ForceMode.Impulse);
canJump = false;
}
}
}
void OncollisionEnter(Collision obj)
{
if (obj.gameObject.tag == "floor")
{
canJump = true;
}
}
}
joicolado- Iniciante
- PONTOS : 1645
REPUTAÇÃO : 0
Respeito as regras :
Re: Meu personagem pula mesmo quando ja está no ar pulando
vc colocou para quando ele entrasse em colisão, mas quando saisse da colisao vc nao setou nada tenta assim
void OnCollisionExit(Collision obj)
{
if(obj.tag == "suatag")
{
CanJump = false;
}
}
void OnCollisionExit(Collision obj)
{
if(obj.tag == "suatag")
{
CanJump = false;
}
}
vini024- Membro
- PONTOS : 1858
REPUTAÇÃO : 9
Respeito as regras :
Re: Meu personagem pula mesmo quando ja está no ar pulando
Olá amigo,
eu tentei fazer o que você falou agora, mas ele aparece "A namespace cannot directly contain members such as fields or methods"
O que eu faço para resolver isso, ja tentei arrumar mas não consegui
eu tentei fazer o que você falou agora, mas ele aparece "A namespace cannot directly contain members such as fields or methods"
O que eu faço para resolver isso, ja tentei arrumar mas não consegui
joicolado- Iniciante
- PONTOS : 1645
REPUTAÇÃO : 0
Respeito as regras :
Re: Meu personagem pula mesmo quando ja está no ar pulando
Olá amigo,vini024 escreveu:vc colocou para quando ele entrasse em colisão, mas quando saisse da colisao vc nao setou nada tenta assim
void OnCollisionExit(Collision obj)
{
if(obj.tag == "suatag")
{
CanJump = false;
}
}
eu tentei fazer o que você falou agora, mas ele aparece "A namespace cannot directly contain members such as fields or methods"
O que eu faço para resolver isso, ja tentei arrumar mas não consegui
joicolado- Iniciante
- PONTOS : 1645
REPUTAÇÃO : 0
Respeito as regras :
Re: Meu personagem pula mesmo quando ja está no ar pulando
Starta o canJump como false explicar olhando assim posso dificultar mas eu tentaria assim..
if(input.getkey("space") && canJump == true) {
Debug.Log("pular");
Rigidbody rb = GetComponent<Rigidbody>();
rb.AddForce(new Vector3(0, 0.3f, 0), ForceMode.Impulse);
canJump = false;
}
lembrando que deve ajustar as maiusculas ali, foi so um exemplo
queimei a cabeça uma vez com isso e resolvi assim
if(input.getkey("space") && canJump == true) {
Debug.Log("pular");
Rigidbody rb = GetComponent<Rigidbody>();
rb.AddForce(new Vector3(0, 0.3f, 0), ForceMode.Impulse);
canJump = false;
}
lembrando que deve ajustar as maiusculas ali, foi so um exemplo
queimei a cabeça uma vez com isso e resolvi assim
speedluk- Avançado
- PONTOS : 2676
REPUTAÇÃO : 29
Idade : 32
Respeito as regras :
Re: Meu personagem pula mesmo quando ja está no ar pulando
Alias corrigindo aqui esquece isso de starta como false que eu disse ali acabei me confundindo e vi agora
speedluk- Avançado
- PONTOS : 2676
REPUTAÇÃO : 29
Idade : 32
Respeito as regras :
Re: Meu personagem pula mesmo quando ja está no ar pulando
Primeiro você precisa saber quando o player está "no chão".
Dispara um raycast pra baixo com uma distância máxima pra definir o player como "Grounded".
Se ele estiver "Grounded" ele pode pular. Isso vai evitar de ele pular enquanto estiver no ar. Triggers não são bons pra isso, principalmente se for pra movimentos rápidos.
Se quiser simplificar ainda mais, só coloca um CharacterController nele (Mesmo que não mova o personagem por ele) e faz a verificação. (CharacterController.Isgrounded).
Existem literalmente uma "cacetada" de resultados no google com esse tipo de dúvida.
Dispara um raycast pra baixo com uma distância máxima pra definir o player como "Grounded".
Se ele estiver "Grounded" ele pode pular. Isso vai evitar de ele pular enquanto estiver no ar. Triggers não são bons pra isso, principalmente se for pra movimentos rápidos.
Se quiser simplificar ainda mais, só coloca um CharacterController nele (Mesmo que não mova o personagem por ele) e faz a verificação. (CharacterController.Isgrounded).
Existem literalmente uma "cacetada" de resultados no google com esse tipo de dúvida.
truestory- Iniciante
- PONTOS : 1639
REPUTAÇÃO : 3
Respeito as regras :
Tópicos semelhantes
» Jogo 2D Personagem atravessa o chão quando Pula muito alto
» Personagem não pula
» Quando o objeto esta sendo gerado ele esta rotacionando
» Carro sai pulando quando o cenario é uma descida e não pega as mudanças do terreno
» Player não segue a trajetória quando pula correndo
» Personagem não pula
» Quando o objeto esta sendo gerado ele esta rotacionando
» Carro sai pulando quando o cenario é uma descida e não pega as mudanças do terreno
» Player não segue a trajetória quando pula correndo
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos