public QRTrackerStartResult StartQRTracking() { if (qrTracker == null) { Debug.Log("Creating qr tracker"); qrTracker = new QRTracker(); qrTracker.Added += QrTracker_Added; qrTracker.Updated += QrTracker_Updated; qrTracker.Removed += QrTracker_Removed; } if (!IsTrackerRunning) { StartResult = (qrTracker.Start()); if (StartResult == QRTrackerStartResult.Success) { IsTrackerRunning = true; QRCodesTrackingStateChanged?.Invoke(this, true); } else { Debug.LogWarning("Failed to start qr tracker: " + StartResult.ToString()); } } return(StartResult); }
protected virtual void Start() { qrTracker = new QRTracker(); qrTracker.Added += QrTracker_Added; qrTracker.Updated += QrTracker_Updated; qrTracker.Removed += QrTracker_Removed; if (AutoStartQRTracking) { StartQRTracking(); } }
protected virtual void Start() { #if UNITY_EDITOR || UNITY_WSA qrTracker = new QRTracker(); qrTracker.Added += QrTracker_Added; qrTracker.Updated += QrTracker_Updated; qrTracker.Removed += QrTracker_Removed; if (AutoStartQRTracking) { StartQRTracking(); } #endif // UNITY_EDITOR || UNITY_WSA }
private async Task <QRTrackerStartResult> StartQRTrackingAsyncImpl(CancellationToken token) { #if WINDOWS_UWP DebugLog("Requesting webcam capability"); Windows.Security.Authorization.AppCapabilityAccess.AppCapability cap = Windows.Security.Authorization.AppCapabilityAccess.AppCapability.Create("webcam"); var accessTask = cap.RequestAccessAsync().AsTask(); var completedTask = await Task.WhenAny(accessTask, Task.Delay(-1, token)); var accessStatus = (accessTask == completedTask) ? accessTask.Result : Windows.Security.Authorization.AppCapabilityAccess.AppCapabilityAccessStatus.DeniedBySystem; if (accessStatus != Windows.Security.Authorization.AppCapabilityAccess.AppCapabilityAccessStatus.Allowed) { DebugLog("Failed to obtain webcam capability for qr code tracking"); } else { DebugLog("Webcam capability granted."); } #endif // Note: If the QRTracker is created prior to obtaining the webcam capability, initialization will fail. if (qrTracker == null) { DebugLog("Creating qr tracker"); qrTracker = new QRTracker(); qrTracker.Added += QrTracker_Added; qrTracker.Updated += QrTracker_Updated; qrTracker.Removed += QrTracker_Removed; } if (!token.IsCancellationRequested && !IsTrackerRunning) { StartResult = qrTracker.Start(); if (StartResult == QRTrackerStartResult.Success) { DebugLog("Successfully started qr tracker"); IsTrackerRunning = true; } else { Debug.LogWarning("Failed to start qr tracker: " + StartResult.ToString()); } } return(await Task.FromResult(StartResult)); }
private void SetupQRTracking() { try { qrTracker = new QRTracker(); IsTrackerRunning = false; qrTracker.Added += QrTracker_Added; qrTracker.Updated += QrTracker_Updated; qrTracker.Removed += QrTracker_Removed; } catch (Exception ex) { Debug.Log("QRCodesManager : exception starting the tracker " + ex.ToString()); } if (AutoStartQRTracking) { StartQRTracking(); } }