void OnSelect() { keySoundIndex = (int)Mathf.Round(Random.Range(-0.49f, keyboardMain.keySounds.Length - 0.51f)); audioSource.clip = keyboardMain.keySounds[keySoundIndex]; audioSource.loop = false; audioSource.Play(); keyName = gameObject.name; inputString = keyboardMain.InputDisplay.GetComponent <TextMesh>().text; if (!keyboardMain.getStarted()) { inputString = ""; keyboardMain.setStarted(); } switch (keyName) { case "keyBackspace": if (inputString.Length > 0) { //check whether backspace should remove a line if (inputString.Length > 1 && inputString.Substring(inputString.Length - 2, 2) == System.Environment.NewLine) { keyboardMain.InputDisplay.transform.position += new Vector3(0, -0.07f, 0); inputString = inputString.Substring(0, inputString.Length - 2); } else { inputString = inputString.Substring(0, inputString.Length - 1); } } break; case "keyShift": keyboardMain.OnShift(); break; case "keySpace": inputString += " "; break; case "keyReturn": inputString += System.Environment.NewLine; keyboardMain.InputDisplay.transform.position += new Vector3(0, 0.07f, 0); break; case "keyDone": keyboardMain.OnDone(); break; case "keyERS": inputString = inputString.Substring(0, inputString.Length - 1); break; default: if (keyboardMain.ShiftOn) { inputString += keyName.Substring(4, 1); } else { inputString += keyName.Substring(3, 1); } break; } keyboardMain.InputDisplay.GetComponent <TextMesh>().text = inputString; inputString = null; }