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

.SetActive fica dando erro

Na parte de "Jogador.GetComponent().TextoGameOver.SetActive(true);" o ".SetActive(true);" fica dando erro, e aparece essa mensangem "Gravidade Código Descrição Projeto Arquivo Linha Estado de Supressão Erro CS1061 ‘object’ não contém uma definição para "SetActive" e não foi possível encontrar nenhum método de extensão "SetActive" que aceite um primeiro argumento do tipo ‘object’ (você está se esquecendo de usar uma diretiva ou uma referência de assembly?)".

Código controla inimigo

public class ControleInimigo : MonoBehaviour
{
    public GameObject Jogador;
    public float Velocidade = 5;
    // Start is called before the first frame update
    void Start()
    {

    }

    // 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.5)
        {       
            GetComponent<Rigidbody>().MovePosition
                (GetComponent<Rigidbody>().position +
                direcao.normalized * Velocidade * Time.deltaTime);

            GetComponent<Animator>().SetBool("atacando", false);
        }
        else     
        {
            GetComponent<Animator>().SetBool("atacando", true);
        }
    }
    void AtacaJogador()
    {
        Time.timeScale = 0;
        Jogador.GetComponent<ControlaJogador>().TextoGameOver.SetActive(true);
    }
}

Código controla Jogador

public class ControleJogador : MonoBehaviour
{
    public float Velocidade = 10;
    Vector3 direcao;
    public LayerMask MascaraChao;
    public GameObject TextoGameOver;
    // 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);
        }      
    }
    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.y = transform.position.y;

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

    }
}
1 resposta
solução!

Oi, Mateus, tudo bem?

E a variável TextoGameOver está preenchida no Inspector?