using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TMPro; using UnityEngine.EventSystems; public class OnScreenKeyboard : MonoBehaviour { public static OnScreenKeyboard Instance; [System.NonSerialized] public TMP_InputField currentInputField; //private TMP_InputField previousInputField; [System.NonSerialized] public string word = null; [System.NonSerialized] public string completedWord = null; [System.NonSerialized] public bool isPassWordField; private OnKeyboardButton[] keyboardButtons; [System.NonSerialized] public Animator keyboardAnimator; private void Awake() { Instance = this; keyboardButtons = FindObjectsOfType(); keyboardAnimator = transform.GetChild(0).GetComponent(); } public void ToggleCapitalization() { foreach (OnKeyboardButton kButton in keyboardButtons) { kButton.ToggleCapitalization(); } } public void ToggleSymbols() { foreach (OnKeyboardButton kButton in keyboardButtons) { kButton.ToggleSymbols(); } } public IEnumerator CloseKeyboardRoutine() { keyboardAnimator.SetBool("CloseKeyboard", true); completedWord = word; currentInputField.text = completedWord; if (currentInputField == UIManager.Instance.ChatInputField && UIManager.Instance.ChatInputField.text != "" && UIManager.Instance.ChatInputField.text.Length < 250) { PacketManager.sendChatMessage(UIManager.Instance.ChatInputField.text); UIManager.Instance.ChatInputField.text = ""; } currentInputField = null; Instance.word = null; SetSelectableOnKeyboardClose(); UIManager.Instance.ChatInputField.text = ""; UIManager.Instance.ChatBox.UsingChatBox = false; yield return new WaitForSeconds(0.3f); UIManager.Instance.hideInterface("OnScreenKeyboard"); } public void InsertSpace() { word += " "; } private void SetSelectableOnKeyboardClose() { if (UIManager.Instance.loginScreen) { EventSystem.current.SetSelectedGameObject(UIManager.Instance.LoginButton); } if (!UIManager.Instance.loginScreen && !UIManager.Instance.CryptoWalletMenu.activeInHierarchy) { Player.Instance.UpdatePlayerOnMenuClose(); } if (UIManager.Instance.CreateAccountMenu.activeInHierarchy) { EventSystem.current.SetSelectedGameObject(UIManager.Instance.CreateAccountRegisterButton.gameObject); } } public void TypeLetter(string letter) { word += letter; currentInputField.text = word; } public void DeleteLetter() { if (word.Length > 0) { word = word.Substring(0, word.Length - 1); currentInputField.text = word; } } }