private void Update() { AcceptString(Input.inputString); if (Input.GetMouseButtonDown(0)) { Ray ray = mainCamera.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out RaycastHit hit) && hit.transform.CompareTag("Key")) { int index = Array.IndexOf(keys, hit.transform); if (index == -1) { return; } char chr = EnigmaMachine.IndexToChar(index); if (EnigmaMachine.IsValidKey(chr)) { AcceptChar(chr); } } } }