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();
            }
        }
    
    }
    

      

  • 相关阅读:
    自我介绍
    企业级应用与互联网应用差异
    Java EE 目标
    自我评价
    第二周———搜查令
    软件工程项目____搜查令
    结对项目--黄金点游戏(邓乐&曾亮)
    wordcount程序
    四则运算 来自 http://www.cnblogs.com/ys1101/p/4368103.html
    问题
  • 原文地址:https://www.cnblogs.com/scotly/p/5282606.html
Copyright © 2011-2022 走看看