我开发了适用于iOS和Android的Vuforia应用程序,当应用程序首次运行时,系统会提示用户授权使用设备的相机。
如果用户未授权相机,当用户导航到“捕捉”场景时,相机视图为黑色。
我查看了Untiy3D文档并找到了Application.HasUserAuthorization类,但如果我理解正确,这只适用于Unity网络播放器?
如何检查用户是否允许在Unity3D(c#)中使用相机。
任何建议都将不胜感激! TIA!
答案 0 :(得分:1)
作为Android上的用户,我在安装apk时会收到提示,它会使用相机,一旦我接受就是这样。作为开发人员,我不需要检查。
这是我使用Vuforia API启动相机的方法。
CameraDevice.Instance.Stop();
CameraDevice.Instance.Init(CameraDevice.CameraDirection.CAMERA_FRONT);
CameraDevice.Instance.Start();
CameraDevice是一个可以调用的单身人士。
答案 1 :(得分:0)
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 ();
}