39
respostas

meu curso esta desatualizado os comandos não são os mesmos portanto eu não consigo desenvolver meu jogo

Estava lá fazendo o curso seguindo passo a passo e do nada deu um erro tentei resolver e não conseguia, então fui pesquisar no youtube para ver se encontrava uma resposta e descobri que os codigos estavam errados/desatualizados

39 respostas

Oi, Miguel, algumas coisas na interface tiveram modificações mas todos os códigos podem permanecer os mesmos.

De que problema você está falando? Pode contar mais detalhes?

Ola! então como eu explico?! Na hora de fazer os comandos de movimentação eu fiz tudo certo como o senhor mostrou nos videos e deu uns erros que eu não consegui resolver, fui pesquisar na internet e la dizia que os comandos mudaram junto com o visualstudio agora estou aki sem saber oque fazer

Olá, Miguel, tudo bem?

É só contar com um pouco mais detalhes o que aconteceu.

Quais comandos você estava executando? Que erros apareceram?

Foi código? Pode colar o código aqui?

public class ControlaJogador : MonoBehaviour {

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

    Input.GetAxis("Horizontal");

    transform.Translate(Vector3.forward);

}

}

public class ControlaJogador : MonoBehaviour {

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

    Input.GetAxis("Horizontal");
    Input.GetAxis("Vertical");

    transform.Translate(Vector3.forward);

}

}

public class ControlaJogador : MonoBehaviour {

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

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

    transform.Translate(Vector3.forward);

}

}

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

}

}

Opa Boa noite estes são os codigos que eu estava tentando executar.

Oi, Miguel, tudo bem?

Abre o Console (Window > Console ou o atalho CTRL+SHIFT+C) e copia os erros que estão aparecendo por lá e cola aqui?

Assim vai dar pra analisar melhor, porque pelos códigos não parece ter nada errado.

Pode ser outra coisa como: arquivos duplicados, ou com o mesmo nome, arquivos onde a classe e o arquivo tem nomes diferentes também não é bom, arquivos sem aqueles using no inicio, entre outras coisas. Aí vendo os erros dá pra ter uma noção melhor.

Boa Noite, isso foi oque apareceu para min quando apertei CTRL+SHIFT+C body { -webkit-font-smoothing: antialiased; } .header, body, html { -webkit-overflow-scrolling: touch; } body, input, select, textarea { font: normal 14px Lato,Arial,sans-serif; } body { min-width: 320px; background-color: #f9fbfd; } body, html { overflow-x: hidden; } *, :after, :before { margin: 0; padding: 0; box-sizing: border-box; } user agent stylesheet body { display: block; margin: 8px; } *, :after, :before { margin: 0; padding: 0; box-sizing: border-box; } *, :after, :before { margin: 0; padding: 0; box-sizing: border-box; }

Oi, Miguel, acho que veio uma outra coisa no seu copia e cola.

Vê se copiou certinho da Unity.

Boa noite, aqui estão os erros que deram Assets\ControlaJogador.cs(8,17): error CS1002: ; expected

Assets\ControlaJogador.cs(12,5): error CS1519: Invalid token '{' in class, struct, or interface member declaration

Assets\ControlaJogador.cs(19,24): error CS1519: Invalid token '(' in class, struct, or interface member declaration

Assets\ControlaJogador.cs(19,32): error CS8124: Tuple must contain at least two elements.

Assets\ControlaJogador.cs(19,33): error CS1519: Invalid token ';' in class, struct, or interface member declaration

Opa Blz!

Nesse script Assets\ControlaJogador.cs copia tudo (dá um ctrl+a pra selecionar tudo e ctrl+c pra copiar) e cola ele inteiro aqui, parece ter um ; ou chaves fora do lugar.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NewBehaviourScript : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()

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

Oi, Miguel, são algumas coisas:

  • o Start() falta as chaves abrindo e fechando ou você pode apagar a linha
  • depois do texto void Update() tem um ; a mais
  • Ao final do Update() está faltando mais uma } que avisa a Unity que terminou o Update
  • A classe e o script tem que ter o mesmo nome como o script chama ControlaJogador.cs a classe precisa chamar ControlaJogador muda pra public class ControlaJogador

Acho que isso sana o problema, qualquer dificuldade estou por aqui.

