Problema com Addforce no pulo HELP
2 participantes
Página 1 de 1
Problema com Addforce no pulo HELP
E ai galera, primeiro post ai desculpe se tiver algum problema..
Seguinte, estou desenvolvendo um joguinho básico, e o que está me irritando e que em alguma ocasiões quando o player vai pular e adicionada muiiiita força, como se do nada a variável de força alterasse o valor no meio do jogo, já tentei vários métodos tentando resolver e nada,
Seguinte, estou desenvolvendo um joguinho básico, e o que está me irritando e que em alguma ocasiões quando o player vai pular e adicionada muiiiita força, como se do nada a variável de força alterasse o valor no meio do jogo, já tentei vários métodos tentando resolver e nada,
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;
public class Player : MonoBehaviour
{
private Rigidbody2D rb2D;
private Animator animator;
private bool eLadoDireito;
public LayerMask plataforma;
public Vector2 pontoColisaoPiso = Vector2.zero;
public bool estaNoChao;
public float raio;
public Color debugCorColisao = Color.red;
public float forcaPulo = 200;
[SerializeField]
private float velocidade = 0;
float horizontal;
public GameObject vida;
public int maxVida;
private int vidaAtual;
// Use this for initialization
void Start()
{
rb2D = GetComponent<Rigidbody2D>();
animator = GetComponent<Animator>();
eLadoDireito = transform.localScale.x > 0;
//Vida
vidaAtual = maxVida;
vida.GetComponent<GUIText>().color = new Vector4(0.0f, 0.0f, 0.0f, 1f);
vida.GetComponent<GUIText>().text = " x" + vidaAtual;
}
// Update is called once per frame
void FixedUpdate()
{
horizontal = Input.GetAxis("Horizontal");
Movimentar(horizontal);
mudarDirecao(horizontal);
EstaNoChao();
ControlarLayers();
ControlarEntradas();
}
private void Cair()
{
if (!estaNoChao && rb2D.velocity.y <= 0)
{
animator.SetBool("cair", true);
animator.ResetTrigger("pular");
}
if (estaNoChao)
{
animator.SetBool("cair", false);
}
}
private void ControlarEntradas()
{
if (Input.GetButtonDown("Jump"))
{
gameObject.GetComponent<AudioSource>().Play();
Pular();
}
}
void ControlarLayers()
{
if (!estaNoChao)
{
animator.SetLayerWeight(1, 1);
}
else
{
animator.SetLayerWeight(1, 0);
}
}
private void EstaNoChao()
{
var pontoPosicao = pontoColisaoPiso;
pontoPosicao.x += transform.position.x;
pontoPosicao.y += transform.position.y;
estaNoChao = Physics2D.OverlapCircle(pontoPosicao, raio, plataforma);
Cair();
}
private void Movimentar(float h)
{
rb2D.velocity = new Vector2(h * velocidade, rb2D.velocity.y);
animator.SetFloat("velocidade", Mathf.Abs(h));
if (rb2D.velocity.y == 0)
{
rb2D.gravityScale = 1f;
}
}
private void mudarDirecao(float horizontal)
{
if (horizontal > 0 && !eLadoDireito || horizontal < 0 && eLadoDireito)
{
eLadoDireito = !eLadoDireito;
transform.localScale = new Vector3(-transform.localScale.x, transform.localScale.y, transform.localScale.z);
}
}
void OnDrawGizmos()
{
Gizmos.color = debugCorColisao;
var pontoPosicao = pontoColisaoPiso;
pontoPosicao.x += transform.position.x;
pontoPosicao.y += transform.position.y;
Gizmos.DrawWireSphere(pontoPosicao, raio);
}
private void Pular()
{
rb2D.gravityScale = 2f;
if (estaNoChao)
{
animator.SetTrigger("pular");
rb2D.AddForce(new Vector2(0, forcaPulo));
}
}
void OnCollisionStay2D(Collision2D colisor)
{
if (colisor.gameObject.name == "Player")
{
colisor.gameObject.transform.parent = transform;
}
}
void OnCollisionExit2D(Collision2D colisor)
{
if (colisor.gameObject.name == "Player")
{
colisor.gameObject.transform.parent = null;
}
}
public void PerdeVida()
{
vidaAtual -= 1;
if (vidaAtual == 0)
{
SceneManager.LoadScene("GameOver");
}
vida.GetComponent<GUIText>().text = " x" + vidaAtual;
}
public void RecuperaVida()
{
vidaAtual += 1;
vida.GetComponent<GUIText>().text = " x" + vidaAtual;
}
}
juniors360- Iniciante
- PONTOS : 2777
REPUTAÇÃO : 0
Respeito as regras :
Weslley- Moderador
- PONTOS : 5727
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: Problema com Addforce no pulo HELP
Vlw, testando aki... mais acho que deu certo...
juniors360- Iniciante
- PONTOS : 2777
REPUTAÇÃO : 0
Respeito as regras :
Tópicos semelhantes
» Problema com Platform Effector 2D e AddForce
» Problema Script de Pulo
» Problema Script de Pulo usando Mouse. Help
» rigidbody2D,movimento direita, esquerda, pulo,, problema
» Não consigo usar o .AddForce Unity
» Problema Script de Pulo
» Problema Script de Pulo usando Mouse. Help
» rigidbody2D,movimento direita, esquerda, pulo,, problema
» Não consigo usar o .AddForce Unity
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos