Cardboard虛擬現實開發技巧(二)之保持手機常亮

Google Cardboard 虛擬現實眼鏡開發技巧(二)之保持手機常亮

快速解決Android與Ios平臺的屏幕常亮問題

大家知道我們使用Google的Cardboard爲基礎去開發虛擬現實應用,是需要把手機放置在CardBoard中或者是形形色色的各種眼鏡盒,如暴風魔鏡中,然後戴上眼鏡去使用虛擬現實應用,欣賞模型也好,看全景視頻也好,玩體感遊戲也好,沒有人希望在使用過程中被頻頻的手機自動熄屏所打擾,所以自動熄屏這個問題是開發AR和VR應用必須解決的一個問題。

以安卓爲例,很多同學可能會去用Unity調用Android JAVA(調用Android部分Jar包)或者將Unity打包爲Android程序,再從安卓的角度去申請權限,限制系統黑屏,但是如果應用本身不需要去調用Android Java做深入開發,僅僅爲了這個保持手機常亮而去這麼做,以至於犧牲掉可移植性,與易測試性,我認爲這是非常不值得的。用過Unity去調用Android的同學就會知道,無論是上面哪種結合Android開發的方法,都會讓開發測試過程非常的耗時,一次編譯打包安裝的過程簡直繁瑣費時至極,以Unity調用Android JAVA爲例,一次測試過程需要將安卓src部分打成jar包,複製jar包到Unity裏,如果JNI部分有修改,還要複製.so庫到相應的位置,再之後build apk,打包好之後複製到手機,再去測試看logcat,一次測試可能要好幾分鐘,而且消磨人的耐性。再也沒法愉快地在Unity Editer裏測試,看調試信息了。所以如果沒有必要的需求必須用Unity調用JAVA或者C/C++,能在Unity中完成的工作還是在Unity中完成比較好。

所幸Unity提供了去消滅熄屏的接口,而且使用非常簡單,所以下面我們就看一下在Android平臺和IOS平臺如何快速的去解決這個問題。

Android平臺的熄屏問題解決

Screen.sleepTimeout = SleepTimeout.NeverSleep; 

僅僅需要讓這行C#代碼在某個場景的某個腳本中執行就好了,這裏需要注意的是場景問題,比如這行代碼在遊戲進行的場景中執行過了,但是沒有在計分場景執行,有可能在計分場景就會熄屏,然後VR用戶就不得不從眼鏡中掏出手機,無奈的再按一下開機鍵了。

IOS平臺的熄屏問題解決

iPhoneSettings.screenCanDarken = false;

我本是不是蘋果用戶,,,從沒有測試過蘋果手機,所以這裏我就不亂說了,反正官網上是這麼寫的。。。

結語

寫虛擬現實眼鏡開發技巧這個系列的初衷是想能給大家帶來實質性的幫助,因爲不可能講到面面俱到,所以摘出一些大家都會遇到的問題來敘述,可能篇幅短了一些,但是一堆東西揉在一起也沒有什麼主題,所以只能篇幅短一點了,還請大家見諒。關於CardBoard虛擬現實眼鏡開發的知識,之前已經我已經寫了虛擬現實開發初步系列的1-4篇來幫助大家入門,英文的API也從長城網外的谷歌官網搬運過來了,我還自己翻譯了一篇中文版的文檔,以上內容都在我博客的分類和專欄中,大家可以自己去翻閱,希望這些內容能幫助到大家~

發佈了87 篇原創文章 · 獲贊 204 · 訪問量 76萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章