- Home /
Textbox exit on keypress
I am making a old sierra styled adventure game. The issue is that I use the same key to submit the text as I do to close out of the textbox, so it activates the instantly deactivates before I can ever see it. Is there a way to pause the input for a second so it shows the textbox, or is there a better way to this.
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class Test_Input : MonoBehaviour
{
public Text textBox;
public Text inputField;
public GameObject TextBoxObj;
public void NewInput(string newText)
{
if(newText == "look room")
{
TextBoxObj.SetActive(true);
textBox.text = "You look around the room, it is pretty fucking swag!!!";
}
}
void Update()
{
if(TextBoxObj.activeSelf)
{
Time.timeScale = 0;
if(Input.GetKeyDown(KeyCode.Return))
{
Time.timeScale = 1;
textBox.text = "";
TextBoxObj.SetActive(false);
}
}
}
}
The code is obtaining input from an input field that sends the string on end edit (hitting the enter key).
Answer by losingisfun · Jan 03, 2017 at 12:27 PM
It sounds like you want a slight delay between the two actions, but executed simultaneously.
You can set a delay, by creating a IEnumerator. try doing this:
void Update () {
if(TextBoxObj.activeSelf) {
if (Input.GetKeyDown (KeyCode.Return)) {
StartCoroutine(delayedExit());
}
}
}
IEnumerator delayedExit () {
Time.timeScale = 1;
textBox.text = "";
yield return new WaitForSeconds (1.0f);
TextBoxObj.SetActive(false);
}
That will create a 1 second delay between setting the text to "" and setting the other thing to false.
also, i forgot to put in the Time.timeScale = 0; in the Update function. But do you realise thats being called every frame? you might want to change that to have an if statement like
if (Time.timeScale > 0) {
Time.timeScale = 0;
}
Your answer
Follow this Question
Related Questions
Pause game on textbox until Enter is pressed 0 Answers
Use System.Windows.Automation in Unity 1 Answer
How do I pause my game? 24 Answers
How do I pause and unpause my game on the iPhone? 1 Answer
how to have my texture appear on pause 2 Answers