Oi, Rodrigo, tudo bem?
Acho que a primeira pergunta que eu faria era, por que você quer fazer isso? Com essa resposta a gente pode estudar os casos.
Mas aqui vão alguns:
Você poderia perguntar se a animação terminou com algo como:
// script de animação
void isAnimacaoMorrer()
{
this.animator.GetCurrentAnimatorStateInfo(0).IsName("Nome da Animação") && animator.GetCurrentAnimatorStateInfo(0).normalizedTime < 1
}
Com a linha acima você verifica se está na animação X e se ela já terminou, problema disso é que não funcionaria muito bem junto com o método morrer porque você tem que trocar o som entre outras coisas, então esse método não pode ser chamado várias vezes.
Outra coisa que você pode fazer é transformar o Morrer
em uma coroutine (se você continuar na série de Unity) você vai aprender sobre isso, com elas você pode pedir pra esperar um tempo que é o caso que você estava testando.
Outra mais comum seria ter um temporizador:
public float timeRemaining = 10;
void Morrer()
{
if (timeRemaining > 0)
{
timeRemaining -= Time.deltaTime;
else
{
// o que você quer fazer aqui
}
}
O problema da maioria dessas abordagens é que no nosso caso o Morrer não pode ficar rodando, ele roda e depois pararia. Por isso a pergunta da motivação para ter esse tempo lá do inicio.