Easy Code Scanner Unity plugin for Android and iOS

C4M has released its Easy Code Scanner plugin on the Unity Asset store. This is the thread to discuss problems, feature requests or pre-buying inquiries.
Thank you for interest in our Easy Code Scanner plugin.

Any chance I can get a video of it in action? I would like to know how fast it can read in the QR codes. Also what is the compatibility with it for blurry/damaged QR codes?
Also finally this is “fully” supported on Droid and IOS correct? No incompatibility issues for either?

Sorry for some basic question. I would rather get them answered before buying it and not risk the chance of it not working.

Thank you :slight_smile:

Hello,
I quickly took two videos of the plugin in action right from the game that C4M is working on at the moment.
In the game you unlock cards by scanning QR on real cards, and that’s what I filmed with my iPhone.
For each device, I first tap on the ‘Scan QR code’ button in the app. So the video also shows the time to open the camera (though that’s 99% device related and not linked to plugin).

In the video, once the code is scanned a request is sent to server to retrieve picture of unlocked card.
The real time to scan is when you see the url appearing on screen.
It’s quite fast I think.

The scanner doesn’t work with blurred QR codes. That’s why scanning is very tricky if the device’s camera doesn’t have autofocus. In that case you need to be at the right distance.
It also doesn’t work with damaged QR codes.

However, it does also handle 1D codes :slight_smile:

Thank you for your interest in our plugin. We also have a 1.2 that is being reviewed by Unity: three release in as many months, it shows we intend to properly maintain it.

PS:
The devices the plugin is demoed on in the video are:
iPhone 4S
iPod 5
Samsung Galaxy Note1
Samsung Galaxy S2

Looks Nice so far. I wont have the chance to try it out until later.

Code Scanner doesn’t return OnScannerSuccees action on successful scan on android at all
Works on iOS but not on android. Can you double check that?

Im using version 1.2

Since 1.2, please make sure your Action is “OnScannerSuccess” and not anymore “OnScannerSuccees”. Check also you receive something in the “onScannerMessage” callback and you have an object called “GameObject” with the script binded on it.

On our side both Android and iPhone version run correctly (I just made a live test on both platforms).

Get back to me if you still encounter a problem.

I just done simple scene test
Looks like it works fine on “GameObject”. I have renamed “GameObject” in the scene for “QRScanner”, Ive changed references in CameraActivity file.

Then works on iOS and doesnt work on Android. Looks like there might be another place where you refer to GameObject than Camera Activity File

Yes it is right, in camera Activity you need to rename the GameObject at line 447 and there is no other places.

->Have you made sure to recompile the EZCodeScanner.jar library by doing an export of the Eclipse project (and selecting only src as described in the README.txt). It should definitely come from the fact you are still using the old lib in your unity project.

I’m currently evaluating QR Code Decoders for Unity3D. We have the following must-have requirements:

  • realtime processing from video input streams
  • processing from photo library (move and scale) (like the “scan” feature in the free App Qrafter). We want to access the photo libary on the device and move and scale a rectangular area for limiting image processing to a user-defined portion of the image.
  • access to an array with black/white information of the QR Code (ie the recognized QR code image before decoding the text)
  • support for iOS and Android platforms via Unity3D
  • support for Unity3D 3.5 and 4

Does your Unity3D plugin Easy Code Scanner support all those requirements?

Yep, that’s in it, which is good since this is what it’s made for :slight_smile:

That’s not in it currently, but it’s an easy addition, since this is what the plugin does internally. If you make the buy, we’ll release a new version with it. However, it’s not obvious to us why you’d have your user do that instead of directly scanning with your game/app?
One thing though, we will not include move and scale in our plugin. That’s something for you to build in your game/app.

Again, that’s what the plugin does right before decoding it, so it would be an easy addition. But I fail to see the end user use case. Can you elaborate on that one to help us take the decision to add the methods to the plugin?

Yes, all this is in! :slight_smile:

So, we’re ready to add the scan from picture feature (without file access though as this is not a scan plugin’s role).
For the raw B&W frame, we’d like to hear more to sense how widespread is the use :slight_smile:

Have fun with Unity!

