摄像头画面显示于unity场景

2024-06-23 10:04

本文主要是介绍摄像头画面显示于unity场景,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

请添加图片描述

🐾 个人主页 🐾

🪧阿松爱睡觉,横竖醒不来
🏅你可以不屠龙,但不能不磨剑🗡

目录

  • 一、前言
  • 二、UI画面
  • 三、显示于场景
  • 四、结语

一、前言

由于标题限制,这篇文章主要是讲在unity中调用摄像头,然后将摄像头捕捉到的画面显示到场景中,无论是UI画面还是场景中的某个物体上;至于应用的场景可以用于AR增强现实。

那么话不多说,直接开始今天的内容吧!

请添加图片描述

二、UI画面

  1. 首先创建一个RawImage,用于在UI中显示画面
    在这里插入图片描述
  2. 调整RawImage尺寸,不调整也行,这里调整主要便于演示。
    选中RawImage,然后点击Rect Transform中的方标,然后按住Alt键的同时点击最右下角的位置,直至RawImage铺满屏幕。
    在这里插入图片描述
  3. 创建一个脚本文件,并键入以下的代码
    在这里插入图片描述
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;public class WebCamToUI : MonoBehaviour
{// 显示视频画面的RawImagepublic RawImage rawImage; // Start is called before the first frame updatevoid Start(){// 创建一个WebCamTexture实例WebCamTexture webcamTexture = new WebCamTexture();// 将WebCamTexture应用到RawImage上rawImage.texture = webcamTexture;// 开始播放摄像头的纹理webcamTexture.Play();}// Update is called once per framevoid Update(){}
}
  1. 将脚本挂载到RawImage中,然后将开始创建的RawImage赋值给变量rawImage
    在这里插入图片描述
  2. 运行看效果
    请添加图片描述
    不好意思,搞错了,重来。
    请添加图片描述

三、显示于场景

在场景中显示和在UI中显示的逻辑其实大差不差,还是比较相似的,这里以Cube为例,也可以用QuadPlane

  1. 创建一个Cube
    在这里插入图片描述
  2. 创建一个脚本文件,键入以下代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class WebCamToScene : MonoBehaviour
{// 需要显示摄像头内容的物体的MeshRenderer组件public MeshRenderer meshRenderer; // Start is called before the first frame updatevoid Start(){// 创建WebCamTexture实例WebCamTexture webcamTexture = new WebCamTexture();// 创建一个材质并应用摄像头纹理Material material = new Material(Shader.Find("Unlit/Texture"));material.mainTexture = webcamTexture;// 将材质应用到MeshRenderer上meshRenderer.material = material;// 开始播放摄像头纹理webcamTexture.Play();}// Update is called once per framevoid Update(){}
}
  1. 挂载脚本,赋值变量。
    这里直接拖物体只由于创建的物体中自带有Mesh Renderer组件
    在这里插入图片描述
  2. 运行看效果
    请添加图片描述
    其他的物体也可以,比如前面提到的QuadPlane
    请添加图片描述

四、结语

文章看完后别忘了自己不看步骤再做一遍,巩固一下,记住脚本中的API。
这一期文章的内容就到这里,下期见,拜拜。

请添加图片描述

这篇关于摄像头画面显示于unity场景的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1086849

相关文章

流媒体平台/视频监控/安防视频汇聚EasyCVR播放暂停后视频画面黑屏是什么原因?

视频智能分析/视频监控/安防监控综合管理系统EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。该平台以其强大的视频处理、汇聚与融合能力,在构建全栈视频监控系统中展现出了独特的优势。视频监控管理系统EasyCVR平台内置了强大的视频解码、转码、压缩等技术,能够处理多种视频流格式,并以多种格式(RTMP、RTSP、HTTP-FLV、WebS

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

第10章 中断和动态时钟显示

第10章 中断和动态时钟显示 从本章开始,按照书籍的划分,第10章开始就进入保护模式(Protected Mode)部分了,感觉从这里开始难度突然就增加了。 书中介绍了为什么有中断(Interrupt)的设计,中断的几种方式:外部硬件中断、内部中断和软中断。通过中断做了一个会走的时钟和屏幕上输入字符的程序。 我自己理解中断的一些作用: 为了更好的利用处理器的性能。协同快速和慢速设备一起工作

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

PostgreSQL核心功能特性与使用领域及场景分析

PostgreSQL有什么优点? 开源和免费 PostgreSQL是一个开源的数据库管理系统,可以免费使用和修改。这降低了企业的成本,并为开发者提供了一个活跃的社区和丰富的资源。 高度兼容 PostgreSQL支持多种操作系统(如Linux、Windows、macOS等)和编程语言(如C、C++、Java、Python、Ruby等),并提供了多种接口(如JDBC、ODBC、ADO.NET等

lvgl8.3.6 控件垂直布局 label控件在image控件的下方显示

在使用 LVGL 8.3.6 创建一个垂直布局,其中 label 控件位于 image 控件下方,你可以使用 lv_obj_set_flex_flow 来设置布局为垂直,并确保 label 控件在 image 控件后添加。这里是如何步骤性地实现它的一个基本示例: 创建父容器:首先创建一个容器对象,该对象将作为布局的基础。设置容器为垂直布局:使用 lv_obj_set_flex_flow 设置容器

C# dateTimePicker 显示年月日,时分秒

dateTimePicker默认只显示日期,如果需要显示年月日,时分秒,只需要以下两步: 1.dateTimePicker1.Format = DateTimePickerFormat.Time 2.dateTimePicker1.CustomFormat = yyyy-MM-dd HH:mm:ss Tips:  a. dateTimePicker1.ShowUpDown = t

小程序button控件上下边框的显示和隐藏

问题 想使用button自带的loading图标功能,但又不需要button显示边框线 button控件有一条淡灰色的边框,在控件上了样式 border:none; 无法让button边框隐藏 代码如下: <button class="btn">.btn{border:none; /*一般使用这个就是可以去掉边框了*/} 解决方案 发现button控件有一个伪元素(::after