Exemplo n.º 1
0
    public IEnumerator DisplayMonologue()
    {
        while (true)
        {
            if (MonologueQueue.Count > 0)
            {
                var monologue = MonologueQueue.Dequeue();
                foreach (var item in monologue.Lines)
                {
                    DOTweenAnimation anim = monologueText.gameObject.GetComponent <DOTweenAnimation>();
                    anim.DORestartAllById("Monologue_Start");
                    anim.DORestartAllById(item.effect.ToString());
                    monologueText.SetText(item.line);
                    PlayerController.Instance.SetEmotion(item.emotion);
                    yield return(new WaitForSeconds(item.duration));

                    anim.DORestartAllById("Monologue_End");
                    DOTween.Pause(gameObject);
                    yield return(new WaitForSeconds(monologueText.DOFade(0, fadeOutDuration).Duration()));
                }
            }
            yield return(null);
        }
    }
Exemplo n.º 2
0
 static public IObservable <DOTweenAnimation> DORestartAllByIdAsObservable(
     this DOTweenAnimation animation,
     string id)
 {
     return(Observable.Create <DOTweenAnimation>(o =>
     {
         animation.tween.OnComplete(() =>
         {
             o.OnNext(animation);
             o.OnCompleted();
         });
         animation.DORestartAllById(id);
         return Disposable.Empty;
     }));
 }