Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
21
respostas

Erro grande: Jogador fica no ar.

Estou com um problema grande ao escrever o código irei demonstrar o erro em vídeo a seguir: https://streamable.com/8offhi

21 respostas

Oi, Teodoro, tudo bem?

Zera a posição em Y do seu Jogador pra ver se o problema se resolve.

Mas pelo problema parece que algum dos objetos dentro do prefab está com a posição errada, se quiser você pode baixar o prefab da aula de novo e substituir com o seu.

Como posso substituir?

Você pode pegar os arquivos do inicio do curso ou ao final de cada módulo tem o link para download e jogar no seu projeto refazendo a configuração de scripts, e outras coisas depois

https://prnt.sc/26m1931 Está dando esse erro, sabe o que é?

Deve ter faltado alguma chave ou algo nesse script, quer colocar ele aqui?

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

public class ControlarOJogador : MonoBehaviour
{


    public float Velocidade = 10;
    Vector3 direcao;
    public LayerMask MascaraChao;
    // 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));

        Ray raio = Camera.main.ScreenPointToRay(Input.mousePosition);
        Debug.DrawRay(raio.origin, raio.direction * 100, Color.red);

        RaycastHit impacto;

        if (Physics.Raycast(raio, out impacto, 100, MascaraChao))
        {
            Vector3 posicaoMiraJogador = impacto.point - transform.position;

            posicaoMiraJogador = transform.position;

            Quaternion novaRotacao = Quaternion.LookRotation(posicaoMiraJogador);

            GetComponent<Rigidbody>().MoveRotation(novaRotacao);
        }
    }
    }
}

É este

Parece ter uma chave a mais depois do FixedUpdate, pode conferir?

https://prnt.sc/26mioo7 ´dá esses erros.

Cola todos os erros aqui, aí a gente consegue conferir cada um

Mas seu script não tava funcionando antes, o que mudou do vídeo pra cá? você criou um script novo?

Assets\ControlarOJogador.cs(52,36): error CS1519: Invalid token '(' in class, struct, or interface member declaration Assets\ControlarOJogador.cs(52,37): error CS8124: Tuple must contain at least two elements. Assets\ControlarOJogador.cs(52,38): error CS1519: Invalid token '.' in class, struct, or interface member declaration Assets\ControlarOJogador.cs(52,63): error CS1001: Identifier expected Assets\ControlarOJogador.cs(54,5): error CS1022: Type or namespace definition, or end-of-file expected Assets\ControlarOJogador.cs(55,5): error CS1022: Type or namespace definition, or end-of-file expected Assets\ControlarOJogador.cs(56,1): error CS1022: Type or namespace definition, or end-of-file expected

Quando eu tiro o { do FixedUpdate.

Assets\ControlarOJogador.cs(56,1): error CS1022: Type or namespace definition, or end-of-file expected

Quando tá com o {

não é o { é a chave de } depois do FixedUpdate tem duas de }

tem que tirar 1 desse: }

isso aí!

Assets\Prefabs\Scripts\ControlarOJogador.cs(31,18): error CS0111: Type 'ControlarOJogador' already defines a member called 'FixedUpdate' with the same parameter types Assets\Prefabs\Scripts\ControlarOJogador.cs(11,10): error CS0111: Type 'ControlarOJogador' already defines a member called 'Update' with the same parameter types Assets\Prefabs\Scripts\ControlarOJogador.cs(5,14): error CS0101: The namespace '' already contains a definition for 'ControlarOJogador'

deu esses erros

É porque tem dois scripts iguais, acho que você duplicou esse script.

Tem um em assets e outros na pasta prefab

https://streamable.com/qpcn8q Este erro dos } concertado! Mas agora o zumbi não rotaciona (vi pelo vídeo).

Acho que deve ter faltado configurar no script a MascaraChao e a tag Jogador no objeto. Dá uma conferida nesses.

https://prnt.sc/26mlsda Agora dá esse erro.

solução!

Tem dois scripts no seu componente que não existem, você deve ter pego o da aula que estava mais avançado certo?

Então tem que apagar os meus componentes porque seus scripts tem nomes diferentes.

Tudo resolvido, obrigado por toda ajuda!