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

Sobre os códigos da unity eles não estão funcionando.

Eu cheguei na parte do curso em que se controla o personagem com WASD mas eu já coloquei esse código até copiei e colei e não está tendo jeito de funcionar. Acho que ele não esta reconhecendo o código Input.GetAxis porque ele não corrige o código e não chega a ficar colorido. Podem me ajudar?

5 respostas

Olá Daniel, poderia colocar o seu código aqui? Assim podemos analisar o que pode estar acontecendo.

Tenta isso :

if( Input.GetAxis("Horizontal") >0){ // esquerda tecla D
    console.log("D"); //os consoles.log servem para debugar, sendo assim você pode testar se a tecla está funcionando
}


if( Input.GetAxis("Horizontal") <0){ // direita tecla A
    console.log("A");
}


if( Input.GetAxis("Vertical") <0){ // baixo tecla S
    console.log("S");
}

if( Input.GetAxis("Vertical") >0){ // Cima tecla W
    console.log("w");
}
//---------------------------------------------------------
outro  jeito é :
Desta forma você passa para a Unity as teclas que você quer usar
if(input.getKey("a")){
    console.log("A");
}
if(input.getKey("d")){
    console.log("D");
}
if(input.getKey("s")){
    console.log("S");
}
if(input.getKey("w")){
    console.log("w");
}


Este é o código

public class ControlaJogador : MonoBehaviour {

// 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);

}

}

tenta isso

    private float eixoX ;
    private float eixoZ;
    private Vector3 direcao;
void Start(){
}
void Update(){
    direcao = transform.position; // pega e atualiza sua posicao atual
    direcao.x += Input.GetAxis("Horizontal") * Time.deltaTime; // se você apertar para o lado ele adiciona o valor na sua posicao atual 
    direcao.z += Input.GetAxis("Vertical")* Time.deltaTime; 
    transform.position = direcao; // seta a posicao no personagem

}

ou


    private float velocidade = 10;
void Start(){
}
void Update(){

if( Input.GetAxis("Horizontal") >0){ // esquerda tecla D
  transform.Translate(velocidade * Time.deltaTime,0,0);
}


if( Input.GetAxis("Horizontal") <0){ // direita tecla A
    transform.Translate(-velocidade * Time.deltaTime,0,0);
}


if( Input.GetAxis("Vertical") <0){ // baixo tecla S
    transform.Translate(0,0,-velocidade * Time.deltaTime);
}

if( Input.GetAxis("Vertical") >0){ // Cima tecla W
    transform.Translate(0,0,velocidade * Time.deltaTime);
}
}



solução!

Não sei o que aconteceu mas eu tentei de novo um código e funcionou.