C# Unity3d检查用户是否拥有授权的设备摄像头

C# Unity3d检查用户是否拥有授权的设备摄像头,c#,permissions,camera,unity3d,C#,Permissions,Camera,Unity3d,我用Vuforia为iOS和Android开发了一个应用程序,当该应用程序第一次运行时,会提示用户授权使用该设备的摄像头 如果用户未授权相机,当用户导航到“捕获”场景时,相机视图为黑色 我查看了Untiy3D文档,找到了Application.HasUserAuthorization类,但如果我理解正确,这只适用于Unity web player 如何检查用户是否允许在Unity3D(c#)中使用相机 如有任何建议,将不胜感激!蒂亚 作为安卓系统的用户,我在安装apk时会得到提示,一旦我接受,它

我用Vuforia为iOS和Android开发了一个应用程序,当该应用程序第一次运行时,会提示用户授权使用该设备的摄像头

如果用户未授权相机,当用户导航到“捕获”场景时,相机视图为黑色

我查看了Untiy3D文档,找到了Application.HasUserAuthorization类,但如果我理解正确,这只适用于Unity web player

如何检查用户是否允许在Unity3D(c#)中使用相机


如有任何建议,将不胜感激!蒂亚

作为安卓系统的用户,我在安装apk时会得到提示,一旦我接受,它将使用摄像头。作为一名开发人员,我不需要检查

这是我如何使用Vuforia API启动相机的

 CameraDevice.Instance.Stop();
 CameraDevice.Instance.Init(CameraDevice.CameraDirection.CAMERA_FRONT);
 CameraDevice.Instance.Start();
CameraDevice是一款您可以调用的单件产品。

显然适用于任何PC或移动设备摄像头。我使用它和iPhone上的Unity3D插件以及以下脚本来检查/提示用户相机权限。
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 ();
}

感谢您的回复@functor,但是如果您在安装APK时不接受,会发生什么?如果我在用户不允许使用摄像头的情况下调用Singleton,会再次提示他们吗?如果安装apk时您不接受,则它不会安装。我还没有在Android上检查,但在iOS中,即使用户不允许使用摄像头,它仍会安装应用程序。我正在寻找一些方法来检查运行时的相机许可非常有趣。我必须找到一台iOS设备才能看到这一点。
Application.RequestUserAuthorization
在上不起作用devices@Daniel谢谢你的否决票,但是你应该检查你的代码。我在上面分享的代码正在应用商店/google play上发布的应用程序中运行。昨天在Android上使用Unity 2017.4.3f1进行了尝试,但没有成功。如果你检查一下,你会注意到人们说它不是为这份工作设计的。它在2017年7月对我有效,也就是在那些评论发表几个月后。当你们记录这些结果时会发生什么?它说用户已经给了网络摄像头授权,即使我拒绝使用摄像头(在Android和iOS上)