我已經開發了一款適用於iOS和Android的Vuforia應用,當應用第一次運行時,系統會提示用戶授權使用設備的攝像頭。Unity3d檢查用戶是否已授權設備攝像頭
如果用戶沒有授權相機,當用戶導航到「捕捉」場景時,相機視圖是黑色的。
我看過Untiy3D文檔,發現Application.HasUserAuthorization類,但如果我理解正確,這隻適用於Unity網絡播放器?
如何檢查用戶是否允許在Unity3D(c#)中使用相機。
任何建議將不勝感激! TIA!
我已經開發了一款適用於iOS和Android的Vuforia應用,當應用第一次運行時,系統會提示用戶授權使用設備的攝像頭。Unity3d檢查用戶是否已授權設備攝像頭
如果用戶沒有授權相機,當用戶導航到「捕捉」場景時,相機視圖是黑色的。
我看過Untiy3D文檔,發現Application.HasUserAuthorization類,但如果我理解正確,這隻適用於Unity網絡播放器?
如何檢查用戶是否允許在Unity3D(c#)中使用相機。
任何建議將不勝感激! TIA!
作爲Android上的用戶,當安裝apk時它會使用相機,一旦我接受它就會收到提示。作爲開發者,我不需要檢查。
這就是我如何使用Vuforia API啓動相機。
CameraDevice.Instance.Stop();
CameraDevice.Instance.Init(CameraDevice.CameraDirection.CAMERA_FRONT);
CameraDevice.Instance.Start();
CameraDevice是一個可以調用的單例。
Application.RequestUserAuthorization
顯然適用於任何PC或移動設備相機。我正在使用它以及iPhone上的Unity3D的NatCam插件,並使用以下腳本檢查/提示用戶相機權限。循環while()
允許他們花時間給予許可。
int cameraPermission = 0;
// Use this for initialization
public override void Start() {
if (!Application.HasUserAuthorization (UserAuthorization.WebCam)) {
// request camera use
Application.RequestUserAuthorization (UserAuthorization.WebCam);
} else {
cameraPermission = 1;
}
// if we don't have permission, wait until we do
while (cameraPermission != 1) {
// wait a sec
System.Threading.Thread.Sleep(1000);
// if user enables preference
if (Application.HasUserAuthorization (UserAuthorization.WebCam)) {
// proceed to start app
cameraPermission = 1;
}
}
// Start base
base.Start();
}
感謝您的回覆@FunctionR,但如果您在安裝APK時不接受,會發生什麼情況?如果我在用戶沒有允許攝像機的情況下打電話給單身人士,他們會再次被提示嗎? – 2014-10-01 06:27:04
如果您在安裝apk時不接受,那麼它不會安裝。 – FunctionR 2014-10-01 06:58:27
我還沒有在Android上進行檢查,但在iOS中,即使用戶不允許攝像頭,它仍會安裝應用程序。我正在尋找一些方法來檢查相機在運行時的權限 – 2014-10-01 07:51:45