Unity使用InputField隱藏輸入框的方法

在使用Unity早期版本(2018以前的版本)生成併發布的apk,使用InputField進行用戶名和密碼等輸入的時候,會出現以下的狀況,點擊輸入框,彈出的虛擬鍵盤上方帶有另外一個輸入框,輸入的內容會顯示在鍵盤上部的輸入框之中:android

 

而開發者其實想要實現的是這樣的效果:ios

 

在inputFiled的Inspector界面能夠看到這樣一個選項:git

可是選中了以後並無什麼卵用,unity3d官方解釋是這個選項只在ios上生效,android上出於安全等方面考慮,這個選項是不生效的。github

解決辦法有兩個,安全

1.併發

使用https://github.com/mopsicus/UnityMobileInput   ,但這個方案有一些問題,首先須要修改一處代碼,才能正常使用,將MobileInputField.cs的函數InitialzieOnNextFrame ()之中下面三條語句註釋掉:ide

            //_inputObject.placeholder.gameObject.SetActive (false);
            //_inputObject.enabled = false;
            //_inputObjectText.enabled = false;函數

 這樣按照它demo之中的方法使用,就能夠隱藏鍵盤上方的輸入框了,但這個方法有不少問題,好比若是須要對InputField進行SetActive(false),而後再SetActive(true),會發現鍵盤上的輸入框又出現了,而若是使用SetAsFirstSibling將其放置於全部層之下,手指點擊inputfield的所在區域又會彈出虛擬鍵盤.....總之這是一個不完美的解決方案。3d

2.blog

把unity升級到2018以上的版本,此時會發現Inputfield的Inspector界面之中Hide Mobile Input這個選項在android上也能生效了,選中以後彈出的虛擬鍵盤上方就不會帶有輸入框了。

相關文章
相關標籤/搜索