That would be great if you could add those two methods: processing from photo library and access to an array with black/white information. How quick can you add those two features after my purchase? If you need help defining the methods’ interfaces, please don’t hesitate to ask.
Unfortunately I can’t tell you more details for the general use cases in this public forum because I signed an NDA with my client. But be surprised what someone can do with QR codes when you’re creative! I think it’s a fantastic idea.

I download it from the asset store, switched to iOS. Loaded “CodeScanner” scene.

But “GameObject” has the error “The referenced script on this Behaviour is missing”

I’m using Unity Pro 4.0.1f2.

Hmmm, how do I fix this ?.

@Hunkahunka Ok, we’ve decided to implement the two methods next week. So with the review time by Unity it’ll be in the 1.3 sometimes two weeks from now. We’ll contact you to validate the method interfaces and types sound smart to you.

@tjbrb Please simply remove the component from the GameObject and relink it. The error probably comes from the import and that the script isn’t at the same place in the demo than in your project.

So I delete the GameObject then add the CodeScannerLauncher script. Complile and got this.

Lastest XCode version

Ld /Users/Admin/Library/Developer/Xcode/DerivedData/Unity-iPhone-gqkfwhirnbkinfddhfwcvlyyizpu/Build/Products/codescanner.app/codescanner normal armv7
cd /Users/Admin/EasyScanner/scanner
setenv IPHONEOS_DEPLOYMENT_TARGET 6.0
setenv PATH “/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin”
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -arch armv7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk -L/Users/Admin/Library/Developer/Xcode/DerivedData/Unity-iPhone-gqkfwhirnbkinfddhfwcvlyyizpu/Build/Products -L/Users/Admin/EasyScanner/scanner -L/Users/Admin/EasyScanner/scanner/Libraries -F/Users/Admin/Library/Developer/Xcode/DerivedData/Unity-iPhone-gqkfwhirnbkinfddhfwcvlyyizpu/Build/Products -filelist /Users/Admin/Library/Developer/Xcode/DerivedData/Unity-iPhone-gqkfwhirnbkinfddhfwcvlyyizpu/Build/Intermediates/Unity-iPhone.build/Debug-iphoneos/Unity-iPhone.build/Objects-normal/armv7/codescanner.LinkFileList -dead_strip -weak_framework CoreMotion -weak-lSystem -fobjc-link-runtime -miphoneos-version-min=6.0 -framework Foundation -framework UIKit -framework OpenGLES -framework QuartzCore -framework OpenAL -liconv.2 -liPhone-lib -framework AudioToolbox -framework CFNetwork -framework MediaPlayer -framework CoreLocation -framework SystemConfiguration -weak_framework iAd -framework CoreMedia -framework CoreVideo -weak_framework AVFoundation -framework CoreGraphics -weak_framework CoreMotion -weak_framework GameKit -o /Users/Admin/Library/Developer/Xcode/DerivedData/Unity-iPhone-gqkfwhirnbkinfddhfwcvlyyizpu/Build/Products/codescanner.app/codescanner

Undefined symbols for architecture armv7:
“_launchScannerImpl”, referenced from:
RegisterMonoModules() in RegisterMonoModules.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

“_launchScannerImpl”, referenced from:

RegisterMonoModules() in RegisterMonoModules.o

ld: symbol(s) not found for architecture armv7

clang: error: linker command failed with exit code 1 (use -v to see invocation)

@fylen I am experiencing the same behavior described by TJBRB after having just acquired the tool from the asset store

Ok, after looking into this, it seems the package uploaded is compromised. We have the fix ready, will test it tomorrow morning on our iOS and Android device range, and resubmit tomorrow.

Sorry about this.

@ TJBRB @cmcwherter : Yes, seems the last version of the plugin (v1.2) has the link between the GameObject and the Script broken. You don’t need to delete the GameObject. Delete the prefab and the component of the GameObject and recreate the prefab and re-link the EasyCodeScanner script to the GameObject. This should fix the issue, we will release an update to fix it shortly.

@TJBRB : The compilation errors are not related to the GameObject but just cannot find the plugin i think. make sure the Plugins folder is in root of Assets folder.

@fylen: Are there any news on the update? How is your progress implementing the two new methods?

@hunkahunka: sorry for the delay. Coder in charge got hold up with another project. We will submit the plugin update this week.

The update will also include a method to better handle the cancel action (user not wanting to scan anything and coming back to the app).

Thank you for your patience,