From e1c32f1c28dd2f052d5d656dea5e28ede09c1e40 Mon Sep 17 00:00:00 2001 From: Thaina Yu Date: Thu, 23 Nov 2023 21:10:01 +0700 Subject: [PATCH 1/2] Update WebCamSource.cs Add permission asking for osx --- .../Common/Scripts/ImageSource/WebCamSource.cs | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/Assets/MediaPipeUnity/Samples/Common/Scripts/ImageSource/WebCamSource.cs b/Assets/MediaPipeUnity/Samples/Common/Scripts/ImageSource/WebCamSource.cs index 260e5f26d..e0f0983b7 100644 --- a/Assets/MediaPipeUnity/Samples/Common/Scripts/ImageSource/WebCamSource.cs +++ b/Assets/MediaPipeUnity/Samples/Common/Scripts/ImageSource/WebCamSource.cs @@ -101,7 +101,7 @@ public override ResolutionStruct[] availableResolutions { get { -#if (UNITY_ANDROID || UNITY_IOS) && !UNITY_EDITOR +#if (UNITY_ANDROID || UNITY_IOS || UNITY_STANDALONE_OSX) && !UNITY_EDITOR if (webCamDevice is WebCamDevice valueOfWebCamDevice) { return valueOfWebCamDevice.availableResolutions.Select(resolution => new ResolutionStruct(resolution)).ToArray(); } @@ -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; From 01a8a4996b7d6c1f6d524530d880e74925bf425c Mon Sep 17 00:00:00 2001 From: Thaina Yu Date: Thu, 23 Nov 2023 21:21:44 +0700 Subject: [PATCH 2/2] Update WebCamSource.cs add null check --- .../Samples/Common/Scripts/ImageSource/WebCamSource.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Assets/MediaPipeUnity/Samples/Common/Scripts/ImageSource/WebCamSource.cs b/Assets/MediaPipeUnity/Samples/Common/Scripts/ImageSource/WebCamSource.cs index e0f0983b7..96df03304 100644 --- a/Assets/MediaPipeUnity/Samples/Common/Scripts/ImageSource/WebCamSource.cs +++ b/Assets/MediaPipeUnity/Samples/Common/Scripts/ImageSource/WebCamSource.cs @@ -102,7 +102,7 @@ public override ResolutionStruct[] availableResolutions get { #if (UNITY_ANDROID || UNITY_IOS || UNITY_STANDALONE_OSX) && !UNITY_EDITOR - if (webCamDevice is WebCamDevice valueOfWebCamDevice) { + if (webCamDevice is WebCamDevice valueOfWebCamDevice && valueOfWebCamDevice.availableResolutions != null) { return valueOfWebCamDevice.availableResolutions.Select(resolution => new ResolutionStruct(resolution)).ToArray(); } #endif