Вам лучше написать это как код C #
То, что у вас сейчас функционально, выглядит так:
public class SomeScript : MonoBehaviour {
public Animator ellen;
void Start() {
GetComponent<Button>().onClick.AddListener(delegate() {
ellen.SetTrigger(0);
});
}
}
Если этот скрипт прикреплен к вашей кнопке, а компонент Animator
игрового объекта Эллен назначен полю ellen
.
Если вы измените это так:
public class SomeScript : MonoBehaviour {
public Animator ellen;
public float audioDuration;
void Start() {
GetComponent<Button>().onClick.AddListener(delegate() {
StartCoroutine(TriggerAnimation());
});
}
IEnumerator TriggerAnimation() {
ellen.SetTrigger(0);
yield return new WaitForSeconds(audioDuration);
ellen.ResetTrigger(0); //or however you want to return to the idle state
}
}
Теперь вам просто нужно указать продолжительность аудиоклипа. Также может быть способ запросить текущий статус воспроизведения источника звука , но у меня недостаточно информации о вашем проекте, чтобы иметь возможность функционально хэшировать этот код.