Browse Source

Refactored UI scripts

master
Christopher 9 years ago
parent
commit
8f0de35f20
  1. 8
      Assets/Fungus/Narrative/Scripts/SayDialog.cs
  2. 6
      Assets/Fungus/UI/Scripts/Commands/FadeUI.cs
  3. 4
      Assets/Fungus/UI/Scripts/Commands/GetText.cs
  4. 4
      Assets/Fungus/UI/Scripts/Commands/SetInteractable.cs
  5. 4
      Assets/Fungus/UI/Scripts/Commands/SetSliderValue.cs
  6. 6
      Assets/Fungus/UI/Scripts/Commands/SetText.cs
  7. 8
      Assets/Fungus/UI/Scripts/Commands/TweenUI.cs
  8. 16
      Assets/Fungus/UI/Scripts/Commands/Write.cs
  9. 2
      Assets/Fungus/UI/Scripts/EventHandlers/ButtonClicked.cs
  10. 2
      Assets/Fungus/UI/Scripts/EventHandlers/EndEdit.cs
  11. 26
      Assets/Fungus/UI/Scripts/Writer.cs
  12. 14
      Assets/Tests/Narrative/NarrativeTests.unity

8
Assets/Fungus/Narrative/Scripts/SayDialog.cs

@ -161,10 +161,10 @@ namespace Fungus
{ {
Writer writer = GetWriter(); Writer writer = GetWriter();
if (writer.isWriting || writer.isWaitingForInput) if (writer.IsWriting || writer.IsWaitingForInput)
{ {
writer.Stop(); writer.Stop();
while (writer.isWriting || writer.isWaitingForInput) while (writer.IsWriting || writer.IsWaitingForInput)
{ {
yield return null; yield return null;
} }
@ -196,7 +196,7 @@ namespace Fungus
if (continueButton != null) if (continueButton != null)
{ {
continueButton.gameObject.SetActive( GetWriter().isWaitingForInput ); continueButton.gameObject.SetActive( GetWriter().IsWaitingForInput );
} }
} }
@ -219,7 +219,7 @@ namespace Fungus
protected virtual void UpdateAlpha() protected virtual void UpdateAlpha()
{ {
if (GetWriter().isWriting) if (GetWriter().IsWriting)
{ {
targetAlpha = 1f; targetAlpha = 1f;
fadeCoolDownTimer = 0.1f; fadeCoolDownTimer = 0.1f;

6
Assets/Fungus/UI/Scripts/Commands/FadeUI.cs

@ -23,11 +23,11 @@ namespace Fungus
Color Color
} }
public FadeMode fadeMode = FadeMode.Alpha; [SerializeField] protected FadeMode fadeMode = FadeMode.Alpha;
public ColorData targetColor = new ColorData(Color.white); [SerializeField] protected ColorData targetColor = new ColorData(Color.white);
public FloatData targetAlpha = new FloatData(1f); [SerializeField] protected FloatData targetAlpha = new FloatData(1f);
protected override void ApplyTween(GameObject go) protected override void ApplyTween(GameObject go)
{ {

4
Assets/Fungus/UI/Scripts/Commands/GetText.cs

@ -19,11 +19,11 @@ namespace Fungus
public class GetText : Command public class GetText : Command
{ {
[Tooltip("Text object to get text value from")] [Tooltip("Text object to get text value from")]
public GameObject targetTextObject; [SerializeField] protected GameObject targetTextObject;
[Tooltip("String variable to store the text value in")] [Tooltip("String variable to store the text value in")]
[VariableProperty(typeof(StringVariable))] [VariableProperty(typeof(StringVariable))]
public StringVariable stringVariable; [SerializeField] protected StringVariable stringVariable;
public override void OnEnter() public override void OnEnter()
{ {

4
Assets/Fungus/UI/Scripts/Commands/SetInteractable.cs

@ -17,10 +17,10 @@ namespace Fungus
public class SetInteractable : Command public class SetInteractable : Command
{ {
[Tooltip("List of objects to be affected by the command")] [Tooltip("List of objects to be affected by the command")]
public List<GameObject> targetObjects = new List<GameObject>(); [SerializeField] protected List<GameObject> targetObjects = new List<GameObject>();
[Tooltip("Controls if the selectable UI object be interactable or not")] [Tooltip("Controls if the selectable UI object be interactable or not")]
public BooleanData interactableState = new BooleanData(true); [SerializeField] protected BooleanData interactableState = new BooleanData(true);
public override void OnEnter() public override void OnEnter()
{ {

4
Assets/Fungus/UI/Scripts/Commands/SetSliderValue.cs

@ -16,10 +16,10 @@ namespace Fungus
public class SetSliderValue : Command public class SetSliderValue : Command
{ {
[Tooltip("Target slider object to set the value on")] [Tooltip("Target slider object to set the value on")]
public Slider slider; [SerializeField] protected Slider slider;
[Tooltip("Float value to set the slider value to.")] [Tooltip("Float value to set the slider value to.")]
public FloatData value; [SerializeField] protected FloatData value;
public override void OnEnter() public override void OnEnter()
{ {

6
Assets/Fungus/UI/Scripts/Commands/SetText.cs

@ -19,14 +19,14 @@ namespace Fungus
public class SetText : Command, ILocalizable public class SetText : Command, ILocalizable
{ {
[Tooltip("Text object to set text on. Can be a UI Text, Text Field or Text Mesh object.")] [Tooltip("Text object to set text on. Can be a UI Text, Text Field or Text Mesh object.")]
public GameObject targetTextObject; [SerializeField] protected GameObject targetTextObject;
[Tooltip("String value to assign to the text object")] [Tooltip("String value to assign to the text object")]
[FormerlySerializedAs("stringData")] [FormerlySerializedAs("stringData")]
public StringDataMulti text; [SerializeField] protected StringDataMulti text;
[Tooltip("Notes about this story text for other authors, localization, etc.")] [Tooltip("Notes about this story text for other authors, localization, etc.")]
public string description; [SerializeField] protected string description;
public override void OnEnter() public override void OnEnter()
{ {

8
Assets/Fungus/UI/Scripts/Commands/TweenUI.cs

@ -15,16 +15,16 @@ namespace Fungus
public abstract class TweenUI : Command public abstract class TweenUI : Command
{ {
[Tooltip("List of objects to be affected by the tween")] [Tooltip("List of objects to be affected by the tween")]
public List<GameObject> targetObjects = new List<GameObject>(); [SerializeField] protected List<GameObject> targetObjects = new List<GameObject>();
[Tooltip("Type of tween easing to apply")] [Tooltip("Type of tween easing to apply")]
public LeanTweenType tweenType = LeanTweenType.easeOutQuad; [SerializeField] protected LeanTweenType tweenType = LeanTweenType.easeOutQuad;
[Tooltip("Wait until this command completes before continuing execution")] [Tooltip("Wait until this command completes before continuing execution")]
public BooleanData waitUntilFinished = new BooleanData(true); [SerializeField] protected BooleanData waitUntilFinished = new BooleanData(true);
[Tooltip("Time for the tween to complete")] [Tooltip("Time for the tween to complete")]
public FloatData duration = new FloatData(1f); [SerializeField] protected FloatData duration = new FloatData(1f);
public override void OnEnter() public override void OnEnter()
{ {

16
Assets/Fungus/UI/Scripts/Commands/Write.cs

@ -19,19 +19,19 @@ namespace Fungus
public class Write : Command, ILocalizable public class Write : Command, ILocalizable
{ {
[Tooltip("Text object to set text on. Text, Input Field and Text Mesh objects are supported.")] [Tooltip("Text object to set text on. Text, Input Field and Text Mesh objects are supported.")]
public GameObject textObject; [SerializeField] protected GameObject textObject;
[Tooltip("String value to assign to the text object")] [Tooltip("String value to assign to the text object")]
public StringDataMulti text; [SerializeField] protected StringDataMulti text;
[Tooltip("Notes about this story text for other authors, localization, etc.")] [Tooltip("Notes about this story text for other authors, localization, etc.")]
public string description; [SerializeField] protected string description;
[Tooltip("Clear existing text before writing new text")] [Tooltip("Clear existing text before writing new text")]
public bool clearText = true; [SerializeField] protected bool clearText = true;
[Tooltip("Wait until this command finishes before executing the next command")] [Tooltip("Wait until this command finishes before executing the next command")]
public bool waitUntilFinished = true; [SerializeField] protected bool waitUntilFinished = true;
public enum TextColor public enum TextColor
{ {
@ -41,11 +41,11 @@ namespace Fungus
SetColor SetColor
} }
public TextColor textColor = TextColor.Default; [SerializeField] protected TextColor textColor = TextColor.Default;
public FloatData setAlpha = new FloatData(1f); [SerializeField] protected FloatData setAlpha = new FloatData(1f);
public ColorData setColor = new ColorData(Color.white); [SerializeField] protected ColorData setColor = new ColorData(Color.white);
protected Writer GetWriter() protected Writer GetWriter()
{ {

2
Assets/Fungus/UI/Scripts/EventHandlers/ButtonClicked.cs

@ -16,7 +16,7 @@ namespace Fungus
public class ButtonClicked : EventHandler public class ButtonClicked : EventHandler
{ {
[Tooltip("The UI Button that the user can click on")] [Tooltip("The UI Button that the user can click on")]
public Button targetButton; [SerializeField] protected Button targetButton;
public virtual void Start() public virtual void Start()
{ {

2
Assets/Fungus/UI/Scripts/EventHandlers/EndEdit.cs

@ -16,7 +16,7 @@ namespace Fungus
public class EndEdit : EventHandler public class EndEdit : EventHandler
{ {
[Tooltip("The UI Input Field that the user can enter text into")] [Tooltip("The UI Input Field that the user can enter text into")]
public InputField targetInputField; [SerializeField] protected InputField targetInputField;
public virtual void Start() public virtual void Start()
{ {

26
Assets/Fungus/UI/Scripts/Writer.cs

@ -45,36 +45,38 @@ namespace Fungus
public class Writer : MonoBehaviour, IDialogInputListener public class Writer : MonoBehaviour, IDialogInputListener
{ {
[Tooltip("Gameobject containing a Text, Inout Field or Text Mesh object to write to")] [Tooltip("Gameobject containing a Text, Inout Field or Text Mesh object to write to")]
public GameObject targetTextObject; [SerializeField] protected GameObject targetTextObject;
[Tooltip("Gameobject to punch when the punch tags are displayed. If none is set, the main camera will shake instead.")] [Tooltip("Gameobject to punch when the punch tags are displayed. If none is set, the main camera will shake instead.")]
public GameObject punchObject; [SerializeField] protected GameObject punchObject;
[Tooltip("Writing characters per second")] [Tooltip("Writing characters per second")]
public float writingSpeed = 60; [SerializeField] protected float writingSpeed = 60;
[Tooltip("Pause duration for punctuation characters")] [Tooltip("Pause duration for punctuation characters")]
public float punctuationPause = 0.25f; [SerializeField] protected float punctuationPause = 0.25f;
[Tooltip("Color of text that has not been revealed yet")] [Tooltip("Color of text that has not been revealed yet")]
public Color hiddenTextColor = new Color(1,1,1,0); [SerializeField] protected Color hiddenTextColor = new Color(1,1,1,0);
[Tooltip("Write one word at a time rather one character at a time")] [Tooltip("Write one word at a time rather one character at a time")]
public bool writeWholeWords = false; [SerializeField] protected bool writeWholeWords = false;
[Tooltip("Force the target text object to use Rich Text mode so text color and alpha appears correctly")] [Tooltip("Force the target text object to use Rich Text mode so text color and alpha appears correctly")]
public bool forceRichText = true; [SerializeField] protected bool forceRichText = true;
[Tooltip("Click while text is writing to finish writing immediately")] [Tooltip("Click while text is writing to finish writing immediately")]
public bool instantComplete = true; [SerializeField] protected bool instantComplete = true;
// This property is true when the writer is waiting for user input to continue // This property is true when the writer is waiting for user input to continue
[System.NonSerialized] protected bool isWaitingForInput;
public bool isWaitingForInput;
public bool IsWaitingForInput { get { return isWaitingForInput; } }
// This property is true when the writer is writing text or waiting (i.e. still processing tokens) // This property is true when the writer is writing text or waiting (i.e. still processing tokens)
[System.NonSerialized] protected bool isWriting;
public bool isWriting;
public bool IsWriting { get { return isWriting; } }
protected float currentWritingSpeed; protected float currentWritingSpeed;
protected float currentPunctuationPause; protected float currentPunctuationPause;

14
Assets/Tests/Narrative/NarrativeTests.unity

@ -117,7 +117,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 61dddfdc5e0e44ca298d8f46f7f5a915, type: 3} m_Script: {fileID: 11500000, guid: 61dddfdc5e0e44ca298d8f46f7f5a915, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
selectedFlowchart: {fileID: 736071350} selectedFlowchart: {fileID: 861253873}
--- !u!4 &11556238 --- !u!4 &11556238
Transform: Transform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
@ -7787,7 +7787,7 @@ MonoBehaviour:
parentBlock: {fileID: 861253875} parentBlock: {fileID: 861253875}
--- !u!114 &861253878 --- !u!114 &861253878
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 2
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 861253871} m_GameObject: {fileID: 861253871}
@ -7811,7 +7811,7 @@ MonoBehaviour:
- {fileID: 861253879} - {fileID: 861253879}
--- !u!114 &861253879 --- !u!114 &861253879
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 2
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 861253871} m_GameObject: {fileID: 861253871}
@ -7837,7 +7837,7 @@ MonoBehaviour:
callMode: 0 callMode: 0
--- !u!114 &861253880 --- !u!114 &861253880
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 2
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 861253871} m_GameObject: {fileID: 861253871}
@ -7854,7 +7854,7 @@ MonoBehaviour:
durationOLD: 0 durationOLD: 0
--- !u!114 &861253881 --- !u!114 &861253881
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 2
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 861253871} m_GameObject: {fileID: 861253871}
@ -17014,7 +17014,7 @@ GameObject:
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 0
--- !u!4 &1929911610 --- !u!4 &1929911610
Transform: Transform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -17065,7 +17065,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
go: {fileID: 1125936939} go: {fileID: 1125936939}
thisPropertyPath: Writer.isWriting thisPropertyPath: Writer.IsWriting
compareToType: 1 compareToType: 1
other: {fileID: 0} other: {fileID: 0}
otherPropertyPath: otherPropertyPath:

Loading…
Cancel
Save