Unityで制作したGame画面にウェブカメラで撮影している動画をリアルタイムに半透明表示する方法です。
uGUIを使って、画面に上にRawimageを用意し、そこにウェブカメラの画像を表示します。
using UnityEngine; using System.Collections; using UnityEngine.UI; public class WebcamOverlay : MonoBehaviour { public int Width = 1920; public int Height = 1080; public int FPS = 30; public int CamDeviceNo = 0; public float Alpha = 0.5f; void Start() { RawImage rawimage; rawimage = this.GetComponents<RawImage>()[0]; WebCamDevice[] devices = WebCamTexture.devices; // display all cameras for (var i = 0; i < devices.Length; i++) { Debug.Log(i.ToString() + ": "+ devices[i].name); } WebCamTexture webcamTexture = new WebCamTexture(devices[CamDeviceNo].name, Width, Height, FPS); rawimage.texture = webcamTexture; rawimage.material.mainTexture = webcamTexture; rawimage.color = new Color(rawimage.color.r, rawimage.color.g, rawimage.color.b, Alpha); webcamTexture.Play(); } }
UIからRawimageを追加して、WidthやHeightを適切に指定します。
上記スクリプトを貼り付けると
こんな感じで半透明でオーバーレイされます。