Boa Noite, consegui corrigir aqui e ainda não foi vou mandar aqui como está agora para o senhor ver se está tudo certinho.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ContolaJogador : ControlaJogador
{
    // Start is called before the first frame update
    void Start()
    // 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);
}

All compiler errors have to be fixed before you can enter playmode! UnityEditor.SceneView:ShowCompileErrorNotification ()

Esse e o erro que está dando agora

Ainda faltam alguns daqueles, eu vou colocar o resultado final de como ficaria aí você só compara e faz a alteração.

O Start tem que abrir e fechar uma chave:

void Start() {
}

O script da Unity é obrigatório herdar de mono behaviour:

public class ContolaJogador : MonoBehaviour

No Update tem uma chave do lado do nome fechando, essa chave deveria estar depois de todos os códigos:

void Update()
    {

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

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

    transform.Translate(direcao);
    }

Lembrando que embaixo ainda vai ter uma segunda chave fechando abaixo dessa que é a chave da classe.

Bons estudos!

Boa Noite eu fiz aqui e ainda não foi vou mandar como está agora para que o senhor possa analizar

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ContolaJogador : MonoBehaviour


    // Start is called before the first frame update
    void Start() {

}




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

Oi, Miguel, confere com carinho porque em programação em linguagens como C# qualquer erro impede você de continuar porque os comandos são avaliados antes de você rodar.

Acima do Update tem { } que não deveria existir e falta fechar mais uma chave embaixo do Update. Também falta embaixo da linha da classe uma chave abrindo.

Ficaria assim o script:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ControlaJogador : MonoBehaviour
{
    // Start is called before the first frame update
    void Start() {
    }

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

Mas de nada adiante eu te dar a resposta o ideal é você ir treinando o olho e para ver esse problemas, o console pode te ajudar a identificar o erro.

Lembre que se você estiver sentindo dificuldade na parte de programação você sempre pode parar esse curso um pouco e pegar um curso somente de linguagem C# para que possa exercitar mais essa parte antes de continuar com esse. Apesar de não ter pré requisito esse curso pode passar a ficar mais interessante com um pouco de conhecimento em C# básico.

Qualquer coisa que precisar estou por aqui

Bom Dia, Consegui aqui muito obrigado!

Agora não esta dando nenhum erro,agora meu personagem não se mexe não e um erro nos codigos ate porque esta dizendo la que esta tudo certo mas ele não se mexe oque eu faço?

using System.Collections; using System.Collections.Generic; using UnityEngine;

public class ContolaJogador : MonoBehaviour {

// Start is called before the first frame update
void Start() { 
}







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

}

O script está na personagem?

Você pode clicar nela e clicar 2 vezes no nome dele no inspector pra garantir que é o script certo que está anexado.

Boa Tarde, quando eu tento por o script no personagem aparece isso "não consigo adicionar o componente de script 'Controla Jogador' porque a classe do script não pode ser encontrada verifique se não há erros de compilação e se o nome do arquivo e o nome da classe correspondem"

Continua com erros nos scripts, Miguel.

O que aparece no console?

Boa Tarde, nada aparece no console a mensagem q eu lhe mostrei ontem ela aparece na minha tela na hora em que eu tento por o script na personagem então nada aparece no console.

Parece que é um espaço no nome do arquivo.

Qual Arquivo?

ControlaJogador, parece ter um espaço no nome do arquivo entre o Controla e Jogador. Em programação não podemos usar esse espaço, especialmente na Unity onde o nome do arquivo e da classe tem que ser iguais.

Não tem nenhum espaço entre Controla e Jogador eu ate reescrevi ControlaJogador novamente e n mudou nada

Não tem outro script além desse?

Nada aparece no console?

Tá meio estranho, quer fazer um .zip do projeto e enviar aqui?

como que eu faço isso um .zip??

Você vai clicar com o botão direito na pasta do projeto, Enviar para > Comprimir, se for Windows 11 quando clicar com o botão direito já vai ter a opção.

Depois você pode subir num Google Drive, Dropbox, ou algo assim e colar o link aqui.

Só lembra de quando subir deixar as opções de compartilhamento como publico pra qualquer pessoa conseguir acessar.

Oi, Miguel, o nome do arquivo não está batendo com o nome da classe. Na classe falta um R em controla.

Boa Tarde, ta falando aqui que o sistema ta aberto em outro computador eu acho que não e no senhor sera possivel alguem ter pego o arquivo??

Pode mandar foto desse erro?

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