diff --git a/Assets/Prefabs/PlaceholderObj/TextButton.prefab b/Assets/Prefabs/PlaceholderObj/TextButton.prefab new file mode 100644 index 0000000..b8e5b25 Binary files /dev/null and b/Assets/Prefabs/PlaceholderObj/TextButton.prefab differ diff --git a/Assets/Prefabs/PlaceholderObj/TextButton.prefab.meta b/Assets/Prefabs/PlaceholderObj/TextButton.prefab.meta new file mode 100644 index 0000000..a275365 --- /dev/null +++ b/Assets/Prefabs/PlaceholderObj/TextButton.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e4246d2f4ad414ad29be6953766362d2 +timeCreated: 1456877896 +licenseType: Free +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/TestScene.unity b/Assets/Scenes/TestScene.unity index a0321c5..dc0101f 100644 Binary files a/Assets/Scenes/TestScene.unity and b/Assets/Scenes/TestScene.unity differ diff --git a/Assets/Scripts/TextBoxButton.cs b/Assets/Scripts/TextBoxButton.cs new file mode 100644 index 0000000..03cd1ff --- /dev/null +++ b/Assets/Scripts/TextBoxButton.cs @@ -0,0 +1,120 @@ +using UnityEngine; +using System.Collections; +using UnityEngine.UI; + +public class TextBoxButton : MonoBehaviour +{ + public GameObject textBox; + public GameObject TextButton; + + public Text theText; + + public TextAsset textFile; + public string[] textLines; + + + public int currentLine = 0; + public int endAtLine; + + GameObject player; + bool playerContact = false; + + private bool isTyping = false; + private bool cancelTyping = false; + public float typeSpeed; + +// !for text file, create an empty line for the first line and last line to prevent an array error! + void Start () + { + textBox.SetActive (false); + + if (textFile != null) //making sure there's text + { + textLines = (textFile.text.Split('\n')); //splits text whenever there is a new line + } + + if (endAtLine == 0) // create empty lines at the end so Array error does not occur + { + endAtLine = textLines.Length - 1; // last line of text, one less because of array + } + } + + void OnTriggerStay2D(Collider2D c) + { + if(playerContact == true && Input.GetKeyDown(KeyCode.E)) + { + textBox.SetActive (true); // make text box appear + } + } + + void OnTriggerEnter2D(Collider2D col) + { + if (col.tag == "Player") + { + playerContact = true; + } + } + + void OnTriggerExit2D(Collider2D col) + { + if (col.tag == "Player") + { + playerContact = false; + } + } + + // Update is called once per frame + void Update () + { + //theText.text = textLines [currentLine];//gets text from file + + if (playerContact == true && Input.GetKeyDown(KeyCode.E)) //press E for next line + { + if (currentLine >= endAtLine) + { + Destroy(TextButton, 0.0F);//make text button disappear prevents array error + } + + if (!isTyping) + { + currentLine += 1; // play next line + + if (currentLine > endAtLine) //after last line + { + textBox.SetActive (false); // makes text box disappear + } + else + { + StartCoroutine (TextScroll (textLines [currentLine])); + } + } + else if (isTyping && !cancelTyping) + { + cancelTyping = true; + } + + + } + + + } + + private IEnumerator TextScroll (string lineOfText) //making words appear word by word + { + int letter = 0; + theText.text = ""; //display nothing on textbox + isTyping = true; + cancelTyping = false; + while (isTyping && !cancelTyping && (letter < lineOfText.Length - 1)) + { + theText.text += lineOfText[letter]; + letter += 1; // next letter + yield return new WaitForSeconds(typeSpeed); // waiting for text to appear + } + theText.text = lineOfText; //print whole line of text on screen + + isTyping = false; + cancelTyping = false; + } + +} diff --git a/Assets/Scripts/TextBoxButton.cs.meta b/Assets/Scripts/TextBoxButton.cs.meta new file mode 100644 index 0000000..a7f8e18 --- /dev/null +++ b/Assets/Scripts/TextBoxButton.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: bc38953c020b6411fb80432c77757e6b +timeCreated: 1456860833 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TextBox/TestText.txt b/Assets/TextBox/TestText.txt new file mode 100644 index 0000000..eec40a7 --- /dev/null +++ b/Assets/TextBox/TestText.txt @@ -0,0 +1,6 @@ + +This is a Text Press E to continue +Press E again to make this disappear +Are you even trying, Press E again +Ok one more time +Ok ok last one this should be the last time diff --git a/Assets/TextBox/TestText.txt.meta b/Assets/TextBox/TestText.txt.meta new file mode 100644 index 0000000..1c25d14 --- /dev/null +++ b/Assets/TextBox/TestText.txt.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: caa40f15b445b45e99ed932bf8b1ffd5 +timeCreated: 1456962210 +licenseType: Free +TextScriptImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/ProjectSettings/GraphicsSettings.asset b/ProjectSettings/GraphicsSettings.asset index 5af2e39..ca561d2 100644 Binary files a/ProjectSettings/GraphicsSettings.asset and b/ProjectSettings/GraphicsSettings.asset differ diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset index 49f55f5..eb2181a 100644 Binary files a/ProjectSettings/ProjectSettings.asset and b/ProjectSettings/ProjectSettings.asset differ