#概要
Unity初心者です。備忘録を兼ねて書きます。
PC内蔵のカメラや外付けのカメラを使って、Unity上で画像情報を受け取りたいと思います。
#環境
- Windows 10
- Unity 2019.2.10f1
#手順
- 必要なオブジェクトを置く
- スクリプトを書く
- アタッチする
##手順1 オブジェクトを置く
ここで置くオブジェクトはRaw Image
とEvent System
と二つです。
###Raw Image
を置く
Raw Image
のドキュメントはこちらから。
私の中でのImage
との違いとしてこちらは任意のテクスチャが使用できるので、今回のようにカメラを使いたいときとかにいいのかなと思います。
オブジェクトを置いたら、カメラに映る位置まで移動させておきます。
ヒエラルキーウインドウを右クリック⇒「UI」⇒「Raw Image」
###Event System
を置く
Event System
のドキュメントはこちらから。
これは入力を受け取ってイベント送信の処理しているものだと思います。
ヒエラルキーウインドウを右クリック⇒「UI」⇒「Event System」
##手順2 スクリプトを書く
まずはスクリプトを作成します。
プロジェクトウインドウを右クリック⇒「Create」⇒「C#Script」
ファイル名は「CameraTest.cs」にしました。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;//これをつけ加え忘れるとエラーが出ます
public class CameraTest : MonoBehaviour
{
public RawImage rawImage;
WebCamTexture webCamTexture;
// Start is called before the first frame update
void Start () {
webCamTexture = new WebCamTexture();
rawImage.texture = webCamTexture;
webCamTexture.Play();
}
}
##手順3 アタッチする
手順2でつくったスクリプトを手順1でつくったオブジェクトそれぞれにアタッチしていきます。
###RawImageにアタッチする
RawImageにスクリプトをアタッチします。
###EventSystemにアタッチする
EventSystemにアタッチした際は、スクリプトのコンポーネント内のRaw Image
を手順1で作ったRawImageにします。
#実際の画像
これで完成です。実際動かしてみるとPC内蔵のカメラがあれば画像情報が取れているはずです。
動きもあまりラグなく反映されます。
#謝辞
今回はYOUNASHIPさんのUnityでカメラ(PC/スマホ)を使う方法を参考・引用させていただきました。ありがとうございます。