public void AddSubtitle(AudioClip clip, string key = null, OnSubtitleDone onSubtitleDone = null) { if (clip == null) { return; } if (key == null) { key = clip.name; } string text = Localization.GetText(key); float seconds = clip.length; audioSource.PlayOneShot(clip); gameUi.SetSubtitleText(text, seconds); if (onSubtitleDone != null) { StartCoroutine(InvokeAfterSeconds(seconds, onSubtitleDone)); } }
private IEnumerator InvokeAfterSeconds(float seconds, OnSubtitleDone onSubtitleDone) { yield return(new WaitForSeconds(seconds)); onSubtitleDone?.Invoke(); }