在Unity 3d中切换设备相机

时间:2014-10-31 12:01:36

标签: image unity3d camera crop unityscript

我正在使用WebCamTexture类从设备打开相机。我希望在游戏之间从前向后切换相机,反之亦然。有人可以帮忙吗?

    WebCamDevice[] devices = WebCamTexture.devices;
    WebCamTexture   webCamTexture = new WebCamTexture(devices[1].name);
    renderer.material.mainTexture = webCamTexture;
    webCamTexture.filterMode = FilterMode.Trilinear;
    webCamTexture.Play();

这会打开我的前置摄像头。但是我无法切换相机。

3 个答案:

答案 0 :(得分:2)

我得到了解决方案。您只需设置设备的名称即可。默认情况下,后置摄像头是"摄像头0"和#34;相机1"前置摄像头。首先停止相机,更换设备。

if (devices.Length > 1) {
         webCamTexture.Stop();
        if (frontCamera == true)
        {
            webCamTexture.deviceName = devices[0].name;
            frontCamera = false;
        }
        else
        {
            webCamTexture.deviceName = devices[1].name;
            frontCamera = true;
        }
         webCamTexture.Play ();
    }

答案 1 :(得分:0)

我使用以下代码使用C#脚本切换iPhone设备的前后摄像头

WebCamDevice[] devices;

public WebCamTexture mCamera = null;
public GameObject plane; // this is the object where i am going to show the camera

// Use this for initialization
void Start ()
{
    devices = WebCamTexture.devices;

    plane = GameObject.FindWithTag ("Player");

    mCamera = new WebCamTexture (Screen.width,Screen.height);
    mCamera.deviceName = devices[0].name;  // Front camera is at Index 1 and Back Camera is at Index 0
    plane.renderer.material.mainTexture = mCamera;
    mCamera.Play ();

}

以上代码将在加载场景时显示后置摄像头,用于通过单击下方定义的前按钮访问前置摄像头

    if (GUI.Button (new Rect (100, 1000, 120, 40), "Front"))
    {
        if(devices.Length>1)
         {
            mCamera.Stop();
            mCamera.deviceName = (mCamera.deviceName == devices[0].name) ? devices[1].name : devices[0].name;
            mCamera.Play();
        }

    }

这是按钮,通过点击它将重定向到前置摄像头并再次点击它将重定向到后置摄像头

答案 2 :(得分:0)

await

我们已经将相机捕获工具包用于社交图像共享游戏/应用程序,以执行与您所描述的功能类似的功能,此处介绍的其他解决方案并非100%可靠,因为可能存在不同的设备正面和背面设备的顺序。