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

Unity, problema com colisão mesmo usando o script exato do professor

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

public class ControlaJogador : MonoBehaviour
{

    public float Velocidade = 10;
    Vector3 direcao;

    void Update()
    {
        //Inputs do Jogador - Guardando teclas apertadas
        float eixoX = Input.GetAxis("Horizontal");
        float eixoZ = Input.GetAxis("Vertical");

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

        //Animações do Jogador
        if (direcao != Vector3.zero)
        {
            GetComponent<Animator>().SetBool("Movendo", true);
        }
        else
        {
            GetComponent<Animator>().SetBool("Movendo", false);
        }
    }

    void FixedUpdate()
    {
        //Movimentação do Jogador por segundo
        GetComponent<Rigidbody>().MovePosition
            (GetComponent<Rigidbody>().position +
            (direcao * Velocidade * Time.deltaTime));
    }
}
13 respostas

Oi, André, que tipo de problema? Pode explicar melhor?

Se eu colocar esse script exatamente como está na aula, O boneco não consegue se mover nas setas ou wasd e fica na animação como se estivesse correndo e se eu colocar o script anterior ele encosta na box collider, fica um pouco mais lento e consegue passar

Quando você abre o console (pode ser aberto no menu window > console) aparece algum erro quando você dá o play?

The referenced script (controlaJogador) on this Behaviour is missing! The referenced script on this Behaviour (Game Object 'Jogador') is missing! The referenced script on this Behaviour (Game Object 'Jogador') is missing! The referenced script on this Behaviour (Game Object 'Jogador') is missing! Aparece isso quando dou play, com um sinal de exclamação

solução!

O script parece correto então parece ser alguma coisa no Inspector que está faltando. Pelas erros meus palpites para conferir seriam:

  • O jogador está sem o component de Rigidbody
  • O inimigo não está com a variável Jogador preenchida

Você pode clicar duas vezes nos erros para ser levado até o problema no script e aí verificar isso no Inspector. Se não conseguir resolver pode fazer um .zip do seu projeto e subir num Google Drive, Dropbox, etc que damos uma olhada :)

Achei o problema se eu modificar a velocidade no script ou no inspector o jogador simplismente atravessa tudo, tem alguma solução para isso? O único número que funciona para velocidade é: 10

public float Velocidade = 10;

Oi, André, quer fazer um zip do seu projeto pra darmos uma olhada?

Como faço zip do projeto e subo para o drive?

Você vai clicar com o botão direito na pasta. Depois em "enviar para" e em comprimir.

Aí só só subir no Google Drive como publico e mandar o link

Oi, André, o projeto é a pasta toda. Só com o arquivo game não teria como porque seus prefabs vão estar de um jeito novo, então não tem como prever.

Teria que ser a pasta toda mesmo com tudo

Oi, André, você conseguiu resolver?

Baixei aqui mas parece estar tudo certo com a movimentação.