Muszę zintegrować Zxing z vuforią, aby utworzyć aplikację do skanowania kodów QR w Unity? Nie mam pojęcia, jak zintegrować Zxing z Vuforia w jedności. Czy ktoś może mi pomóc, mam to zrobić? Mam pliki .dll Zxing i pakiet jedności Vuforia. Dzięki za Advance.Integracja skanera kodów Unity Zxing
Odpowiedz
Szukałem zintegrowania Zxinga z vuforią w Jedności dzisiaj.
Pierwszą rzeczą do zrobienia jest, aby pobrać dll od: https://zxingnet.codeplex.com/ i skopiować dll jedność w folderze wtyczek (który powinien znajdować się w folderze Assets)
Potem udało mi się znaleźć kilka przykładów (niektóre tez jest nieaktualna)
http://ydaira.blogspot.fr/2012/09/how-to-decode-qr-codes-using-unity3d.html
https://github.com/Redth/ZXing.Net/blob/master/Clients/VuforiaDemo/Assets/VuforiaScanner.cs
Po połączeniu tezy przykładami i uprościć je, mam coś takiego (który jest umieszczony z ARCamera prefabrykatów):
using UnityEngine;
using System;
using System.Collections;
using Vuforia;
using System.Threading;
using ZXing;
using ZXing.QrCode;
using ZXing.Common;
[AddComponentMenu("System/VuforiaScanner")]
public class VuforiaScanner : MonoBehaviour
{
private bool cameraInitialized;
private BarcodeReader barCodeReader;
void Start()
{
barCodeReader = new BarcodeReader();
StartCoroutine(InitializeCamera());
}
private IEnumerator InitializeCamera()
{
// Waiting a little seem to avoid the Vuforia's crashes.
yield return new WaitForSeconds(1.25f);
var isFrameFormatSet = CameraDevice.Instance.SetFrameFormat(Image.PIXEL_FORMAT.RGB888, true);
Debug.Log(String.Format("FormatSet : {0}", isFrameFormatSet));
// Force autofocus.
var isAutoFocus = CameraDevice.Instance.SetFocusMode(CameraDevice.FocusMode.FOCUS_MODE_CONTINUOUSAUTO);
if (!isAutoFocus)
{
CameraDevice.Instance.SetFocusMode(CameraDevice.FocusMode.FOCUS_MODE_NORMAL);
}
Debug.Log(String.Format("AutoFocus : {0}", isAutoFocus));
cameraInitialized = true;
}
private void Update()
{
if (cameraInitialized)
{
try
{
var cameraFeed = CameraDevice.Instance.GetCameraImage(Image.PIXEL_FORMAT.RGB888);
if (cameraFeed == null)
{
return;
}
var data = barCodeReader.Decode(cameraFeed.Pixels, cameraFeed.BufferWidth, cameraFeed.BufferHeight, RGBLuminanceSource.BitmapFormat.RGB24);
if (data != null)
{
// QRCode detected.
Debug.Log(data.Text);
}
else
{
Debug.Log("No QR code detected !");
}
}
catch (Exception e)
{
Debug.LogError(e.Message);
}
}
}
}
udaje mi się zrobić to działa w AVD (Android wirtualnej Device), tak będzie działać na prawdziwym urządzeniu.
Jeśli używasz Unity 5.x oraz 64-bitowego systemu Windows może pojawić się błąd
udało się wczytać Obrotowe/plugins/QCARWrapper.dll
rozwiązanie jest proste, jak to podano w pytanie Unity3d - Failed to load 'Assets/Plugins/QCARWrapper.dll'
aby korzystać Vuforia z Unity 64 bit, po prostu przesuń QCARWrapper DLL z
/Plugins
do/Plugins/x86.
The se są DLL:wybrać
QCARWrapper.bundle
w widoku Unity Projektu (znajduje się w aktywach> Plugins), tak, że jego ustawienia są pokazane w jedności Inspektora ustawieniaQCARWrapper.bundle
w Inspektorze Unity z dowolnej platformy do samodzielnych + Editor.
Niż działa jak urok.
hej bro ... nic się nie dzieje, tylko czarny ekran pojawia się w urządzeniu z Androidem. Myślę, że kamera nie inicjuje. – Hussey123
To Vuforia, która przyjmuje domyślną kamerę internetową dla twojego urządzenia. Czy przeciągasz i upuszczasz "AR Camera" do swojej sceny? Jeśli masz kamerę internetową, możesz przetestować wszystkie funkcje Vuforii bezpośrednio w Unity – KDelli
Naprawiono problemy z czarnym ekranem. Wartość iFrameFormatSet również jest teraz prawdziwa. Ale kod QR nie jest dekodowany. Zawsze jest to wartość null.It drukuje " Nie wykryto kodu QR! " – Hussey123