可能比较常用,但是每次都需要重新写,这次直接把这个贴在这里,下次直接复制粘贴。

主要功能:打开WebCamera,在空间中创建Panel,用于显示相机画面。Panel做了比例适配,可以正确显示图像并铺满屏幕。Panel放在相机最远处,避免与其他模型穿插

using UnityEngine;
/*
create by keefor On 20200106
*/
[RequireComponent(typeof(MeshRenderer), typeof(MeshFilter))]
public class CameraPlay : MonoBehaviour
{[HideInInspector]public WebCamTexture camtex;private Material mat;private Camera cam;private static CameraPlay inst;public static CameraPlay Inst{get{if (inst == null){var pp = GameObject.CreatePrimitive(PrimitiveType.Quad);pp.name = "WebCamera";Destroy(pp.GetComponent<Collider>());inst = pp.AddComponent<CameraPlay>();}return inst;}}void Awake(){inst = this;UnityEngine.Android.Permission.RequestUserPermission(UnityEngine.Android.Permission.Camera);WebCamDevice[] cd = WebCamTexture.devices;camtex = new WebCamTexture(cd[0].name,  480,320,15);//考虑到性能问题这里选择了小尺寸var render = this.GetComponent<Renderer>();render.material = mat = new Material(Shader.Find("Unlit/Texture"));cam = Camera.main;if (cam == null) cam = Camera.allCameras[0];transform.SetParent(cam.transform);transform.localPosition = new Vector3(0, 0, cam.farClipPlane);}void OnEnable(){camtex.Play();mat.mainTexture = camtex;var lt = cam.ScreenToWorldPoint(new Vector3(0, 0, cam.farClipPlane));var rb = cam.ScreenToWorldPoint(new Vector3(Screen.width, Screen.height, cam.farClipPlane));Debug.Log(lt + ":" + rb);var sc = new Vector3(Mathf.Abs(rb.x - lt.x), Mathf.Abs(lt.y - rb.y), 1);var ratio = sc.x / sc.y;var scratio = (float)camtex.width / camtex.height;if (ratio > scratio){sc.y = sc.x / scratio;}else{sc.x = sc.y * scratio;}transform.localScale = sc;}void OnDisable(){camtex.Stop();}}

Unity开启摄像头并铺满屏幕相关推荐

  1. img 在video上面_HTML,img,video无法铺满屏幕解决方法,同视频做网页背景无法全屏的解决方法...

    我在这里用视频做为网页背景,给视频设了100%宽高,在firebug也显示video的宽高和页面是一样的,但是效果却没出来,视频没有铺满屏幕.下面是我的代码(原代码,错误的) *{margin: 0; ...

  2. 计算机显示器图片怎么铺满全屏,win10电脑显示器屏幕不能铺满怎么办_win10电脑显示不能铺满屏幕处理方法-win7之家...

    我们在win10电脑中设置的桌面壁纸通常都是将其铺满整个屏幕,这样让用户看起来也相当的舒适,可是最近总有用户的win10电脑显示器出现背景壁纸不能够铺满整个屏幕的现象,那么win10电脑显示器屏幕不能 ...

  3. tableView在iPad上不能铺满屏幕

    tableView在iPad上不能铺满屏幕在手机上是好的 需要给tableview 加上一句判断 if #available(iOS 9.0, *) { tableView!.cellLayoutMa ...

  4. 微信小程序之图片处理(居中、铺满屏幕)附源程序

    图片显示是小程序设计必须要经过的步骤,本人看到网上教学有限,现整理出自己设计过程中出现的问题,应该可以解决你遇到的问题. 用最后给的完整代码,按照我的步骤一定能调试出来,不行再联系我. 先给用到的代码 ...

  5. 背景图铺满屏幕的方法

    背景图铺满屏幕的方法 1.  第一种:先获得bitmap,然后再利用这个bitmap,使用createscaledbitmap进行缩放,其中的参数是希望得到的位图的尺寸 代码如下所示: //获得位图的 ...

  6. vue项目登录页背景图百分百铺满屏幕宽高自适应

    vue项目背景图百分百铺满屏幕宽高自适应 .login{background: url(../../../static/img/login/beijing@2x.png);background-siz ...

  7. uni-微信小程序 图片铺满屏幕

    uni-微信小程序 图片铺满屏幕 在img标签里添加mode="widthFix" <image src="" mode="widthFix&q ...

  8. 微信小程序中如何将图片铺满屏幕,作为背景图片

    背景图片的制作 我相信有很多人和我一样,在制作背景图片是遇到了困难,比如图片为何显示扭曲,不是按给与图片大小显示的,又比如为何图片无法置顶显示,而是有一定的空间隔开等,在此我会演示如何制作一个背景图片 ...

  9. android videoview视频铺满屏幕

    打开源码,VideoView本质是封装了SurfaceView+MediaPlayer.... 铺满屏幕的方法网上也有很多,个人看了源码,也找到一个方法,分享之: 首先当然是videoview布局,m ...

最新文章

  1. 程序员吐槽:在阿里工作带来光环,在京东却带来负面影响!
  2. ELK的What files do you want me to watch? Exiting: no modules or inputs enabled and configuration
  3. 文献学习(part34)
  4. 【C++】C++中头文件的使用
  5. TensorBoard:嵌入可视化
  6. rpg制作大师2003_RPG制作大师MV 我们一起做游戏(十四)
  7. Git:撤销回滚操作
  8. [教程]centos卸载、安装mysql(源码编译安装方式)
  9. 光伏发电最大功率点(MPPT)跟踪技术
  10. CIDetector 边缘识别
  11. 什么是软件测试中的探索性测试(完整指南)(三)
  12. APP测试面试题总结
  13. golang 腾讯通用OCR 文字识别 Api 调用
  14. linux终端无法输入大写字母,linux不能打大写字母
  15. 专利代理人的真实工作状况
  16. App如何生成下载二维码?扫码即可下载App
  17. FTP:vsftpd中的local_umask和anon_umask
  18. elementUI textarea 禁止拉伸
  19. 微信小程序 文字下标_微信小程序开发中,怎么给导航栏图标下面加上文本?...
  20. 搭建Ethereum以太坊测试网络Rinkeby节点

热门文章

  1. BIV+CSS网页的标准化布局
  2. 高中国际班ap计算机课程内容,关于国际高中课程AP课程,你想知道的都在这里了...
  3. 一文读懂云计算:发展历程、概念技术与现状分析
  4. Android invalidate、requestLayout
  5. 【牛客网java练习错题笔记】 --Java基础打卡day002
  6. php jmail实例,ASP_asp jmail发邮件 详细解析,发个个比较详细的asp与jmail 实 - phpStudy...
  7. kaggle竞赛入门:titanic数据预测学习(翻译)
  8. 绿色小巧——WebPlayer2009网络播放器发布
  9. 程序人生【2】 论嵌入式架构的重要性
  10. 新做的网站怎么做seo优化推广,让搜索引擎快速收录的方法