Detectar quando o animation curve chega no final
2 participantes
Página 1 de 1
Detectar quando o animation curve chega no final
quero adicionar som de passos num asset que to usando de movimento em primeira pessoa. O asset usa animation curve para fazer as animações de movimento. To tentando adicionar som de passos sincronizando com o animation curve mas n to conseguindo. alguem tem alguma idéia?
JulioWinchester- MembroAvançado
- PONTOS : 2093
REPUTAÇÃO : 48
Idade : 20
Áreas de atuação : https://linktr.ee/juliopepe
Respeito as regras :
Re: Detectar quando o animation curve chega no final
Vc não consegue resolver isso com a própria animation? Talvez quando ela termina (no último frame da animação), vc pode adicionar um evento q chamaria o som do passo pra vc: https://docs.unity3d.com/Manual/script-AnimationWindowEvent.html
Se quiser fazer direto por código, vc pode usar:
No inspector vc coloca o Animator q possui a animação q vc deseja verificar, o nome dessa animação no Animator, e o método q vc chama no seu projeto para ativar o som de passos.
Se quiser fazer direto por código, vc pode usar:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
public class EventCallerByAnimationState : MonoBehaviour
{
[SerializeField] private Animator _animator;
[SerializeField] private string _animationName;
[SerializeField] private UnityEvent _callbackToFire;
private void OnEnable() => StartCoroutine(CheckAnimationState());
private IEnumerator CheckAnimationState()
{
if(_animator == null)
yield break;
while(this.gameObject.activeInHierarchy)
{
yield return new WaitUntil(() => _animator.GetCurrentAnimatorStateInfo(0).normalizedTime >= 1 &&
_animator.GetCurrentAnimatorStateInfo(0).IsName(_animationName));
_callbackToFire?.Invoke();
}
}
}
No inspector vc coloca o Animator q possui a animação q vc deseja verificar, o nome dessa animação no Animator, e o método q vc chama no seu projeto para ativar o som de passos.
Re: Detectar quando o animation curve chega no final
- Spoiler:
- MayLeone escreveu:Vc não consegue resolver isso com a própria animation? Talvez quando ela termina (no último frame da animação), vc pode adicionar um evento q chamaria o som do passo pra vc: https://docs.unity3d.com/Manual/script-AnimationWindowEvent.html
Se quiser fazer direto por código, vc pode usar:- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
public class EventCallerByAnimationState : MonoBehaviour
{
[SerializeField] private Animator _animator;
[SerializeField] private string _animationName;
[SerializeField] private UnityEvent _callbackToFire;
private void OnEnable() => StartCoroutine(CheckAnimationState());
private IEnumerator CheckAnimationState()
{
if(_animator == null)
yield break;
while(this.gameObject.activeInHierarchy)
{
yield return new WaitUntil(() => _animator.GetCurrentAnimatorStateInfo(0).normalizedTime >= 1 &&
_animator.GetCurrentAnimatorStateInfo(0).IsName(_animationName));
_callbackToFire?.Invoke();
}
}
}
No inspector vc coloca o Animator q possui a animação q vc deseja verificar, o nome dessa animação no Animator, e o método q vc chama no seu projeto para ativar o som de passos.
Não é animation do animator, to falando do animation curve
JulioWinchester- MembroAvançado
- PONTOS : 2093
REPUTAÇÃO : 48
Idade : 20
Áreas de atuação : https://linktr.ee/juliopepe
Respeito as regras :
Re: Detectar quando o animation curve chega no final
Eu não entendi pq vc não pode usar um event após a key da animação q tem a curva...
Bom, dando uma olhada no Google, eu achei essa Thread: https://answers.unity.com/questions/326824/animationcurve-how-can-i-know-when-the-end-of-the.html
O código da solução ainda é da época do Javascript na Unity, mas tem uma resposta mais abaixo q fez em C#, mais ou menos com a mesma lógica.
Bom, dando uma olhada no Google, eu achei essa Thread: https://answers.unity.com/questions/326824/animationcurve-how-can-i-know-when-the-end-of-the.html
O código da solução ainda é da época do Javascript na Unity, mas tem uma resposta mais abaixo q fez em C#, mais ou menos com a mesma lógica.
Re: Detectar quando o animation curve chega no final
E como que faço pra usar um event no animation curve? ja tentei usar esse script mas n deu mt certo.MayLeone escreveu:Eu não entendi pq vc não pode usar um event após a key da animação q tem a curva...
Bom, dando uma olhada no Google, eu achei essa Thread: https://answers.unity.com/questions/326824/animationcurve-how-can-i-know-when-the-end-of-the.html
O código da solução ainda é da época do Javascript na Unity, mas tem uma resposta mais abaixo q fez em C#, mais ou menos com a mesma lógica.
https://www.youtube.com/watch?v=PKL4-8rOxMQ&t=5s
to usando esse asset aq
JulioWinchester- MembroAvançado
- PONTOS : 2093
REPUTAÇÃO : 48
Idade : 20
Áreas de atuação : https://linktr.ee/juliopepe
Respeito as regras :
Tópicos semelhantes
» Bug Animation
» Animation
» [RESOLVIDO] Detectar quando a animação do animator acaba para dar dano no player
» PROBLEMA COM ANIMATION
» Trigger Abre a Porta quando Entra mas nao Fecha quando Sai!
» Animation
» [RESOLVIDO] Detectar quando a animação do animator acaba para dar dano no player
» PROBLEMA COM ANIMATION
» Trigger Abre a Porta quando Entra mas nao Fecha quando Sai!
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos