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

Texto não aparece quando zumbi ataca

Olá, me ajudem a encontrar o erro em que o texto não aparece, todo o script está OK, mas quando vou ver o console não aparece nada.

19 respostas

Oi, Frederick, tudo bem?

Não tem nenhum erro no console? Que texto que não aparece?

E pode postar o script aqui que damos uma olhada.

controlaJogador:using System.Collections;using System.Collections.Generic; using UnityEngine;

public class controlaJogador : 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 = 0;

        Quaternion novaRotacao = Quaternion.LookRotation(posicaoMiraJogador);

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

}

}

ZumbiPersegueJogador: using System.Collections;using System.Collections.Generic; using UnityEngine;

public class ZumbiPersegueJogador : 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);
}

}

A variável TextoGameOver está preenchida? Quando você só ativa normalmente pela cena ele aparece?

Aparece algum erro no console quando o inimigo ataca?

A váriavel TextoGameOver não está preeenchida, porque deu erro quando fui testar o script(pois como estava no vídeo já estava funcionando, sem você ter preenchido nada na váriavel), não, ele não aparece mesmo pela cena e quando o inimigo ataca não aparece nenhum erro no console.

Não entendi, tem erro ou não tem erro?

Faz o seguinte, cria um .zip do seu projeto todo (tem que ser um .zip senão o arquivo fica ruim de baixar) e sobe num google drive, dropbox, ou algo assim que é possível compartilhar arquivo e aí damos uma olhada por aqui :)

Lembre-se de deixar o compartilhamento do arquivo publico para que possamos baixá-lo.

Mas como faz um .zip?

Se for no Windows basta clicar com o botão direito na pasta ir em Enviar para > Comprimir (zip)

Olá, ja está zipado na minha pasta google drive. se puder me passar o email, te envio.

Oi, Frederick, tudo bem?

Você pode clicar com o botão direito e na parte de compartilhar deixar o acesso do link publico e colocar ele aqui :)

Precisa ser um .zip da pasta do projeto todo, o arquivo .unity somente não é nada porque a configuração fica nos objetos que estão na pasta de projects então precisa ser um .zip da pasta do projeto completa

Olá, você poderia fazer acesso remoto?

Oi, Frederick, infelizmente não conseguimos dar esse tipo de suporte.

Você não consegue zipar a pasta para darmos uma olhada?

Na Unity Hub na parte de Projects você vai clicar nos três pontinhos do lado do nome do projeto. Em seguida em Show in File Browser, essa é a pasta do seu projeto. Então você faz um .zip e fazer o mesmo processo do google drive.

Mas quando termina de zipar, aparece: Arquivo não encontrado ou nenhuma permissão de leitura.

A Unity tá fechada na hora de fazer o .zip? Se não tiver lembra de fechar tudo, Unity Hub e Unity para não dar problemas.

Se não for isso pode ser erro de permissão do arquivo, tenta zipar somente a pasta Assets.

solução!

Oi, Frederick, dei uma olhada aqui vamo lá!

  • Primeira coisa é ir no seu jogador e na variável Texto Game Over no inspector arrastar seu texto
  • Depois disso você vai no texto e se você der uma olhada ele tá desativado certo? Essa parte tá certinha. Mas um mais embaixo você vai ver que o componente de Text (embaixo de Canvas Renderer) também está desativado, esse você vai ativar. O que tem que ficar desativado é só o objeto lá em cima perto no nome, esse componente você deixa ativado porque ele que faz o texto aparecer na tela

Feito essas duas coisas seu texto já está funcionando porque a lógica já estava toda correta :)

Obrigado, deu certo

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software