zoukankan      html  css  js  c++  java
  • Unity调用外部摄像头,全屏显示摄像头画面

    有两种方法,常用的是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();
            }
        }
    
    }
    

      

  • 相关阅读:
    Active Report 3 生成图表
    js asp.net enable/disable validator
    [.net] 如何在mail的加入正文显示图片
    [javascript] 得到 javascript 的当前文件名
    Colorful Stones
    Jam的计数法

    Beautiful Matrix
    能量项链
    Maxim and Discounts
  • 原文地址:https://www.cnblogs.com/scotly/p/5282606.html
Copyright © 2011-2022 走看看