【Unity】WebCamTextureを使ってみた

Unityだけでカメラアプリっぽいものが作れないかなと思って調べた所、WebCamTextureというものが用意されたいたので試しに使ってみた内容を書いていこうと思います。


環境

Unity2018.3.0f2

XCode10.1


準備

iPhoneでカメラアクセスをする為には、Info.plistにNSCameraUsageDescriptionを追記する必要があったので、下記スクリプトを用意してAssets/Scripts/Editorフォルダ内に配置しておきました。


実装1

WebCamTextureはTextureクラスを継承している為、UGUIのRawImageのtexture変数に設定すればそのまま表示されるかな?と思ったので、RawImageを使ってみました。それに加えてWebCamTextureに用意されている変数も表示してみました。

Hierarchyはこんな感じに。

スクリプトはこんな感じに。

  1. カメラ利用をユーザー確認に確認する
  2. 利用できるカメラデバイス名を取得してWebCamTextureを生成
  3. RawImageに0番目のWebCamTextureを設定しPlay関数を呼びカメラ再生を開始
  4. Update関数内でWebCamTexture情報を表示

実際にiPhoneに転送して動かしてみたのものがこちらです。

RawImageもWebCamTexture情報も表示する事ができました!


実装2

先程、実装したものはRawImageに表示された向きが意図した向きではありませんでした。調べてみるとWebCamTexture情報を使って表示向きを調整する必要がありそうという事で、表示向きを調整しつつ全画面表示にしてみました。(Textの表示は無くしています)

実行したものがこちらです。

全画面表示で向きも意図した向きになりました。


まとめ

WebCamTextureを使用すればフロント、バックカメラで映ったもの簡単に表示することができました!映っているものをカメラロールに保存したい場合はネイティブコードを書かないと駄目なようですが、単に表示するだけであれば数時間でできたしまったのでとても便利だと思います。また、PostProcessingStackを使えば見た目も簡単に変えられそうな気がします!


参考url

  • https://docs.unity3d.com/ja/current/ScriptReference/WebCamTexture.html
  • https://nil-one.com/blog/article/2018/01/30/imageanalysisusingunity03/
  • https://www.urablog.xyz/entry/2017/07/06/225444

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です