[RESOLVIDO] Detecta o fim da animação e conjura um novo evento.
2 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] Detecta o fim da animação e conjura um novo evento.
Caso alguém possa me ajudar a fazer um fade, e de qualquer forma estou compartilhando o que eu achei aqui e juntei, quem saiba isso possa ajudar outras pessoas. Beijos.
Basicamente o que eu fiz foi pegar um monte de coisa do fórum e usar para resolver esse problema. O que eu não consegui fazer foi exibir o texto do preto para o branco de forma bem lenta e legal... mas creio que eu consiga nos próximos dias. Quem sabe algum filho de Deus não me ajuda a fazer esse esquema de fade por aqui mesmo? rsrs
Segue o código que deve ser colocado na camera, o nome do aqruivo é ScripCamera, caso queira mudar arruma a classe:
Esse é o script que vai no texto.
Muito obrigado a toda a comunidade.
Basicamente o que eu fiz foi pegar um monte de coisa do fórum e usar para resolver esse problema. O que eu não consegui fazer foi exibir o texto do preto para o branco de forma bem lenta e legal... mas creio que eu consiga nos próximos dias. Quem sabe algum filho de Deus não me ajuda a fazer esse esquema de fade por aqui mesmo? rsrs
Segue o código que deve ser colocado na camera, o nome do aqruivo é ScripCamera, caso queira mudar arruma a classe:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ScripCamera : MonoBehaviour
{
public GameObject texto3D;
public GameObject texto;
Vector3 vetorEsalaTexto = new Vector3(0.0005f, 0.0005f, 0.0005f);
Animator anim;
float duracao;
bool cresce = false;
// Start is called before the first frame update
void Start()
{
texto3D.transform.localScale = new Vector3(0.001f, 0.001f, 0.001f);
anim = gameObject.GetComponent<Animator>();
duracao = anim.GetCurrentAnimatorStateInfo(0).length;
Invoke("mudaValorCresce", duracao);
}
// Update is called once per frame
void Update()
{
if((texto3D.transform.localScale.x <0.21f) && (cresce))
{
texto3D.transform.localScale += vetorEsalaTexto;
} else { cresce = false; }
}
void mudaValorCresce()
{
cresce = true;
}
}
Esse é o script que vai no texto.
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ScriptCorTexto : MonoBehaviour
{
public TextMesh texto;
Color lerpedColor = Color.white;
// Start is called before the first frame update
void Start()
{
;
}
// Update is called once per frame
void Update()
{
lerpedColor = Color.Lerp(Color.white, Color.black, Mathf.PingPong(Time.time, 0.5f));
//lerpedColor = Color.Lerp(Color.black, Color.white, 0.5f);
texto.color = lerpedColor;
}
}
Muito obrigado a toda a comunidade.
Última edição por dstaroski em Sex Mar 22, 2019 8:03 pm, editado 1 vez(es) (Motivo da edição : Resolvido)
fabricadegame- Membro
- PONTOS : 2214
REPUTAÇÃO : 11
Respeito as regras :
Re: [RESOLVIDO] Detecta o fim da animação e conjura um novo evento.
Esse 1° Script Faz A Animação De Zoom In e Zoom Out No Texto:
- Código:
//==================== ATRIBUTOS ====================//
public Text play;
public int TamanhoInicialDaFonte;
public int TamanhoFinalDaFonte;
public enum VelText { Lento, Medio, Rapido};
public VelText VelocidadeDoTexto;
private float firtsContador, ValorDaVelocidade;
private bool contar;
private bool diminuir;
private bool IniciarAnima;
//==================== METODOS ====================//
void Start()
{
IniciarAnimacao();
switch (VelocidadeDoTexto)
{
case VelText.Lento:
ValorDaVelocidade = 0.09f;
break;
case VelText.Medio:
ValorDaVelocidade = 0.06f;
break;
case VelText.Rapido:
ValorDaVelocidade = 0.03f;
break;
}//End_switch
}//End_Start
void FixedUpdate()
{
VerificarAnimacao();
}//End_Fixed_Update
public void IniciarAnimacao()
{
contar = true;
diminuir = false;
if (play != null)
{
play.fontSize = TamanhoInicialDaFonte; //Tamanho da Font Inicial
}//End_If
IniciarAnima = true;
}//End_Iniciar_Animação
public void VerificarAnimacao()
{
if (IniciarAnima == true)
{
if (play.fontSize < TamanhoFinalDaFonte && diminuir == false)
{
if (contar == true)
{
firtsContador += Time.deltaTime;
}
if (firtsContador >= ValorDaVelocidade)
{
firtsContador = 0.00f;
if (play != null)
{
play.fontSize += 1;
}//End_If
contar = true;
}
if (play.fontSize >= TamanhoFinalDaFonte)
{
contar = true;
diminuir = true;
}
}//End_If
else if (play.fontSize > TamanhoInicialDaFonte && diminuir == true)
{
if (contar == true)
{
firtsContador += Time.deltaTime;
}
if (firtsContador >= ValorDaVelocidade)
{
firtsContador = 0.00f;
if (play != null)
{
play.fontSize -= 1;
}//End_If
contar = true;
}
if (play.fontSize <= TamanhoInicialDaFonte)
{
contar = true;
diminuir = false;
}
}//End_If
}//End_If
}//End_Verificar_Animação
//Magnatah
}
Magnatah- Instrutor
- PONTOS : 3548
REPUTAÇÃO : 209
Idade : 24
Áreas de atuação : Dєรєиvσlvєdσя Wєb(Fяσит-єиd), Blєиdєя, υиiтy, C#, ρнρ є Jαvαรcяiρт.
Respeito as regras :
Re: [RESOLVIDO] Detecta o fim da animação e conjura um novo evento.
Ja Esse Faz O Efeito Fade In e Fade Out No Texto:
É Só usar a StartCoroutine(MudarCorDoTexto("B" ou "P));
- Código:
public Text TEXTO;
IEnumerator MudarCorDoTexto(string str)
{
// "B" -> Cor Branca.
// "P" -> Cor Preta.
//Irá Trocar De Preto Para Branco.
if (str == "B")
{
for (float c = 0; c <= 1; c += Time.deltaTime)
{
TEXTO.color = new Color(c, c, c); //Muda a Cor Do do Texto.
yield return null;
}//End_If
}//End_If
//Irá Trocar De Branco Para Preto.
else if (str == "P")
{
for (float c = 1; c <= 0; c -= Time.deltaTime)
{
TEXTO.color = new Color(c, c, c); //Muda a Cor Do Texto.
yield return null;
}//End_If
}//End_If
}//End_Mudar_Cor_Do_Quadro
É Só usar a StartCoroutine(MudarCorDoTexto("B" ou "P));
Magnatah- Instrutor
- PONTOS : 3548
REPUTAÇÃO : 209
Idade : 24
Áreas de atuação : Dєรєиvσlvєdσя Wєb(Fяσит-єиd), Blєиdєя, υиiтy, C#, ρнρ є Jαvαรcяiρт.
Respeito as regras :
Re: [RESOLVIDO] Detecta o fim da animação e conjura um novo evento.
Magnatah escreveu:Ja Esse Faz O Efeito Fade In e Fade Out No Texto:
- Código:
public Text TEXTO;
IEnumerator MudarCorDoTexto(string str)
{
// "B" -> Cor Branca.
// "P" -> Cor Preta.
//Irá Trocar De Preto Para Branco.
if (str == "B")
{
for (float c = 0; c <= 1; c += Time.deltaTime)
{
TEXTO.color = new Color(c, c, c); //Muda a Cor Do do Texto.
yield return null;
}//End_If
}//End_If
//Irá Trocar De Branco Para Preto.
else if (str == "P")
{
for (float c = 1; c <= 0; c -= Time.deltaTime)
{
TEXTO.color = new Color(c, c, c); //Muda a Cor Do Texto.
yield return null;
}//End_If
}//End_If
}//End_Mudar_Cor_Do_Quadro
É Só usar a StartCoroutine(MudarCorDoTexto("B" ou "P));
Oi Magnatah, mandou muito bem cara, valeu mesmo.
fabricadegame- Membro
- PONTOS : 2214
REPUTAÇÃO : 11
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO] Como faço pra um objeto/item acionar um evento?
» [RESOLVIDO] Como fazer um script que dispara um evento quando o tempo é multiplo de 10?
» [RESOLVIDO] Inimigo detecta outro Inimigo.
» [RESOLVIDO] Dúvida com o Novo Input System
» [RESOLVIDO] Console mostra erros em Projeto Novo
» [RESOLVIDO] Como fazer um script que dispara um evento quando o tempo é multiplo de 10?
» [RESOLVIDO] Inimigo detecta outro Inimigo.
» [RESOLVIDO] Dúvida com o Novo Input System
» [RESOLVIDO] Console mostra erros em Projeto Novo
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos