摄像头画面显示于unity场景


🐾 个人主页 🐾

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


目录

一、前言

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

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

二、UI画面

  1. 首先创建一个RawImage,用于在UI中显示画面
  2. 调整RawImage尺寸,不调整也行,这里调整主要便于演示。
    选中RawImage,然后点击Rect Transform中的方标,然后按住Alt键的同时点击最右下角的位置,直至RawImage铺满屏幕。
  3. 创建一个脚本文件,并键入以下的代码
csharp 复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class WebCamToUI : MonoBehaviour
{
    // 显示视频画面的RawImage
    public RawImage rawImage; 

    // Start is called before the first frame update
    void Start()
    {
        // 创建一个WebCamTexture实例
        WebCamTexture webcamTexture = new WebCamTexture();

        // 将WebCamTexture应用到RawImage上
        rawImage.texture = webcamTexture;

        // 开始播放摄像头的纹理
        webcamTexture.Play();
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}
  1. 将脚本挂载到RawImage中,然后将开始创建的RawImage赋值给变量rawImage
  2. 运行看效果

    不好意思,搞错了,重来。

三、显示于场景

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

  1. 创建一个Cube
  2. 创建一个脚本文件,键入以下代码
csharp 复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class WebCamToScene : MonoBehaviour
{
	// 需要显示摄像头内容的物体的MeshRenderer组件
    public MeshRenderer meshRenderer; 

    // Start is called before the first frame update
    void 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 frame
    void Update()
    {
        
    }
}
  1. 挂载脚本,赋值变量。
    这里直接拖物体只由于创建的物体中自带有Mesh Renderer组件
  2. 运行看效果

    其他的物体也可以,比如前面提到的QuadPlane

四、结语

文章看完后别忘了自己不看步骤再做一遍,巩固一下,记住脚本中的API。

这一期文章的内容就到这里,下期见,拜拜。

相关推荐
南無忘码至尊1 小时前
Unity学习90天 - 第4天 - 认识物理系统基础并实现物体碰撞反弹
学习·unity·游戏引擎
南無忘码至尊1 小时前
Unity学习90天 - 第4天 - 学习预制体 Prefab + 实例化并实现按鼠标生成子弹
学习·unity·游戏引擎
魔士于安14 小时前
Unity资源Toon City Pack 发电厂 工地 公园 地铁站口 银行 车 直升飞机 可动 URP
游戏·unity·游戏引擎·贴图·模型
SmartRadio17 小时前
NRF52833 + MPU6050 室内定位跟随无人机
游戏引擎·无人机·cocos2d
心前阳光17 小时前
Unity之运行时标准材质半透明无效果
unity·游戏引擎·材质
张老师带你学20 小时前
Unity buildin 石头围墙 树木 树墩子 卡通风格 栅栏 小桥 低多边形
科技·游戏·unity·游戏引擎·模型
呆呆敲代码的小Y1 天前
【Unity工具篇】| 使用YooAsset接入自己的游戏项目,实现完整热更新流程
游戏·unity·游戏引擎·热更新·yooasset·资源热更新
张老师带你学1 天前
Unity 低多边形 赛博朋克城市 拼装 模型 道路 建筑 buildin
科技·游戏·unity·游戏引擎·模型
PassionY1 天前
Unity NGO 系列教程(四):多人抓取的权限争夺
unity·xr·network·ngo·multiplayer·ownership·多人竞态权
ฅ^•ﻌ•^ฅ11 天前
Unity mcp并使用claude code制作游戏
游戏·unity·游戏引擎