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.

50 lines
1.5 KiB

// This code is part of the Fungus library (https://github.com/snozbot/fungus)
// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE)
using UnityEngine;
using UnityEngine.UI;
namespace Fungus
{
/// <summary>
/// Displays Narrative Log Entries in the UI.
/// </summary>
public class NarrativeLogEntryDisplay : MonoBehaviour
{
[SerializeField] protected Text nameTextField;
[SerializeField] protected Text storyTextField;
private NarrativeLogEntry toDisplay;
/// <summary>
/// The entry that this represents in the UI. The setter here alters this display's UI fields
/// to fit the new value.
/// </summary>
public virtual NarrativeLogEntry ToDisplay
{
get { return toDisplay; }
set
{
toDisplay = value;
UpdateDisplays();
}
}
/// <summary>
/// Ensures that the UI components of this display fit the NarrativeLog Entry
/// it has... if any.
/// </summary>
protected virtual void UpdateDisplays()
{
if (ToDisplay == null)
{
nameTextField.text = "";
storyTextField.text = "";
}
else
{
nameTextField.text = toDisplay.name;
storyTextField.text = toDisplay.text;
}
}
}
}