Meu personagem parou de andar , sem que eu alterasse ele
2 participantes
Página 1 de 1
Meu personagem parou de andar , sem que eu alterasse ele
Ele estava funcionando normalmente, mas do nada o personagem parou de andar
Eu usei um print pra confirmar algumas coisas, e realmente as variáveis:
Morreu = true;
horizontal = -1 ou 1;
Velocidade = 2 ou 4 ( dependendo se está correndo ou não);
Eu usei um print pra confirmar algumas coisas, e realmente as variáveis:
Morreu = true;
horizontal = -1 ou 1;
Velocidade = 2 ou 4 ( dependendo se está correndo ou não);
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
private Rigidbody2D playerRB;
private float horizontal;
private SpriteRenderer playerSR;
private bool Andando, Pulando, Correndo, Atacando, CanAttack;
private bool Grounded;
private Animator PlayerAnimator;
public GameObject Pe;
public BoxCollider2D Espada;
public LayerMask Ground;
private Animator Anim;
private bool Morreu;
[Header("Atribuição de Valores")]
public Transform A;
public float Velocidade, VelocidadeInicial, VelocidadeBuffada, ForcaPulo, DuracaoDoAtaque;
public int Vida;
void Start()
{
playerRB = GetComponent<Rigidbody2D>();
playerSR = GetComponent<SpriteRenderer>();
CanAttack = true;
PlayerAnimator = GetComponent<Animator>();
Anim = GetComponent<Animator>();
Morreu = false;
}
void Update()
{
PlayerAnimator.SetBool("Morreu", Morreu);
PlayerAnimator.SetBool("Andando", Andando);
PlayerAnimator.SetBool("Grounded", Grounded);
PlayerAnimator.SetBool("Pulando", Pulando);
PlayerAnimator.SetBool("Atacando", Atacando);
Grounded = Physics2D.OverlapCircle(Pe.transform.position, 0.02f, Ground);
horizontal = Input.GetAxisRaw("Horizontal");
if (Morreu == false)
{
playerRB.velocity = new Vector2(horizontal * Velocidade, Pe.transform.position.y);
}
if (Grounded == true)
{
Pulando = false;
}
else
{
Pulando = true;
}
if (Velocidade == VelocidadeBuffada)
{
Correndo = true;
if (Correndo == true && Grounded == true && Atacando == false)
{
Anim.speed = 2;
}
else
{
Anim.speed = 1;
}
}
else {
Correndo = false;
Anim.speed = 1;
}
if (horizontal == 1 && Morreu == false)
{
playerSR.flipX = false;
}
if (horizontal == -1 && Morreu == false)
{
playerSR.flipX = true;
}
if (horizontal != 0)
{
Andando = true;
}
else
{
Andando = false;
}
if (Vida <= 0 && Morreu == false)
{
Morreu = true;
StartCoroutine(Morte());
}
if (Input.GetButton("Correr"))
{
Velocidade = VelocidadeBuffada;
}
else
{
Velocidade = VelocidadeInicial;
}
if (Input.GetButtonDown("Jump") && Grounded == true && Morreu == false) {
Pulo();
}
if (Input.GetButtonDown("Fire1") && CanAttack == true && Morreu == false)
{
CanAttack = false;
StartCoroutine(Ataque());
}
}
void Pulo()
{
Pulando = true;
playerRB.AddForce(new Vector2(0, ForcaPulo));
}
IEnumerator Ataque()
{
if (Pulando == false)
{
Atacando = true;
Espada.enabled = true;
yield return new WaitForSeconds(DuracaoDoAtaque);
Espada.enabled = false;
Atacando = false;
}
if (Pulando == true)
{
Atacando = true;
Espada.enabled = true;
yield return new WaitForSeconds(DuracaoDoAtaque - 0.1f);
Espada.enabled = false;
Atacando = false;
}
CanAttack = true;
}
IEnumerator Morte()
{
yield return new WaitForSeconds(3.5f);
print("Morreu");
}
}
mydaegon- Iniciante
- PONTOS : 1921
REPUTAÇÃO : 0
Respeito as regras :
Re: Meu personagem parou de andar , sem que eu alterasse ele
Verifica Se Outro Script No Seu Projeto Não Está Alterando Algum Valor.
Magnatah- Instrutor
- PONTOS : 3548
REPUTAÇÃO : 209
Idade : 24
Áreas de atuação : Dєรєиvσlvєdσя Wєb(Fяσит-єиd), Blєиdєя, υиiтy, C#, ρнρ є Jαvαรcяiρт.
Respeito as regras :
Re: Meu personagem parou de andar , sem que eu alterasse ele
Além deste script, só tenho mais dois, que um é ligado ao inimigo tomar dano e outro sobre a barra de vida, eles não tem qualquer ligação com o personagem. quando eu coloquei para printar, eu vi que tudo para o velocity funcionar estava correto, mas no print o velocity estava dando ( 0, 0); acredito que seja algo na unity que fez com que isso acontecesse
mydaegon- Iniciante
- PONTOS : 1921
REPUTAÇÃO : 0
Respeito as regras :
Re: Meu personagem parou de andar , sem que eu alterasse ele
Obrigado pela ajuda, descobri o que era. Dentro do animator do meu personagem a opção Apply Root Motion estava habilitada.
mydaegon- Iniciante
- PONTOS : 1921
REPUTAÇÃO : 0
Respeito as regras :
Tópicos semelhantes
» Personagem sofre dando e continua de onde parou com condição.
» Personagem olhar para frente ao andar.
» [Ajuda] Blender parou de funcionar
» como faço para o personagem andar só que no ar?
» Como faço pra fazer o meu personagem andar no meu jogo isometrico
» Personagem olhar para frente ao andar.
» [Ajuda] Blender parou de funcionar
» como faço para o personagem andar só que no ar?
» Como faço pra fazer o meu personagem andar no meu jogo isometrico
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos