この記事ではUnity 2018.3.9f1 を使っています。
はじめに
私は最近QRコードを使ったアプリを作ってみようと思い、その読みとりのためにWebCamTexture
を使って画像の読み取りを行いました。
ただPC上だと正常に動いたのですが、Androidだとうまくいかないところがいくつかありました。そちらを紹介してみたいと思います。
画像が横向きになっている
スマホの画面を縦にする設定Portrait
にしていたのですが、写真の画面が90度右に傾いてしまいました。
また内側についているカメラでも試してみたところ、上下反転になっているようです。
これはPCの表示と異なるので、注意が必要でしょう。しかしこれを解決法はただ角度を変えればよい(例えばPortrait
なら-90°
回転)ので、さほど問題にはならないでしょう。
メインスレッドで処理をしない
これはQRコードの読み取りなどの場合ですが、画像の解析をUpdate
で毎回呼び出すのはあまりよくないかもしれません。
Unity
では基本メインスレッドで処理をしていて、コルーチンもメインスレッドです。
ただ画像解析をメインスレッドで毎回行うと、他の処理を止めてしまう可能性があります。
なので上手くスレッドを使ってあげたほうがいいかもしれません。
android実機だと動くときと動かないときがある
この問題は今でも解決できていません。
androidでアプリを起動してみると、WebCamTexture
のisPlaying
がtrue
になっていても画像が表示されないことがありました。
ただ一度ホーム画面に戻り、もう一度アプリを起動してみたところ画面が表示されます。また調子がいいときは最初から起動するときもありました。
おそらくカメラの起動に時間がかかっている?と思い、コルーチンでうまく待つように色々試してみたのですが、今のところ防ぐことができていません。
さいごに
もう正直このアプリは結構あきらめモードになりつつあります。
もしなにか分かる方がいましたら、助言をしていただけると嬉しいです。。。