Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] Quando dou um play na minha cena, o jogo trava e aparece esse erro no console: "UnassignedReferenceException : The variable Jogador of ControlaInimigo has not been assigned. (Assets/scripts/ControlaInimigo.cs:26)"

public class ControlaInimigo : MonoBehaviour {

public GameObject Jogador;
public float Velocidade = 5;

//Use this for initialization
void start()
{
    Jogador = GameObject.FindWithTag("Jogador");
}


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

}

    void FixedUpdate()
{
    float distancia = Vector3.Distance(transform.position, Jogador.transform.position);

    Vector3 direcao = Jogador.transform.position - transform.position;

    Quaternion novaRotacao = Quaternion.LookRotation(direcao);
    GetComponent<Rigidbody>().MoveRotation(novaRotacao);

    if (distancia > 2)
    {
        GetComponent<Rigidbody>().MovePosition
       (GetComponent<Rigidbody>().position +
       direcao.normalized * Velocidade * Time.deltaTime);


        GetComponent<Animator>().SetBool("Atacando", false);
    }
    else
    {
        GetComponent<Animator>().SetBool("Atacando", true);
    }
}

    void AtacarJogador ()
{
    Time.timeScale = 0;
    Jogador.GetComponent<ControlaJogador>().TextoGameOver.SetActive(true);
    Jogador.GetComponent<ControlaJogador>().Vivo = false;
}

}

1 resposta
solução!

Oi, Adrian, tudo bem?

Em programação (a depender da linguagem) coisas com maiúsculo e minúsculo fazem a diferença por exemplo, se declararmos a variável Jogador e jogador para o C# as duas seriam coisas diferentes.

Como o código de grande parte que usamos é da Unity a gente tem que tomar cuidado com isso, a variável não está preenchendo porque o método start está minúsculo e a Unity roda automaticamente somente o Start maiúsculo.

Bons estudos!