diff --git a/Assets/MediaPipeUnity/Samples/Common/Scripts/ImageSource/WebCamSource.cs b/Assets/MediaPipeUnity/Samples/Common/Scripts/ImageSource/WebCamSource.cs index 260e5f26d..96df03304 100644 --- a/Assets/MediaPipeUnity/Samples/Common/Scripts/ImageSource/WebCamSource.cs +++ b/Assets/MediaPipeUnity/Samples/Common/Scripts/ImageSource/WebCamSource.cs @@ -101,8 +101,8 @@ public override ResolutionStruct[] availableResolutions { get { -#if (UNITY_ANDROID || UNITY_IOS) && !UNITY_EDITOR - if (webCamDevice is WebCamDevice valueOfWebCamDevice) { +#if (UNITY_ANDROID || UNITY_IOS || UNITY_STANDALONE_OSX) && !UNITY_EDITOR + if (webCamDevice is WebCamDevice valueOfWebCamDevice && valueOfWebCamDevice.availableResolutions != null) { return valueOfWebCamDevice.availableResolutions.Select(resolution => new ResolutionStruct(resolution)).ToArray(); } #endif @@ -146,19 +146,17 @@ private IEnumerator GetPermission() Permission.RequestUserPermission(Permission.Camera); yield return new WaitForSeconds(0.1f); } -#elif UNITY_IOS - if (!Application.HasUserAuthorization(UserAuthorization.WebCam)) { - yield return Application.RequestUserAuthorization(UserAuthorization.WebCam); - } -#endif - -#if UNITY_ANDROID + if (!Permission.HasUserAuthorizedPermission(Permission.Camera)) { Debug.LogWarning("Not permitted to use Camera"); yield break; } -#elif UNITY_IOS +#elif UNITY_IOS || UNITY_STANDALONE_OSX + if (!Application.HasUserAuthorization(UserAuthorization.WebCam)) { + yield return Application.RequestUserAuthorization(UserAuthorization.WebCam); + } + if (!Application.HasUserAuthorization(UserAuthorization.WebCam)) { Debug.LogWarning("Not permitted to use WebCam"); yield break;