An easy to use Unity 3D library for creating illustrated Interactive Fiction games and more.
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
using UnityEngine;
|
|
|
|
using UnityEngine.UI;
|
|
|
|
using System;
|
|
|
|
using System.Collections;
|
|
|
|
|
|
|
|
namespace Fungus.Script
|
|
|
|
{
|
|
|
|
|
|
|
|
public class SayDialog : Dialog
|
|
|
|
{
|
|
|
|
public void Say(string text, Action onComplete)
|
|
|
|
{
|
|
|
|
Clear();
|
|
|
|
|
|
|
|
if (storyText != null)
|
|
|
|
{
|
|
|
|
storyText.text = text;
|
|
|
|
}
|
|
|
|
|
|
|
|
StartCoroutine(WriteText(text, delegate {
|
|
|
|
|
|
|
|
StartCoroutine(WaitForInput(delegate {
|
|
|
|
Clear();
|
|
|
|
|
|
|
|
if (onComplete != null)
|
|
|
|
{
|
|
|
|
onComplete();
|
|
|
|
}
|
|
|
|
}));
|
|
|
|
|
|
|
|
}));
|
|
|
|
}
|
|
|
|
|
|
|
|
protected override void Clear()
|
|
|
|
{
|
|
|
|
base.Clear();
|
|
|
|
}
|
|
|
|
|
|
|
|
IEnumerator WaitForInput(Action onInput)
|
|
|
|
{
|
|
|
|
// TODO: Handle touch input
|
|
|
|
while (!Input.GetMouseButtonDown(0))
|
|
|
|
{
|
|
|
|
yield return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (onInput != null)
|
|
|
|
{
|
|
|
|
onInput();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|