3
respostas

Não consigo resolver esse erro

NullReferenceException: Object reference not set to an instance of an object ControlaInimigo.FixedUpdate () (at Assets/Scripts/ControlaInimigo.cs:37)

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

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

        Quaternion novaRotacao = Quaternion.LookRotation(direcao);

37 ->        rigidbodyInimigo.MoveRotation(novaRotacao);

        if (distancia > 2.5)
        {
            rigidbodyInimigo.MovePosition(
                rigidbodyInimigo.position + 
                direcao.normalized * Velocidade * Time.deltaTime
            );
            animatorInimigo.SetBool("Atacando", false);
        }
        else
        {
            animatorInimigo.SetBool("Atacando", true);
        }
    }
3 respostas

Olá, provavelmente o objeto rigidbodyInimigo não está sendo preechido, tenta colocar ele public e ver no inspector se tá funcionando direitinho.

Tornando a variável public retorna o seguinte erro no inspetor

UnassignedReferenceException: The variable rigidbodyInimigo of ControlaInimigo has not been assigned. You probably need to assign the rigidbodyInimigo variable of the ControlaInimigo script in the inspector. UnityEngine.Rigidbody.MoveRotation (UnityEngine.Quaternion rot) (at :0) ControlaInimigo.FixedUpdate () (at Assets/Scripts/ControlaInimigo.cs:37)

Então lá no start a variável não tá sendo preenchida, quer colocar o resto do script?