private void AcceptChar(char chr) { if (!EnigmaMachine.IsValidKey(chr)) { return; } PressKey(chr); UpdateVisuals(); }
private void AcceptString(string input) { bool changed = false; foreach (char chr in input.ToUpper()) { if (!EnigmaMachine.IsValidKey(chr)) { continue; } PressKey(chr); changed = true; } if (changed) { UpdateVisuals(); } }
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); } } } }