开启外部摄像头

在unity中建立一个image作为摄像头显示画面,然后通过命令render到image上即可。

public WebCamTexture webTex;  
    public string deviceName;  
      
    void Start()  
    {  
          StartCoroutine(CallCamera())
    }  
    void Update()  
    {  
          
    }  ///  
///调用摄像头  
///  
    IEnumerator CallCamera()    
    {  
        yield return Application.RequestUserAuthorization(UserAuthorization.WebCam);    
        if(Application.HasUserAuthorization(UserAuthorization.WebCam))    
        {    
            WebCamDevice[] devices = WebCamTexture.devices;        
            deviceName = devices[0].name;    
            //设置摄像机摄像的区域    
            webTex=new WebCamTexture(deviceName,10,10,10); 
            GetComponent<MeshRenderer>().material.mainTexture = webTex;     
            webTex.Play();//开始摄像    
        }    
    }

抓取当前画面

public void Capture()
    {
        //WebCamTexture wc = new WebCamTexture(160, 120);
        //wc.play();
        Texture2D t = new Texture2D(webTex.width, webTex.height);
        t.SetPixels(webTex.GetPixels());
        t.Apply();
        byte[] byt = t.EncodeToPNG();
        File.WriteAllBytes(@"D:/test.jpg", byt);
    }

你可能感兴趣的:(Unity问题解决)