103 lines
2.9 KiB
C#
103 lines
2.9 KiB
C#
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<OnKeyboardButton>();
|
|
keyboardAnimator = transform.GetChild(0).GetComponent<Animator>();
|
|
}
|
|
|
|
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;
|
|
}
|
|
}
|
|
}
|