bullet_chess-/KeyboardInputManager.cs

67 lines
1.5 KiB
C#
Raw Normal View History

2024-08-27 12:57:57 +00:00
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;
}
}
}