Unity android前置摄像头

时间:2017-10-08 10:16:37

标签: android unity3d camera front-camera

我怎么能改变这个代码来访问前凸轮,目前它显示我后凸轮。我尝试了一些不同的东西,但似乎并没有起作用。

    if (isLocalPlayer)
    {
        if (this.gameObject.name == "Player 1") {
            WebCamTexture webcamTexture = new WebCamTexture ();
            Player1Image.GetComponent<RawImage> ().texture = webcamTexture;
            Player1Image.GetComponent<RawImage> ().texture = webcamTexture;
            Player1Image.GetComponent<RawImage> ().material.mainTexture = webcamTexture;
            webcamTexture.Play ();
        } else if (this.gameObject.name == "Player 2") {
            WebCamTexture webcamTexture = new WebCamTexture ();
            Player2Image.GetComponent<RawImage> ().texture = webcamTexture;
            Player2Image.GetComponent<RawImage> ().texture = webcamTexture;
            Player2Image.GetComponent<RawImage> ().material.mainTexture = webcamTexture;
            webcamTexture.Play ();
        } else if (this.gameObject.name == "Player 3") {
            WebCamTexture webcamTexture = new WebCamTexture ();
            Player3Image.GetComponent<RawImage> ().texture = webcamTexture;
            Player3Image.GetComponent<RawImage> ().texture = webcamTexture;
            Player3Image.GetComponent<RawImage> ().material.mainTexture = webcamTexture;
            webcamTexture.Play ();
        } else if (this.gameObject.name == "Player 4") {
            WebCamTexture webcamTexture = new WebCamTexture ();
            Player4Image.GetComponent<RawImage> ().texture = webcamTexture;
            Player4Image.GetComponent<RawImage> ().texture = webcamTexture;
            Player4Image.GetComponent<RawImage> ().material.mainTexture = webcamTexture;
            webcamTexture.Play ();
        } else {
            Debug.Log ("All slots full!");
            GameObject.Destroy (this);
            Network.Disconnect ();
        }


    }

1 个答案:

答案 0 :(得分:2)

您目前使用默认设备创建WebcamTexture的代码,因为您使用的构造函数没有任何参数传递 deviceName 的空字符串。

如果您选中WebCamTexture documentation,则会列出一个可以提供 deviceName 的构造函数。现在,您所要做的就是:

  1. 确定前置摄像头的 deviceName
  2. 在创建WebCamTexture对象时,使用 deviceName 作为前置摄像头。
  3. 您可以按如下方式查询可用摄像机的设备名称:

       	$.get( "http://cimailer.dev/templates/listfiles", function( data ) {
    		  
      			  var images =JSON.parse(data);
              
             });

    此外,WebCamDevice的isFrontFacing属性还有助于查询您使用的摄像头是否是前置摄像头。因此,一种天真的方法是确保找到的第一个前置摄像头将用于您的情况:

    var webCamDevices = WebCamTexture.devices;
    foreach(var camDevice in webCamDevices){ 
        Debug.Log(camDevice.name);
    }
    

    请注意,通过删除中断语句,您将使用最后列出的前置摄像头。此外,将 frontCamName 设为私有属性并在Start()函数中初始化它是一种很好的做法。