Exibir um texto na tela por um tempo
4 participantes
Página 1 de 1
Exibir um texto na tela por um tempo
Gostaria de fazer um texto aparecer depois de colidir com um objeto, sei que é bem simples fazer isso, mas estou com dificuldades por não saber muito de programação.
estava seguindo este tutorial https://www.schultzgames.com/t1030-tutorial-imagem-aparecer-na-tela-por-um-tempo-sustos-notas-etc
só que no meu caso quem colide não é o player, mas sim o enemy.
esta parte do script é do enemy, registra e ativa a variável checkMsg no script de avisos
Os enemys estão sendo gerados em uma lista só precisava ativar essa mensagem uma vez por algum tempo , na primeira colisão com o enemy.
eu até tentei fazer isso na parte do script que esta comentado, mas não deu certo. :D
Desde já agradeço qualquer ajuda.
estava seguindo este tutorial https://www.schultzgames.com/t1030-tutorial-imagem-aparecer-na-tela-por-um-tempo-sustos-notas-etc
só que no meu caso quem colide não é o player, mas sim o enemy.
esta parte do script é do enemy, registra e ativa a variável checkMsg no script de avisos
- Código:
void OnTriggerEnter2D (Collider2D col){
enemy.SetActive (false);
playerControll.vida = playerControll.vida - 1;
lightControl.checkLt = lightControl.checkLt == false;
alertas.checkMsg = alertas.checkMsg == false;
Debug.Log ("aviso");
}
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class alertas : MonoBehaviour {
public static bool checkMsg = true;
public float contador = 5;
public Text aviso;
// Use this for initialization
void Start () {
aviso.enabled = false;
}
// Update is called once per frame
void Update () {
if (checkMsg == false) {
aviso.enabled = true;
}
}
//IEnumerator EsperarTempo (float tempo)
//{
// aviso.enabled = true;
// if (contador >= 5) {
// yield return new WaitForSeconds (contador);
// aviso.enabled = false;
// }
//}
}
Os enemys estão sendo gerados em uma lista só precisava ativar essa mensagem uma vez por algum tempo , na primeira colisão com o enemy.
eu até tentei fazer isso na parte do script que esta comentado, mas não deu certo. :D
Desde já agradeço qualquer ajuda.
HeberDN- Iniciante
- PONTOS : 3174
REPUTAÇÃO : 1
Respeito as regras :
Re: Exibir um texto na tela por um tempo
O que você quer é que quando um inimigo entrar no trigger do Player apareça uma mensagem por um certo tempo, isto?
Re: Exibir um texto na tela por um tempo
Isso mesmo, só que só preciso fazer isso uma vez, na primeira. Pelo que eu entendi este IEnumerator é responsável pela mensagem ficar na tela por um tempo, eu só não estou conseguindo aplicar isso.
o que esta o correndo é que ele fica na tela quando o player entra no trigger, mas quando da o tempo o texto começa a piscar.
:D
- Código:
void Update () {
if (checkMsg == false) {
StartCoroutine (EsperarTempo (TempoDoAviso));
}
}
IEnumerator EsperarTempo (float tempo)
{
aviso.enabled = true;
if (contador >= 5) {
yield return new WaitForSeconds (contador);
aviso.enabled = true;
}
yield return new WaitForSeconds (contador);
aviso.enabled = false;
}
o que esta o correndo é que ele fica na tela quando o player entra no trigger, mas quando da o tempo o texto começa a piscar.
:D
HeberDN- Iniciante
- PONTOS : 3174
REPUTAÇÃO : 1
Respeito as regras :
Re: Exibir um texto na tela por um tempo
Tente usar isto no seu inimigo
(O player deve ter a tag "Player" e ter pelo menos um colisor com "Trigger" marcado.
(O player deve ter a tag "Player" e ter pelo menos um colisor com "Trigger" marcado.
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class MensagemInimigo : MonoBehaviour {
public float tempoDaMensagem = 5;
public Text texto;
private Collider[] Colisores;
void Start(){
Colisores = transform.GetComponentsInChildren<Collider> ();
texto.enabled = false;
}
void OnTriggerEnter2D (Collider2D col){
if (col.gameObject.CompareTag ("Player")) {
foreach (Collider coll in Colisores) {
coll.enabled = false;
}
StartCoroutine ("MostrarMensagem");
}
}
IEnumerator MostrarMensagem(){
texto.enabled = true;
Destroy (GetComponent<Rigidbody2D> ());
Destroy (GetComponent<SpriteRenderer> ());
yield return new WaitForSeconds (tempoDaMensagem);
Destroy (texto.gameObject);
Destroy (gameObject);
}
}
Re: Exibir um texto na tela por um tempo
muito obrigado, isso me ajudou bastante, só adaptei no jogo. vlw msm :D
HeberDN- Iniciante
- PONTOS : 3174
REPUTAÇÃO : 1
Respeito as regras :
Re: Exibir um texto na tela por um tempo
Estou tentando aqui colocar um script assim numa area para mostra uma mensagem na tela ajuda aqui naoestou conseguindo estou usando a unity 5
Re: Exibir um texto na tela por um tempo
Callyde Jr escreveu:Estou tentando aqui colocar um script assim numa area para mostra uma mensagem na tela ajuda aqui naoestou conseguindo estou usando a unity 5
Qual script você está utilizando? que tipo de problemas está tendo?
Manda prints ou faça um vídeo demonstrando
Re: Exibir um texto na tela por um tempo
Eu queria um script assim quandoo player pisasse ou entrasse numa area exibi-se uma pensagem e uma imagem na tela como fosse um aviso
JohnRambo- Moderador
- PONTOS : 5171
REPUTAÇÃO : 661
Idade : 24
Áreas de atuação : Unity;
Programação;
Música e Sonorização;
Graduado em Análise e Desenvolvimento de Sistemas;
Respeito as regras :
Tópicos semelhantes
» Texto Na tela
» Aparecer Texto por um Certo tempo
» (Duvida) Texto na tela
» Colocar O tempo restante do Ie numerator em um texto
» Texto na tela, android, não aparece.
» Aparecer Texto por um Certo tempo
» (Duvida) Texto na tela
» Colocar O tempo restante do Ie numerator em um texto
» Texto na tela, android, não aparece.
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos