Unity调用外部摄像头,全屏显示摄像头画面
2016-03-16 10:59
911 查看
有两种方法,常用的是GUI方法,代码如下:
GUI已经被抛弃,效率,DrawCall,适配等各种差,现使用UGUI实现:
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(); } } }
相关文章推荐
- 定位unity在rk3288平台上音频解码无效的bug---定位终成功
- Unity连接SQL数据库方法
- [Unity技巧]unity中使用visual studio编写shader并设置代码高亮
- Unity Camera 跟随自动寻路物体 物体抖动 解决备忘
- Unity Shaders and Effects Cookbook (1-2)创建自定义漫反射光照模型
- Unity MVC
- Unity3D-游戏特效制作【1】
- unity视频笔记——ngui-技能冷却,注册,聊天
- raknet unity3d
- Unity bug 合集(1-50)
- Unity3D实现动态加载游戏资源
- [Unity插件]DOTween(3)
- Unity 怪名称、血条和飘血跟随
- Unity 小记
- Unity教程之-让物体朝摄像机Camera观察方向移动(一)
- unity lua热更新之 利用lua的table实现c#的new对象
- 【Unity3D】【NGUI】怎样动态给EventDelegate加入參数
- Unity3d Json解析库
- [UnityUI]UGUI新手引导
- [Unity插件]DOTween(2)