はじめに
「ZXing.Net」を Unity プロジェクトに導入することで
Android で QR コードからデータを読み込むことができるようになります
(iOS でも使用できますが、本記事では Android における使い方を紹介していきます)
目次
サンプルプロジェクト
ZXing.Net を使用して Android で QR コードからデータを読み込む処理を実装した
サンプルプロジェクトを上記リポジトリにアップしました
上記リポジトリの Unity プロジェクトをダウンロードして Android ビルドし、
Unity プロジェクト内に含まれている QRCode.png をカメラで読み込むと
画面に「Pikachu」と表示されることが確認できます
使い方
ZXing.Net の入手
https://github.com/micjahn/ZXing.Net/releases
上記のページにアクセスして「ZXing.Net.0.16.5.0.zip」を選択し、
ダウンロードした「ZXing.Net.0.16.5.0.zip」を展開します
そして展開したフォルダ内の「unity」フォルダを開いて
その中に存在する「zxing.unity.dll」を
Unity プロジェクトに追加します
QR コードの作成
上記のスクリプトを Unity プロジェクトの Editor フォルダに追加して
Unity メニューの「Tools > Create QRCode」を押すと
Unity プロジェクト内に QR コードの画像ファイルが作成されます
この QR コードは「Pikachu」という文字列を含むデータとなります
// QR コードを読み込んだ取得できるデータ var contents = "Pikachu";
スクリプト内の contents 変数で QR コードに含むデータを変更できます
QR コードの読み込み
上記のスクリプトを Unity プロジェクトに追加して
シーンのゲームオブジェクトにアタッチします
そして、シーンに Canvas を作成して Text と RawImage のオブジェクトを作成して
適当な位置に配置します
Text オブジェクトには QR コードから読み込んだ文字列が表示されます
RawImage オブジェクトには Android カメラが写している画像が表示されます
最後に Text オブジェクトと RawImage オブジェクトを
先ほどアタッチした QRCodeReader コンポーネントに設定します
Android ビルド
前項までで QR コードの作成と、読み込むプログラムの実装ができたので
Android ビルドして実機で確認します
ビルドしたアプリが起動して、上記の確認ダイアログが表示されたら「許可」を押します
これで、先ほど作成した QR コードをカメラで読み込むと
「Pikachu」という文字列が画面に表示されます
もしも、カメラが写している画面の上下左右が逆になっている場合は
RawImage オブジェクトの Rotation を編集します
- 左右反転している場合は Y に 180 と入力
- 上下反転している場合は X に 180 と入力
以上が ZXing.Net を使用して Android で QR コードからデータを読み込む方法になります