Solucionado (ver solução)
Solucionado
(ver solução)
34
respostas

Personagem não fica parado

Quando eu movimento meu personagem ele continua ses movimentando, ainda consigo controla-lo pelas teclas, mas não mantê-lo parado quando paro de mexer nas teclas.

34 respostas

Oi, Gustavo, tudo bem?

Pode me dar mais informações? O que não para é a animação ou ele continua andando sozinho pelo cenário?

Como está seu código?

Ele continua andando pelo cenário

Como está seu código?

este é meu código: using System.Collections; using System.Collections.Generic; using UnityEngine;

public class NewBehaviourScript : MonoBehaviour {

public float Velocidade = 10;
// Update is called once per frame
void Update(){

    float eixoX = Input.GetAxis("Horizontal");
    float eixoZ = Input.GetAxis("Vertical");

    Vector3 direcao = new Vector3(eixoX, 0, eixoZ);

    transform.Translate(direcao * Velocidade * Time.deltaTime);

}

}

Não parece ser nada no seu código. O personagem só tem esse código mesmo?

Faz o seguinte gera um .zip de toda a sua pasta Assets da Unity, você abre a pasta que está o projeto e zipa somente a pasta assets.

Depois você pode subir um sistema qualquer de upload de arquivos como Dropbox, Google Drive, etc, só lembra de deixar o compartilhamento público pra qualquer pessoa poder acessar e manda pra gente que damos uma olhada aqui :)

Acho que você mandou o arquivo, pode dar uma olhada?

Esse arquivo não tem nenhuma cena nem os scripts, parecem ser os iniciais do curso.

Vou tentar outro método, em alguns minutos eu lhe envio

Esse segundo parece o mesmo arquivo, você não quer gerar um novo?

Faz o zip do projeto todo então, incluindo a pasta Library, Packages, etc

Oi, Gustavo, tudo bem? continua o zip da pasta Assets

Faz um zip de todo o seu projeto, pega a pasta onde você criou o seu projeto e faz um .zip dela.

Pra saber se está na pasta correta a pasta do seu projeto dentro dela terá as pastas Assets, Library, ProjectSettings, entre outras.

Se tiver dificuldade pra encontrar na Unity Hub antes de abrir seu projeto você pode clicar no botão "..." no final da linha com nome do seu projeto e pedir para mostrar a pasta.

Estou com problemas, quando faço uma pasta zip ela não aparece na opção de upload para o drive. Mostra apenas as pastas do inicio do curso.

Tenta só arrastar o zip para uma dessas pastas, talvez dê certo. Só vai demorar um pouco porque o projeto costuma ter uns 300mb

Oi, Gustavo, tudo bem?

Olhei seu projeto e não notei esse problema dele estar se movendo, o que notei é que a animação de correr fica tocando e a personagem fica parada mas correndo. É esse o problema?

Também, mas o problema inicial é que ele continua se movendo pelo mapa

Pode ser alguma configuração do Hub da Unity que faz com que ele continue se movendo?

Isso aconteceu outras vezes? Parou de ocorrer?

O que pode acontecer é de repente você dar play no jogo estar se movendo e clicar fora da tela de game pra fazer outra coisa talvez a Unity não tenha interpretado que você parou de apertar mas não é comum de acontecer.

Continua ocorrendo, dentro da tela de game. É como se ele estivesse patinando, recebe um impulso e depois continua se movimentando

Tá acontecendo comigo também, se meu personagem tem alguma colisão com algum inimigo, fica patinando depois. Não quero que meu personagem morra com um único ataque, então depois de sofrer o primeiro ataque eu não pauso o jogo e ele começa a ser empurrado pelos zumbis.

(Não sei se eu deveria criar um novo tópico para ter resposta personalizada ou responder no tópico do mesmo tema. Fiz o segundo, mas posso separar se necessário)

Gustavo, tenta continuar com o curso porque vamos melhorar a parte da movimentação e o problema deve ser resolvido. Se não for pode postar aqui no forum que estou por aqui :)


Gabriel, no seu caso acho que você já melhorou o movimento usando Rigidbody, isso é algo que vamos ver mais a frente mas aqui segue algo que pode te ajudar:

Você pode aumentar um pouco aquele número de 2.5 para fazer a personagem e o zumbi não se tocar Aumentar a massa da personagem no Rigidbody para algo como 100, aumentar o drag e o linear drag para 1 ou valor próximo assim o personagem desacelera muito mais rápido

Ok, obrigado

O personagem continua com a falha, e acrescentou outros problema no qual a camera não está seguindo o personagem Este é o código:

public float Velocidade = 10; Vector3 direcao;

// Update is called once per frame
void Update(){

    float eixoX = Input.GetAxis("Horizontal");
    float eixoZ = Input.GetAxis("Vertical");

    direcao = new Vector3(eixoX, 0, eixoZ);




    if (direcao != Vector3.zero)
    {
        GetComponent<Animator>().SetBool("Movendo", true);
    }
    else
    {
        GetComponent<Animator>().SetBool("Movendo", false);
    }
}

private void FixedUpdate()
{
    GetComponent<Rigidbody>().MovePosition
       (GetComponent<Rigidbody>().position +
       (direcao * Velocidade * Time.deltaTime));
}

}

Este é o código que controla a camera:

public class ControlaCamera : MonoBehaviour{

public GameObject Jogador;
Vector3 distCompensar;

// Start is called before the first frame update
void Start(){
    distCompensar = transform.position - Jogador.transform.position;

}

// Update is called once per frame
void Update(){

    transform.position = Jogador.transform.position + distCompensar;
}

}

Você preencheu no Inspector a variável Jogador da camera?

Agora para arrumar o personagem você pode fazer o mesmo que o Gabriel:

Você pode aumentar um pouco aquele número de 2.5 para fazer a personagem e o zumbi não se tocar Aumentar a massa da personagem no Rigidbody para algo como 100, aumentar o drag e o linear drag para 1 ou valor próximo assim o personagem desacelera muito mais rápido

Uma outra coisa que você pode fazer é conferir o valor da variável direção no script de Update fazendo como:

direcao = new Vector3(eixoX, 0, eixoZ);
Debug.Log("Movimento x: " + eixoX + "  |  " + "Movimento z: " + eixoZ);

Então no seu console vai aparecer os valores quando aperta as teclas, eles tem que ir de -1 a 1 em X e em Z e quando solta a tecla voltar para 0.

Confere se tá voltando pra zero ou acontecendo outra coisa, pode ser que o teclado esteja travando ou algo assim.

Obrigado, Henrique.

Melhorou bastante com o aumento da massa (100) - os zumbis têm mais dificuldade de empurrar, do drag (2) e angular drag (1). Não achei "linear drag". Agora mesmo que eu fique próximo de onde é gerado o zumbi e isso cause um empurrão, meu personagem para mais rápido e fica algo mais natural, não fica deslizando por muito tempo sem que eu mova as setas.

Fiz as alterarções, os números variam de 1 à -1, mas o problema persiste

Gustavo, mas eles voltam para zero quando solta tudo?

Não. Fica sempre em outro número

solução!

Então ou é alguma coisa errada na config de input ou no teclado que tá travando a tecla.

No seu projeto apaga a basta Library e Project settings com a Unity fechada e abre de novo veja se isso resolve.

Seu teclado trava alguma tecla quando você aperta elas rápido, já notou algo?

Ok, vou tentar. Não nunca travou

Funcionou, muito obrigado Henrique.

Eita! Essa foi difícil de encontrar ein! O bom é que agora você aprendeu um punhado de coisas pra olhar.

Provavelmente na parte do Editor de Input tinha algo trocado.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software