using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TMPro; public class KeyboardInputManager : MonoBehaviour { private TMP_InputField inputField; private string editText; private string oldEditText; private bool keepOldTextInField; void Start() { inputField = gameObject.GetComponent(); inputField.onEndEdit.AddListener(EndEdit); inputField.onValueChanged.AddListener(Editing); inputField.onTouchScreenKeyboardStatusChanged.AddListener(ReportChangeStatus); } private void ReportChangeStatus(TouchScreenKeyboard.Status newStatus) { if (newStatus == TouchScreenKeyboard.Status.Canceled) { keepOldTextInField = true; } } private void Editing(string currentText) { oldEditText = editText; editText = currentText; } private void EndEdit(string currentText) { if (keepOldTextInField) { //IMPORTANT ORDER editText = oldEditText; inputField.text = oldEditText; keepOldTextInField = false; } } public void ValidateInput() { string inputText = inputField.text; if (inputText.Length < 10) { inputField.GetComponent().color = Color.black; } else { inputField.GetComponent().color = Color.red; } } }