開発入門 > Unity > Unity画面にウェブカメラの画像を半透明で重ねて表示

Unity画面にウェブカメラの画像を半透明で重ねて表示

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を適切に指定します。
上記スクリプトを貼り付けると

Overlay

こんな感じで半透明でオーバーレイされます。

Transparent

 

カテゴリー: Unity

HOME / Coporate Site/ Careers

© Copyright 2018 STYLY..