Erro na movimentação
2 participantes
Página 1 de 1
Erro na movimentação
Olá, estou com um problema. Meu joguinho é 2d, fiz a movimentação onde ele corre e pula, normal. Depois decidi criar a animação onde ele atira. Criei os parametros, liguei as transiçoes la no animator, tudo certo. Ai no script tentei usar o mesmo metodo do sistema do pulo.
Porém quando eu aperto z, o personagem começa a executar a animação e só para se eu pular e no alto apertar z. Bom resumindo o que eu quero. Quando o player estiver no chão e apertar z, ele vai começar a executar a animação de atirar, apenas se estiver no chão.
O video q fiz do problema. Aos 0:13 eu aperto z e então o player não faz outra animação se não a de atirar, quando aperto as teclas ou quando aperto x, ele não executa a animação de andar ou de pular.Ele so volta ao normal, quando pulo e aperto o botao de atirar no alto, ai ele volta para a animação do pulo e quando toca no chão volta para a de idle.
Help!!!!!(Provavelmente esse problema é por que eu fiz alguma cagada, não sei programar direito ainda).
- Código:
using UnityEngine;
using System.Collections;
public class PlayerBehaviour : MonoBehaviour {
public float speed=2;
private Animator anim;
private Rigidbody2D rgd2;
public Transform ground;
private bool isGround;
void Start () {
rgd2 = GetComponent<Rigidbody2D> ();
anim = GetComponentInChildren<Animator> ();
}
void Update () {
Moviment ();
}
private void Moviment()
{
isGround = Physics2D.Linecast (transform.position,ground.position,1 << LayerMask.NameToLayer ("Ground"));
//mexendo com a rotacao do sprite
if (Input.GetAxis ("Horizontal") < 0)
{
transform.Translate(Vector2.right * speed *Time.deltaTime);
anim.SetFloat("walk",Mathf.Abs(Input.GetAxis("Horizontal")));
transform.eulerAngles = new Vector2 (0, 180);
} else
if (Input.GetAxis ("Horizontal") > 0)
{
transform.Translate(Vector2.right * speed *Time.deltaTime);
anim.SetFloat("walk",Mathf.Abs(Input.GetAxis("Horizontal")));
transform.eulerAngles = new Vector2 (0, 0);
}
Jump ();
Atirar ();
}
private void Jump()
{
if (isGround != false && Input.GetKey (KeyCode.X)) {
anim.SetBool("jump",!isGround);
rgd2.AddForce (Vector2.up * 500);
} else {
anim.SetBool("jump",!isGround);
}
}
private void Atirar()
{
if ( Input.GetKey (KeyCode.Z)) {
anim.SetBool ("atirar", isGround);
}
}
}
Porém quando eu aperto z, o personagem começa a executar a animação e só para se eu pular e no alto apertar z. Bom resumindo o que eu quero. Quando o player estiver no chão e apertar z, ele vai começar a executar a animação de atirar, apenas se estiver no chão.
O video q fiz do problema. Aos 0:13 eu aperto z e então o player não faz outra animação se não a de atirar, quando aperto as teclas ou quando aperto x, ele não executa a animação de andar ou de pular.Ele so volta ao normal, quando pulo e aperto o botao de atirar no alto, ai ele volta para a animação do pulo e quando toca no chão volta para a de idle.
Help!!!!!(Provavelmente esse problema é por que eu fiz alguma cagada, não sei programar direito ainda).
jaojao- Iniciante
- PONTOS : 3321
REPUTAÇÃO : 0
Re: Erro na movimentação
Acho que o erro está no seu animator e não no script...
Dê uma olhada:
Você criou um estado de volta para a animação de atirar??? Tipo, quando a bool for falsa, voltar a algum estado default
Dê uma olhada:
Você criou um estado de volta para a animação de atirar??? Tipo, quando a bool for falsa, voltar a algum estado default
Re: Erro na movimentação
Da uma olhada no animator, criei uma transição voltando ne todos.
jaojao- Iniciante
- PONTOS : 3321
REPUTAÇÃO : 0
Re: Erro na movimentação
Ai entra o problema da sua lógica
em nenhum momento você deixou a booleana da animação falsa, para a animação poder voltar ao estado default
E outra coisa... Por que você está relacionando o seu comando de atirar com "isGround"???
Tente isto:
em nenhum momento você deixou a booleana da animação falsa, para a animação poder voltar ao estado default
E outra coisa... Por que você está relacionando o seu comando de atirar com "isGround"???
Tente isto:
- Código:
private void Atirar(){
if ( Input.GetKey (KeyCode.Z)) {
anim.SetBool ("atirar", true);
}else{
anim.SetBool ("atirar", false);
}
}
Re: Erro na movimentação
Eita, antes de ver esse seu comentario eu estava vendo o script e fiz exatamente isso que vc colocou hahahaha, bom, meio que "resolveu", um probleminha que ainda tem é que, se enquanto eu estiver atirando, seu eu apertar as setas o personagem vai pra frente ou pra tras enquanto executa a anim de atirar,fica bem tosco. A ideia era, quando o z fosse pressionado, o perso executaria a anim de atirar e não conseguiria executar mais nenhuma enquanto n soltasse o z.
jaojao- Iniciante
- PONTOS : 3321
REPUTAÇÃO : 0
Re: Erro na movimentação
Tentei de um jeito simples, coloquei que caso fosse apertado z, o speed, que trata a velocidade do player, seria igual a zero, else, voltaria a velocidade normal, ai no caso "resolveu", porem maiiis um probleminha, caso eu esteja apertando a seta para o player andar, e apertar o z mantendo a seta pressionada, o player para(ja que o speed vai estar igual a 0),porem a animação de andar continua, o player anda sem sair do lugar. Ai no caso so posso ativar a anim de atirar se o player estiver parado.
jaojao- Iniciante
- PONTOS : 3321
REPUTAÇÃO : 0
Re: Erro na movimentação
Você vai poder andar ou pular enquanto atira?
OBS: olhe as regras do fórum... edite o post em vez de comentar denovo
OBS: olhe as regras do fórum... edite o post em vez de comentar denovo
Re: Erro na movimentação
Não. Mas enfim, resolvi, deu certo colocando true ou false, é que eu tinha deletado as transiçoes de atirar pra walk e jump. Agora se eu apertar z ele imediatamente para e executa a anim de atirar. Ainda tenho um probleminha com o pulo, mas ja enchi seu saco demais né rsrs. Brigadão cara :D
jaojao- Iniciante
- PONTOS : 3321
REPUTAÇÃO : 0
Tópicos semelhantes
» Erro na Movimentação
» Erro Movimentação RPG
» erro erro e mais erro script de craft
» Erro Codigo de movimentação.
» Erro ao abrir projeto ( Fatal Erro )
» Erro Movimentação RPG
» erro erro e mais erro script de craft
» Erro Codigo de movimentação.
» Erro ao abrir projeto ( Fatal Erro )
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos