[유니티 Unity]InputField에서 Android(iOS) 가상 키보드 숨기기

 

InputField에서 Android(iOS) 가상 키보드 숨기기

 

기존에는 Window를 이용한 플랫폼이라서 상관없었으나

모바일 버전으로 플랫폼이 변경되면서 문제가 생겼다.

 

현재 내가 만든 프로젝트에서는

UI에 키보드가 따로 있고 InputField 2개를 생성해두고

글자 버튼을 눌러서 글을 쓰거나 입력 할 수 있도록 만들어 놨는데

 

버튼을 입력 받을 때마다

InputField 이다 보니

모바일 키보드가 나와서 영향을 주었다.

 

 

그래서 이걸 없애는 방법을 찾아보려고 여기저기 찾아봤었는데 

 

 

Input Field 에서  Hide Mobile Input 을 체크하면 된다길래

체크를 했는데 여전히 나오는 것이다(?)

 

그래서 이게 뭐지 하고 메뉴얼을 찾아봤는데

모바일 장치의 온스크린 키보드에 연결된 기본 입력 필드를 숨깁니다.이 기능은 iOS 기기에서만 작동합니다.

라고 적혀 있었다..

 

심지어 이 기능이 키패드를 안보이게 하는 것이 아니라 

이미지 출처: https://gamedev.stackexchange.com/questions/201572/how-to-hide-the-touchscreenkeyboards-input-field-in-unity-on-android

 

 

이미지 처럼 미리보기(?) 창을 숨겨주는 기능이였다는...

 

그리고 계속해서 검색을 하다가

원하는 기능을 찾았다

 

다음 코드를 원하는 InputFiled에 적용해주면 된다...

 

public class HideVirtualKeyboard : InputField
{
    protected override void Start()
    {
        keyboardType = (TouchScreenKeyboardType)(-1);
        base.Start();
    }
}

https://stackoverflow.com/questions/48606961/hide-virtual-keyboard-when-using-inputfield

 

 

가능하면 다음부터는 InputFiled를 사용해서 코드를 짜는게 아니라

Text 나 TextMeshPro를 사용해서 키보드에 입력을 했을때

글자가 찍히도록 만드는게 좋을 것 같다..