67 lines
1.5 KiB
C#
67 lines
1.5 KiB
C#
|
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<TMP_InputField>();
|
||
|
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<Image>().color = Color.black;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
inputField.GetComponent<Image>().color = Color.red;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
}
|