編輯:關於Android編程
項目一直在趕進度,寫博的時間越來越少了~從事Unity開發也快兩個月了,AR方向~ 使用的是高通家的SDK Vuforia。。。從工程融合一直到對unity和Vuforia的深層次的開發,新東西,畢竟坑多。。國內做AR開發的沒有自家的SDK一般都是用國外的SDK或則國內其他家的一些SDK吧~ 使用這些SDK做AR開發都有共同的一個特性,都喜歡在Unity裡面做開發。Unity之前一直是游戲引擎,直到Unity5.0版本出來後Unity官方有一個方向轉變,不僅僅是游戲引擎而且Unity可以做應用級別的開發,但是Unity應用級的開發是一個剛剛起步的開發,Unity裡支持的東西不夠全面,擴張性不夠強,腳本語言的控制和原生設備的兼容性也不夠,就是因為這些原因,有了工程融合,iOS、Android的工程和Unity的工程融合在一起開發,使得Unity的支持面更廣,擴張性更強,很多Unity做不到的,或則難做的,就可以讓原生來開發,這時候~unity就是一個萬金油~
** 好了,本文主要講解的是Unity對Vuforia的開發中在原生調用攝像頭上遇到的坑~Unity中調用設備攝像頭打開或則關閉,或則開關掃描識別問題等等一些情況~ 下面先說說趟過的坑,再說說解決辦法,或則目前沒有解決的問題 **
先說說情況,移動端App的iOS的項目中有三個界面,其中一個就是掃描界面,掃面界面當讓是Unity對Vuforia的開發導出的工程融合在原生的項目中的~當我程序退出掃描界面後Unity和Vuforia應該處於暫停狀態OnPause,筆者研究了一段時間,在iOS中使用UnityInterface.h中暴露的暫停接口根本就沒有讓掃描暫停~如下圖
筆者嘗試了一次又一次的interface中的方法,相機就根本不能暫停,,原來童話裡都是騙人的~可能 有人會想到暫停不了也沒有什麼大不了的 吧~ 我研究了一下國內的App,是有幾款App沒有暫停~例如幻視,,問題又來了,,既然相機不能暫停就不讓他暫停呗~ 可是我們的項目中有這樣一個需求,見下圖~
拍照功能~掃描界面不能暫停Camera,其他界面現在要調用Camera,,做過移動端開發的都知道,,Camera是實例化出來的,而且是單例,,如果再一次實例化這時候,程序 ~ 崩~
所以不把 攝像頭暫停肯定不行~ 這時候筆者通過UnityInterface.h 的方法是Camera 暫停了,,這時候~ 新的問題又出來了,,通過這樣的方法使Camera暫停了,可是Vuforia還是在繼續調用攝像頭再繼續掃面,,,雖然Camera 是關閉了,界面上看不到,這時候其實Vuforia還是在調用攝像頭繼續掃面,這時候~ 筆者想到的唯一辦法就是 通過Unity內部去控制Vuforia,再向原生暴露需要調用的接口~ 所以有了以下方法~
// 關閉相機 public void CloseCameraDevice () { CameraDevice.Instance.Stop(); CameraDevice.Instance.Deinit(); } // 打開相機 public void OpenCameraDevice () { CameraDevice.Instance.Init(CameraDevice.CameraDirection.CAMERA_DEFAULT); CameraDevice.Instance.Start(); } // 關閉識別 public void CloseCloudReco () { CloudRecoBehaviour cloudRecoBehaviour = GameObject.FindObjectOfType(typeof(CloudRecoBehaviour)) as CloudRecoBehaviour; cloudRecoBehaviour.CloudRecoEnabled = false; } // 打開識別 public void OpenCloudReco () { CloudRecoBehaviour cloudRecoBehaviour = GameObject.FindObjectOfType(typeof(CloudRecoBehaviour)) as CloudRecoBehaviour; cloudRecoBehaviour.CloudRecoEnabled = true; }
上面這些方法是在Unity裡面實現的,寫在一個腳本裡,掛在一個GameObject上供原生調用~
Android在掃描界面打開閃關燈,因為掃描界面Unity調用了Camera,安坐的閃關燈是通過實例化相機來打開的~這時候Android拿不到Camera,因為Unity把Camera暫用了,,在掃描界面不能打開閃關燈~ 這問題還未解決~ 如果有朋友知道解決辦法~ 請告訴筆者~ 留言,,非常感謝~
說實話,對於xUtils,是我最近才用到的開發框架(也是剛接觸),對於其功能不得不說,簡化了很多的開發步驟,可以說是非常好的開發工具,但是其最近更新到3.0也
很多朋友在用手機聊天的時候,常常會將自己的聊天記錄當做是一張圖片形式保存起來。或者是把一些奇葩的聊天過程曬出來。手機qq能截圖嗎?安卓手機qq怎麼開啟截屏功
微信公眾號有很多都做刮刮樂的活動,本文就實現了刮刮樂的效果,具體代碼如下:首先要做一個類似橡皮擦的東西吧,然後才能把紙上的筆跡擦除 /** * FileN
Android開發的過程中經常要用到屬性動畫,經常都是網上扒下來看下怎麼用,但是經常不知道為什麼要這麼用,手一哆嗦一不小心就點到源碼裡面去了。我們就來看看Android屬