[RESOLVIDO] Executar animação após um X segundos
3 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] Executar animação após um X segundos
Então...
Eu queria executar novamente uma determinada ação após X segundos.
Exemplo:
Uma animação possui 0.500s e só poderei fazer ela novamente após 0.500(da animação) se passarem.
Quero aplicar isso no Dash do meu Player. Eu não queria que ele execute o Dash toda vez que eu pressionar uma tecla. Eu quero apertar a tecla, executar a animação, e, fazer a animação após o término da mesma.
Acho que deu para entender! ^^
Obrigado desde já.
Eu queria executar novamente uma determinada ação após X segundos.
Exemplo:
Uma animação possui 0.500s e só poderei fazer ela novamente após 0.500(da animação) se passarem.
Quero aplicar isso no Dash do meu Player. Eu não queria que ele execute o Dash toda vez que eu pressionar uma tecla. Eu quero apertar a tecla, executar a animação, e, fazer a animação após o término da mesma.
Acho que deu para entender! ^^
Obrigado desde já.
Última edição por dstaroski em Dom Out 15, 2017 8:55 am, editado 1 vez(es) (Motivo da edição : Resolvido)
eusouoglaydson- Iniciante
- PONTOS : 2913
REPUTAÇÃO : 4
Respeito as regras :
Re: [RESOLVIDO] Executar animação após um X segundos
Dá pra fazer isso usando Events no próprio Animator. Ou via código, mas dá uma pesquisada nos events, é bem útileusouoglaydson escreveu:Então...
Eu queria executar novamente uma determinada ação após X segundos.
Exemplo:
Uma animação possui 0.500s e só poderei fazer ela novamente após 0.500(da animação) se passarem.
Quero aplicar isso no Dash do meu Player. Eu não queria que ele execute o Dash toda vez que eu pressionar uma tecla. Eu quero apertar a tecla, executar a animação, e, fazer a animação após o término da mesma.
Acho que deu para entender! ^^
Obrigado desde já.
Fagner- Moderador
- PONTOS : 4442
REPUTAÇÃO : 667
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras :
Re: [RESOLVIDO] Executar animação após um X segundos
O que falei acima serve pra duas animações serem executadas com um único comando, porém, uma depois da outra.
Se quiser apenas executar uma animação até o fim, use a opção "Has exit time"
Se quiser apenas executar uma animação até o fim, use a opção "Has exit time"
Fagner- Moderador
- PONTOS : 4442
REPUTAÇÃO : 667
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras :
Re: [RESOLVIDO] Executar animação após um X segundos
Não é exatamente isso o que eu quis dizer...
Realmente não consigo explicar melhor, mas muito obrigado. Vou continuar pesquisando. ^^'
Realmente não consigo explicar melhor, mas muito obrigado. Vou continuar pesquisando. ^^'
eusouoglaydson- Iniciante
- PONTOS : 2913
REPUTAÇÃO : 4
Respeito as regras :
Re: [RESOLVIDO] Executar animação após um X segundos
Faça o seguinte, quando o jogador usar dash uma coroutine é ativada.eusouoglaydson escreveu:Não é exatamente isso o que eu quis dizer...
Realmente não consigo explicar melhor, mas muito obrigado. Vou continuar pesquisando. ^^'
- Código:
IEnumerator dashCooldown(float t){
dashPlayer = true;
yield return new WaitForSeconds(t);
dashPlayer = false;
}
Lembre-se de colocar um if no dash do seu jogador, ele só pode dar dash caso booleana "dashPlayer" for igual a false.
exemplo:
- Código:
if(Input.GetKeyDown(KeyCode.Space) && dashPlayer == false){
StartCoroutine(dashCooldown(2));
gameObject.GetComponent<Animator>().SetBool("dash", true);
}
ScorpionG4mer- Avançado
- PONTOS : 3445
REPUTAÇÃO : 45
Áreas de atuação : Inciante no C#, Arruaceiro no Blender
Respeito as regras :
Re: [RESOLVIDO] Executar animação após um X segundos
Solucionei. Passei a tarde pesquisando, vim recorrer agora e consegui solucionar de uma maneira besta "talvez gambiarra". kk
Deixei nos parametros das animações o Dash como bool e no código fiz o seguinte código:
if( Input.GetButtonDown("Dash") && noChao ) {
dash = true;
}
anim.SetBool("Dash", dash);
if( dash ) {
timeTemp += Time.deltaTime;
if( timeTemp >= timeDash ) {
dash = false;
}
}
Deixei nos parametros das animações o Dash como bool e no código fiz o seguinte código:
if( Input.GetButtonDown("Dash") && noChao ) {
dash = true;
}
anim.SetBool("Dash", dash);
if( dash ) {
timeTemp += Time.deltaTime;
if( timeTemp >= timeDash ) {
dash = false;
}
}
eusouoglaydson- Iniciante
- PONTOS : 2913
REPUTAÇÃO : 4
Respeito as regras :
Re: [RESOLVIDO] Executar animação após um X segundos
ScorpionG4mer escreveu:Faça o seguinte, quando o jogador usar dash uma coroutine é ativada.eusouoglaydson escreveu:Não é exatamente isso o que eu quis dizer...
Realmente não consigo explicar melhor, mas muito obrigado. Vou continuar pesquisando. ^^'
- Código:
IEnumerator dashCooldown(float t){
dashPlayer = true;
yield return new WaitForSeconds(t);
dashPlayer = false;
}
Lembre-se de colocar um if no dash do seu jogador, ele só pode dar dash caso booleana "dashPlayer" for igual a false.
exemplo:Com esse código você consegue o resultado que quer, só alterar pro seu caso.
- Código:
if(Input.GetKeyDown(KeyCode.Space) && dashPlayer == false){
StartCoroutine(dashCooldown(2));
gameObject.GetComponent<Animator>().SetBool("dash", true);
}
Troquei o meu código pelo seu e também funcionou, obrigado!
eusouoglaydson- Iniciante
- PONTOS : 2913
REPUTAÇÃO : 4
Respeito as regras :
Tópicos semelhantes
» Usar trigger para executar animação 1 vez (RESOLVIDO)
» Como faço para apos uma animação acabar, executar outra ação C#
» [RESOLVIDO] Trocar valor de variável apos X segundos que ativar o triggercollider
» [RESOLVIDO] Como fazer a animação executar so uma vez
» [RESOLVIDO] Como executar uma animação atraves de um botão?
» Como faço para apos uma animação acabar, executar outra ação C#
» [RESOLVIDO] Trocar valor de variável apos X segundos que ativar o triggercollider
» [RESOLVIDO] Como fazer a animação executar so uma vez
» [RESOLVIDO] Como executar uma animação atraves de um botão?
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos