Personagem dar apenas um pulo
5 participantes
Página 1 de 1
Personagem dar apenas um pulo
Boa noite, gostaria de saber como faço uma verificação para que o meu personagem dê apenas um pulo e só possa dar outro quando estiver no chão ?
Este é o script que estou usando :
Este é o script que estou usando :
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class movimentacaoPersonagem : MonoBehaviour
{
public float velocidadeMovimento;
public bool animacao;
public Animator animator;
public float forcapulo;
public Rigidbody PlayerRigid;
public GameObject floor;
void Start()
{
animacao = true;
}
void Update()
{
if (animacao == true)
{
transform.Translate(0, 0, velocidadeMovimento);
animator.SetBool("walk", true);
}
else
{
animator.SetBool("walk", false);
}
}
void OnCollisionEnter(Collision collision)
{
// Não sei qual parâmetro para ler que o player está em cima do colisor
if (Input.GetButtonDown("Fire1"))
{
transform.Translate(0, forcapulo, 0);
animator.SetBool("jump", true);
}
else
{
animator.SetBool("jump", false);
transform.Translate(0, 0, 0);
}
}
}
ruanzikaad- Mestre
- PONTOS : 3187
REPUTAÇÃO : 47
Idade : 24
Respeito as regras :
Re: Personagem dar apenas um pulo
Boa noite! dê uma olhada:
https://www.schultzgames.com/t1272-tutorial-unity-5-pulo-duplo-double-jump-para-2d-e-3d?highlight=pulo
https://www.schultzgames.com/t806-tutorial-script-de-pulo-para-jogos-3d-em-geral-unity-c?highlight=pulo
https://www.schultzgames.com/t552-tutorial-sistema-de-pulo-com-linecast-para-jogos-2d?highlight=pulo
Abraço!
https://www.schultzgames.com/t1272-tutorial-unity-5-pulo-duplo-double-jump-para-2d-e-3d?highlight=pulo
https://www.schultzgames.com/t806-tutorial-script-de-pulo-para-jogos-3d-em-geral-unity-c?highlight=pulo
https://www.schultzgames.com/t552-tutorial-sistema-de-pulo-com-linecast-para-jogos-2d?highlight=pulo
Abraço!
Re: Personagem dar apenas um pulo
Translate não eh nada legal em movimentação, recomendo o rigidbody.velocity;ruanzikaad escreveu:Boa noite, gostaria de saber como faço uma verificação para que o meu personagem dê apenas um pulo e só possa dar outro quando estiver no chão ?
Este é o script que estou usando :Alguma ajuda ? <3
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class movimentacaoPersonagem : MonoBehaviour
{
public float velocidadeMovimento;
public bool animacao;
public Animator animator;
public float forcapulo;
public Rigidbody PlayerRigid;
public GameObject floor;
void Start()
{
animacao = true;
}
void Update()
{
if (animacao == true)
{
transform.Translate(0, 0, velocidadeMovimento);
animator.SetBool("walk", true);
}
else
{
animator.SetBool("walk", false);
}
}
void OnCollisionEnter(Collision collision)
{
// Não sei qual parâmetro para ler que o player está em cima do colisor
if (Input.GetButtonDown("Fire1"))
{
transform.Translate(0, forcapulo, 0);
animator.SetBool("jump", true);
}
else
{
animator.SetBool("jump", false);
transform.Translate(0, 0, 0);
}
}
}
Veja isso:
utilize isso como base para verificar se ele está no chão,caso não o player teria que esperar para poder pular novamente;
https://docs.unity3d.com/ScriptReference/Physics.Raycast.html
Phph09- Profissional
- PONTOS : 3788
REPUTAÇÃO : 240
Idade : 19
Respeito as regras :
Re: Personagem dar apenas um pulo
Qual a diferença do rigid body para o translate ?Phph09 escreveu:Translate não eh nada legal em movimentação, recomendo o rigidbody.velocity;ruanzikaad escreveu:Boa noite, gostaria de saber como faço uma verificação para que o meu personagem dê apenas um pulo e só possa dar outro quando estiver no chão ?
Este é o script que estou usando :Alguma ajuda ? <3
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class movimentacaoPersonagem : MonoBehaviour
{
public float velocidadeMovimento;
public bool animacao;
public Animator animator;
public float forcapulo;
public Rigidbody PlayerRigid;
public GameObject floor;
void Start()
{
animacao = true;
}
void Update()
{
if (animacao == true)
{
transform.Translate(0, 0, velocidadeMovimento);
animator.SetBool("walk", true);
}
else
{
animator.SetBool("walk", false);
}
}
void OnCollisionEnter(Collision collision)
{
// Não sei qual parâmetro para ler que o player está em cima do colisor
if (Input.GetButtonDown("Fire1"))
{
transform.Translate(0, forcapulo, 0);
animator.SetBool("jump", true);
}
else
{
animator.SetBool("jump", false);
transform.Translate(0, 0, 0);
}
}
}
Veja isso:
utilize isso como base para verificar se ele está no chão,caso não o player teria que esperar para poder pular novamente;
https://docs.unity3d.com/ScriptReference/Physics.Raycast.html
ruanzikaad- Mestre
- PONTOS : 3187
REPUTAÇÃO : 47
Idade : 24
Respeito as regras :
Re: Personagem dar apenas um pulo
Cara, não tem como eu fazer isso com um trigger ? Ou com um collisionEnter?
ruanzikaad- Mestre
- PONTOS : 3187
REPUTAÇÃO : 47
Idade : 24
Respeito as regras :
Re: Personagem dar apenas um pulo
tem sim fera! vo te mandar a msg no privado pq o pessoal do fórum ta cansado de sistema de pulo haha :D
parkournick- Membro
- PONTOS : 3202
REPUTAÇÃO : 3
Idade : 22
Áreas de atuação : C#, Python
Respeito as regras :
Re: Personagem dar apenas um pulo
Chamei la no pv :D
ruanzikaad- Mestre
- PONTOS : 3187
REPUTAÇÃO : 47
Idade : 24
Respeito as regras :
Re: Personagem dar apenas um pulo
ruanzikaad escreveu:Qual a diferença do rigid body para o translate ?Phph09 escreveu:Translate não eh nada legal em movimentação, recomendo o rigidbody.velocity;ruanzikaad escreveu:Boa noite, gostaria de saber como faço uma verificação para que o meu personagem dê apenas um pulo e só possa dar outro quando estiver no chão ?
Este é o script que estou usando :Alguma ajuda ? <3
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class movimentacaoPersonagem : MonoBehaviour
{
public float velocidadeMovimento;
public bool animacao;
public Animator animator;
public float forcapulo;
public Rigidbody PlayerRigid;
public GameObject floor;
void Start()
{
animacao = true;
}
void Update()
{
if (animacao == true)
{
transform.Translate(0, 0, velocidadeMovimento);
animator.SetBool("walk", true);
}
else
{
animator.SetBool("walk", false);
}
}
void OnCollisionEnter(Collision collision)
{
// Não sei qual parâmetro para ler que o player está em cima do colisor
if (Input.GetButtonDown("Fire1"))
{
transform.Translate(0, forcapulo, 0);
animator.SetBool("jump", true);
}
else
{
animator.SetBool("jump", false);
transform.Translate(0, 0, 0);
}
}
}
Veja isso:
utilize isso como base para verificar se ele está no chão,caso não o player teria que esperar para poder pular novamente;
https://docs.unity3d.com/ScriptReference/Physics.Raycast.html
O rigidbody ele obedece as físicas da unity, sempre é recomendado utilizar ele em movimentos que se usam físicas, o Translate simplesmente não obedecem as físicas, gerando muitos problemas caso esse objeto tenha física, recomendo ele apena quando o objeto a ser movimentado não tem física;
Caso resolva por lá, poste aqui como que você fez para resolver o problema;
Phph09- Profissional
- PONTOS : 3788
REPUTAÇÃO : 240
Idade : 19
Respeito as regras :
Re: Personagem dar apenas um pulo
Cara, é so usar um raycast! Com ele vc detecta se algum raio está detectando um objeto, na direçao que vc programar :
- Código:
if (physics.raycast(transform.position,Vector3.down,1f) && input.GetKeyDown(KeyCode.Space)
//faça seu pulo
Daniel Pires da Silva- Avançado
- PONTOS : 2753
REPUTAÇÃO : 37
Idade : 20
Áreas de atuação : Cursando C#
Respeito as regras :
Re: Personagem dar apenas um pulo
Vou logo avisando que usar uma void OnCollisionStay é EXTREMAMENTE não recomendado, ja que esse não foi feito para esse tipo de função.
Daniel Pires da Silva- Avançado
- PONTOS : 2753
REPUTAÇÃO : 37
Idade : 20
Áreas de atuação : Cursando C#
Respeito as regras :
Re: Personagem dar apenas um pulo
https://docs.unity3d.com/ScriptReference/Physics.Raycast.html
Daniel Pires da Silva- Avançado
- PONTOS : 2753
REPUTAÇÃO : 37
Idade : 20
Áreas de atuação : Cursando C#
Respeito as regras :
Tópicos semelhantes
» Bug no pulo do personagem
» Como fazer o personagem me atacar e fazer o personagem morrer??
» Como usar um personagem low poly como personagem jogavel
» (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.
» Como fazer o personagem me atacar e fazer o personagem morrer??
» Como usar um personagem low poly como personagem jogavel
» (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