はなちるのマイノート

Unityをメインとした技術ブログ。自分らしくまったりやっていきたいと思いますー!

【Unity】WebCamTextureがandroid実機だとうまく動かない件

この記事ではUnity 2018.3.9f1 を使っています。

はじめに

私は最近QRコードを使ったアプリを作ってみようと思い、その読みとりのためにWebCamTextureを使って画像の読み取りを行いました。

ただPC上だと正常に動いたのですが、Androidだとうまくいかないところがいくつかありました。そちらを紹介してみたいと思います。

画像が横向きになっている

スマホの画面を縦にする設定Portraitにしていたのですが、写真の画面が90度右に傾いてしまいました

また内側についているカメラでも試してみたところ、上下反転になっているようです。

これはPCの表示と異なるので、注意が必要でしょう。しかしこれを解決法はただ角度を変えればよい(例えばPortraitなら-90°回転)ので、さほど問題にはならないでしょう。

メインスレッドで処理をしない

これはQRコードの読み取りなどの場合ですが、画像の解析をUpdateで毎回呼び出すのはあまりよくないかもしれません。

Unityでは基本メインスレッドで処理をしていて、コルーチンもメインスレッドです。

ただ画像解析をメインスレッドで毎回行うと、他の処理を止めてしまう可能性があります

なので上手くスレッドを使ってあげたほうがいいかもしれません。

android実機だと動くときと動かないときがある

この問題は今でも解決できていません。

androidでアプリを起動してみると、WebCamTextureisPlayingtrueになっていても画像が表示されないことがありました。

ただ一度ホーム画面に戻り、もう一度アプリを起動してみたところ画面が表示されます。また調子がいいときは最初から起動するときもありました。

おそらくカメラの起動に時間がかかっている?と思い、コルーチンでうまく待つように色々試してみたのですが、今のところ防ぐことができていません。

さいごに

もう正直このアプリは結構あきらめモードになりつつあります。

もしなにか分かる方がいましたら、助言をしていただけると嬉しいです。。。