유니티에서 소프트 키 숨기기
Programing2014. 10. 26. 13:55
반응형
안드로이드에서 소프트키를 보여주지 않아야 할 경우가 있을 때 아래 코드로 파일을 하나 생성 해 줍니다.
using UnityEngine; public class DisableSystemUI { #if UNITY_ANDROID static AndroidJavaObject activityInstance; static AndroidJavaObject windowInstance; static AndroidJavaObject viewInstance; const int SYSTEM_UI_FLAG_HIDE_NAVIGATION = 2; const int SYSTEM_UI_FLAG_LAYOUT_STABLE = 256; const int SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION = 512; const int SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN = 1024; const int SYSTEM_UI_FLAG_IMMERSIVE = 2048; const int SYSTEM_UI_FLAG_IMMERSIVE_STICKY = 4096; const int SYSTEM_UI_FLAG_FULLSCREEN = 4; public delegate void RunPtr(); public static void Run() { if (viewInstance != null) { viewInstance.Call("setSystemUiVisibility", SYSTEM_UI_FLAG_LAYOUT_STABLE | SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | SYSTEM_UI_FLAG_HIDE_NAVIGATION | SYSTEM_UI_FLAG_FULLSCREEN | SYSTEM_UI_FLAG_IMMERSIVE_STICKY); } } #endif public static void DisableNavUI() { if (Application.platform != RuntimePlatform.Android) return; #if UNITY_ANDROID using (AndroidJavaClass unityPlayerClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) { activityInstance = unityPlayerClass.GetStatic("currentActivity"); windowInstance = activityInstance.Call("getWindow"); viewInstance = windowInstance.Call("getDecorView"); AndroidJavaRunnable RunThis; RunThis = new AndroidJavaRunnable(new RunPtr(Run)); activityInstance.Call("runOnUiThread", RunThis); } #endif } }
그리고 처음 호출하는 부분에서
DisableSystemUI.DisableNavUI();
를 불러주면 소프트키를 숨겨줍니다.
해당 폰에서 소프트키를 다시 볼려면 화면 상단을 아래로 스와이프를 해 주면 됩니다.
반응형
'Programing' 카테고리의 다른 글
[Eclipse] Big sur 업데이트 후 이클립스 실행 오류 (0) | 2020.11.16 |
---|---|
Android / iOS Icon & Splash Image Size 정리 (0) | 2017.08.23 |
SSH로 파일 다운로드 (0) | 2015.01.26 |
git에서 cache 제거하기 (0) | 2014.10.02 |
github에서 ignore 안되는 파일 제거하기~~~ (0) | 2011.11.23 |