private void ParseResult(UnityWebRequest webRequest) { CardData result = JsonConvert.DeserializeObject <CardData> (webRequest.downloadHandler.text); if (result == null) { Log($"Error Result: {result}"); return; } if (!string.IsNullOrEmpty(result.error)) { Log($"Parse error: {result.error}"); return; } CachedData cachedData = null; if (localBuffer.TryGetValue(result.id, out cachedData)) { cachedData.usageCount = 0; } else { cachedData = new CachedData() { data = result }; localBuffer.Add(result.id, cachedData); } UIEngine.Get <UIDetails> ().SetData(result.details); videoController.PlayVideo(cachedData.data.url); Log("Text: " + webRequest.downloadHandler.text); }
/// <summary> /// This coroutine is used because of a bug with unity (http://forum.unity3d.com/threads/closing-scene-with-active-webcamtexture-crashes-on-android-solved.363566/) /// Trying to stop the camera in OnDestroy provoke random crash on Android /// </summary> /// <param name="callback"></param> /// <returns></returns> public IEnumerator StopCamera(Action callback) { // Stop Scanning UIEngine.Get <UICamera> ().CameraImage = null; BarcodeScanner.Destroy(); BarcodeScanner = null; // Wait a bit yield return(new WaitForSeconds(0.1f)); callback.Invoke(); }
private IEnumerator Start() { // Create a basic scanner yield return(Application.RequestUserAuthorization(UserAuthorization.WebCam)); if (!Application.HasUserAuthorization(UserAuthorization.WebCam)) { throw new Exception("This Webcam library can't work without the webcam authorization"); } ScannerSettings scannerSettings = new ScannerSettings(); scannerSettings.WebcamRequestedWidth = Screen.width; scannerSettings.WebcamRequestedHeight = Screen.height; var image = UIEngine.Get <UICamera> ().CameraImage; image.rectTransform.sizeDelta = new Vector2(Screen.width, Screen.height); BarcodeScanner = new Scanner(scannerSettings); BarcodeScanner.Camera.Play(); // Display the camera texture through a RawImage BarcodeScanner.OnReady += (sender, arg) => { Log("BarcodeScanner.OnReady"); // Set Orientation & Texture image.transform.localEulerAngles = BarcodeScanner.Camera.GetEulerAngles(); image.transform.localScale = BarcodeScanner.Camera.GetScale(); image.texture = BarcodeScanner.Camera.Texture; image.color = Color.white; // Keep Image Aspect Ratio var rect = image.GetComponent <RectTransform> (); var newHeight = rect.sizeDelta.x * BarcodeScanner.Camera.Height / BarcodeScanner.Camera.Width; rect.sizeDelta = new Vector2(rect.sizeDelta.x, newHeight); RestartTime = Time.realtimeSinceStartup; }; }
public override void Hide() { base.Hide(); UIEngine.Get <UIDetails> ().Hide(); }
public void ShowDetails() { UIEngine.Get <UIDetails> ().Show(); }