有两种方法,常用的是GUI方法,代码如下:

public class CameraTest : MonoBehaviour {

    WebCamTexture camTexture;

    void Start () {
        StartCoroutine(CallCamera());
    }

    IEnumerator CallCamera()
    {
        yield return Application.RequestUserAuthorization(UserAuthorization.WebCam);
        if (Application.HasUserAuthorization(UserAuthorization.WebCam))
        {
            if (camTexture != null)
                camTexture.Stop();

            WebCamDevice[] cameraDevices = WebCamTexture.devices;

            string deviceName = cameraDevices[0].name;
            Debug.Log(deviceName);

            camTexture = new WebCamTexture(deviceName);
            camTexture.Play();
        }
    }


    void OnGUI()
    {
        if(camTexture!=null)
        {
            GUI.DrawTexture(new Rect(0, 0, Screen.width, Screen.height), camTexture, ScaleMode.StretchToFill);
       }
    }
}

  

GUI已经被抛弃,效率,DrawCall,适配等各种差,现使用UGUI实现:

public class CameraTest : MonoBehaviour {

    WebCamTexture camTexture;

    Image img;

    public GameObject quad;

    void Start () {
        img = GetComponentInChildren<Image>();
        StartCoroutine(CallCamera());
    }

    IEnumerator CallCamera()
    {
        yield return Application.RequestUserAuthorization(UserAuthorization.WebCam);
        if (Application.HasUserAuthorization(UserAuthorization.WebCam))
        {
            if (camTexture != null)
                camTexture.Stop();

            WebCamDevice[] cameraDevices = WebCamTexture.devices;

            string deviceName = cameraDevices[0].name;
            Debug.Log(deviceName);

            camTexture = new WebCamTexture(deviceName);
            img.canvasRenderer.SetTexture(camTexture); //注意改行代码
            camTexture.Play();
        }
    }

}

  

 

相关文章:

  • 2022-12-23
  • 2021-08-07
  • 2022-01-21
  • 2021-09-09
  • 2022-12-23
  • 2021-09-17
  • 2021-09-24
  • 2022-12-23
猜你喜欢
  • 2021-12-04
  • 2022-12-23
  • 2022-12-23
  • 2023-02-24
  • 2022-12-23
  • 2021-07-06
相关资源
相似解决方案