渋谷ほととぎす通信

エンジニア社長によるUnityとAIのブログ & エンジニアの生存戦略

UnityでiOS・Android実機で動くQRコードリーダーの作り方

UnityでiOS・Android実機で動くQRコードリーダーの作り方

こんにちは、Unityエンジニアのオオバです。

お悩みさん
お悩みさん
  • UnityでQRコードを作れる?
  • QRコードを読み取るスマホアプリってどうやって作る?
  • オオバ
    オオバ
    本記事ではこれらの悩みを解決します。

    一見UnityでQRコードを読み取る方法って難しそうに感じますが、実はとっても簡単です。Unityが機能として提供していないため外部ライブラリを利用することになりますが、手順はとてもシンプルです。

    本記事ではUnityでQRコードの作成、読み取りを利用したい方向けに解説していきます。

    Unityエディタ、スマホで動くアプリにしていくため、下記を参考にスマホ用のUnityプロジェクトを作成しておいてください。

    👉DOTweenの教科書を読んでUnityアニメーションをプログラミングしてみよう!

    QRコード作成用のライブラリの取得

    今回はQRコードの作成、読み取りを実装するために 「ZXing」 というライブラリを使用します。

    上記リンクにアクセスしてGitHubページを開きましょう。

    UnityでiOS・Android実機で動くQRコードリーダーの作り方_0
    右の方にある Releases ボタンをクリックしてください。

    UnityでiOS・Android実機で動くQRコードリーダーの作り方_1
    解凍するとさまざまな環境向けのファイルが現れますが、その中でUnity用を使用します。

    UnityでiOS・Android実機で動くQRコードリーダーの作り方_2

    • zxing.unity.dll
    • zxing.unity.pdb
    • zxing.unity.xml

    Unityフォルダ内に3つのファイル格納されているので、このファイルをUnityプロジェクトに移動させます。

    格納先は Assets/Plugins フォルダにします。Pluginsフォルダが無ければ新規で作成してください。

    UnityでiOS・Android実機で動くQRコードリーダーの作り方_3
    Projectウィンドウは上図のようにファイルを配置しました。

    UnityとQRコードの実装方法

    今回次の3つの処理を作成します。

    • 使いやすくするためのヘルパークラス
    • QRコード作成用のEditorウィンドウ
    • QRコード読み取り処理

    使いやすくするためのヘルパークラス

    今回使用するQRコードライブラリ「ZXing」を使いやすくするためのヘルパークラスを作成します。

    • 画像のQRコードから読み取り
    • WebカメラからQRコードの読み取り
    • QRコードの作成

    ソースコードを見ていきましょう。

    上記のコードの通りRead関数とCreateQRCode関数を使ってQRコードの作成、読み取り機能を実装していきます。

    QRコード作成用のEditorウィンドウ

    次にQRコードを作成するEditorウィンドウを作成してみます。メニューWindow から「QR」からQRコード作成用ウィンドウが表示されます。

    UnityでiOS・Android実機で動くQRコードリーダーの作り方_4

    書き込む文字列を入力、サイズを指定し、Saveボタンをクリックしてみてください。

    UnityでiOS・Android実機で動くQRコードリーダーの作り方_5
    するとAssets配下に 「qr.png」 が生成されます。

    UnityでiOS・Android実機で動くQRコードリーダーの作り方_6
    作成したQRコード画像はこちら。

    しっかり作られましたね。

    QRコード作成用のEditorウィンドウのソースコードはこちら。

    QRコード読み取り処理

    次に読み取りアプリを作成します。先にソースコードから見ていきましょう。

    上記コンポーネントをSceneビューに配置してビルドしてみましょう。

    すると端末のカメラを通してQRコードに書き込まれた文字列を取得できるようになります。

    UnityでiOS・Android実機で動くQRコードリーダーの作り方_7

    ちなみにiOSアプリの場合 メニューProject Settings > Player > Other SettingsCamera Usage Description を入力していないとアプリ起動時にクラッシュするので注意です。

    まとめ

    本記事ではUnityでQRコードの読み取り、書き込みを実装する方法を初回してきました。

    外部ライブラリの「ZXing」を使うととっても簡単に作成できます。

    またAndroid、iOSといったスマホでも動作しますので、QRコードを作成する必要が出てきた方はぜひ利用してみてください。

    オススメ記事
    検証環境
    • Unity6000.0.32f1
    参考サイト