using UnityEngine;
using System.Collections;
public class DetectDeviceList : MonoBehaviour {
// Use this for initialization
void Start () {
WebCamTexture webcamTexture = new WebCamTexture ();
//如果有后置摄像头,调用后置摄像头
for (int i = 0; i < WebCamTexture.devices.Length; i++) {
print (WebCamTexture.devices [i].name);
if (WebCamTexture.devices [i].name == "Creative GestureCam") {
webcamTexture.deviceName = WebCamTexture.devices [i].name;
break;
}
}
Renderer renderer = GetComponent<Renderer>();
renderer.material.mainTexture = webcamTexture;
webcamTexture.Play();
}
}
把相机移到平面的另一侧,同时平面绕x轴旋转90
3, 图像水平变换
MirrorFlipCamera.cs 脚本放在相机上,这样是整个视野的图像都会变化
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MirrorFlipCamera : MonoBehaviour
{
new Camera camera;
public bool flipHorizontal;
void Awake()
{
camera = GetComponent<Camera>();
}
void OnPreCull()
{
camera.ResetWorldToCameraMatrix();
camera.ResetProjectionMatrix();
Vector3 scale = new Vector3(flipHorizontal ? -1 : 1, 1, 1);
//Vector3 scale = new Vector3(1,flipHorizontal ? -1 : 1, 1);
//Vector3 scale = new Vector3(1,1 , flipHorizontal ? -1 : 1);
camera.projectionMatrix = camera.projectionMatrix * Matrix4x4.Scale(scale);
}
void OnPreRender()
{
GL.invertCulling = flipHorizontal;
}
void OnPostRender()
{
GL.invertCulling = false;
}
}

内容来源于网络如有侵权请私信删除