Unity는 대부분의 경우 GUI 요소에 대한 키보드 입력을 자동으로 처리하지만, 필요 시 스크립트를 통해 간단하게 키보드를 보여줄 수도 있습니다.
사용자가 편집 가능한 GUI 요소를 탭하면 키보드가 자동으로 나타납니다. 현재 키보드는 GUI.TextField, GUI.TextArea 및 GUI.PasswordField에 표시됩니다. 자세한 내용은 GUI 클래스 기술 자료를 참조하십시오.
키보드를 열려면 TouchScreenKeyboard.Open() 함수를 사용합니다. 이 함수의 파라미터는 TouchScreenKeyboard 스크립팅 레퍼런스를 참조하십시오.
키보드는 다음 옵션을 지원합니다.
| 프로퍼티: | 기능: |
|---|---|
| TouchScreenKeyboardType.Default | 문자 키보드입니다. 숫자 및 기호 키보드로 전환할 수 있습니다. |
| TouchScreenKeyboardType.ASCIICapable | 문자 키보드입니다. 숫자 및 기호 키보드로 전환할 수 있습니다. |
| TouchScreenKeyboardType.NumbersAndPunctuation | 숫자 및 기호 키보드입니다. 문자 키보드로 전환할 수 있습니다. |
| TouchScreenKeyboardType.URL | 슬래시 및 .com 버튼이 있는 문자 키보드입니다. 숫자 및 기호 키보드로 전환할 수 있습니다. |
| TouchScreenKeyboardType.NumberPad | 0에서 9까지의 숫자만으로 구성된 키보드입니다. |
| TouchScreenKeyboardType.PhonePad | 전화번호 입력을 위한 키보드입니다. |
| TouchScreenKeyboardType.NamePhonePad | 문자 키보드입니다. 전화번호 키보드로 전환할 수 있습니다. |
| TouchScreenKeyboardType.EmailAddress | @ 기호가 있는 문자 키보드입니다. 숫자 및 기호 키보드로 전환할 수 있습니다. |
기본적으로 수정 상자가 생성되고 키보드가 나타나면 키보드 위에 배치됩니다. 이는 사용자가 입력하는 텍스트의 미리보기로 작동하므로 텍스트가 항상 사용자에게 표시됩니다. 그러나 TouchScreenKeyboard.hideInput 을 true로 설정하여 텍스트 미리보기를 비활성화할 수 있습니다. 이는 특정 키보드 유형과 입력 모드에서만 작동합니다. 예를 들어 휴대폰 키패드와 다중 행 텍스트 입력에는 작동하지 않습니다. 이러한 경우에는 항상 수정 상자가 표시됩니다. TouchScreenKeyboard.hideInput 은 전역 변수이며 모든 키보드에 영향을 줍니다.
TouchScreenKeyboard에는 3가지 키보드 프로퍼티가 있으며, 각 프로퍼티는 키보드의 표시 여부와 화면의 크기를 결정합니다.
| 프로퍼티: | 기능: |
|---|---|
| visible | 키보드가 화면에 완전히 나타나 있고 문자를 입력할 수 있으면 true 를 반환합니다. |
| area | 키보드의 포지션과 크기를 반환합니다. |
| Active | 키보드가 활성화되면 true 를 반환합니다. 이 프로퍼티는 정적 프로퍼티가 아닙니다. 이 프로퍼티를 사용하려면 키보드 인스턴스가 있어야 합니다. |
TouchScreenKeyboard.area 는 키보드가 화면에 완전히 보일 때까지 위치와 크기가 0으로 설정된 사각형을 반환합니다. TouchScreenKeyboard.Open() 바로 다음에 이 값을 쿼리해서는 안 됩니다. 키보드 이벤트의 순서는 다음과 같습니다.
키보드를 설정하여 입력 시 심볼을 숨길 수 있습니다. 이는 사용자가 중요한 정보를 입력해야 하는 경우에 유용합니다(예: 비밀번호). 안전한 텍스트 입력이 활성화된 상태에서 키보드를 수동으로 열려면 다음 코드를 사용하십시오.
TouchScreenKeyboard.Open("", TouchScreenKeyboardType.Default, false, false, true);
클래식 불투명 키보드 대신 반투명 검은 색 배경의 키보드를 나타내려면 다음과 같이 TouchScreenKeyboard.Open() 을 호출해야 합니다.
TouchScreenKeyboard.Open("", TouchScreenKeyboardType.Default, false, false, true, true);