コード例 #1
0
    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);
    }
コード例 #2
0
    /// <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();
    }
コード例 #3
0
    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;
        };
    }
コード例 #4
0
 public override void Hide()
 {
     base.Hide();
     UIEngine.Get <UIDetails> ().Hide();
 }
コード例 #5
0
 public void ShowDetails()
 {
     UIEngine.Get <UIDetails> ().Show();
 }