我可以使用设备的相机在 Unity 中拍照吗?

2023-12-11

我完全不熟悉 Unity3D 更复杂的功能集,并且很好奇它是否有能力拍摄照片然后对其进行操作。具体来说,我的愿望是让用户拍一张自拍照,然后让他们在脸部周围描画以创建一个 PNG,然后将其纹理映射到模型上。

我知道将面部映射到模型上很简单,但我想知道是否需要将照片/雕刻功能写入包含的 Chrome 应用程序中,或者是否可以在 Unity 中完成这一切。我不需要关于如何做到这一点的教程,只是询问这是否可行。


是的,这是可能的。您会想看看网络摄像头纹理功能。

您创建一个 WebCamTexture 并调用它Play()启动相机的函数。 WebCamTexture 与任何纹理一样,允许您通过 GetPixels() 调用获取像素。这使您可以在需要时拍摄快照,并将其保存在Texture2D 中。致电编码为PNG()随后写入文件应该可以到达那里。

请注意,下面的代码是基于文档的快速编写。我还没有测试过。如果有多个可用设备,您可能必须选择正确的设备。

using UnityEngine;
using System.Collections;
using System.IO;

public class WebCamPhotoCamera : MonoBehaviour 
{
    WebCamTexture webCamTexture;

    void Start() 
    {
        webCamTexture = new WebCamTexture();
        GetComponent<Renderer>().material.mainTexture = webCamTexture; //Add Mesh Renderer to the GameObject to which this script is attached to
        webCamTexture.Play();
    }

    IEnumerator TakePhoto()  // Start this Coroutine on some button click
    {

    // NOTE - you almost certainly have to do this here:

     yield return new WaitForEndOfFrame(); 

    // it's a rare case where the Unity doco is pretty clear,
    // http://docs.unity3d.com/ScriptReference/WaitForEndOfFrame.html
    // be sure to scroll down to the SECOND long example on that doco page 

        Texture2D photo = new Texture2D(webCamTexture.width, webCamTexture.height);
        photo.SetPixels(webCamTexture.GetPixels());
        photo.Apply();

        //Encode to a PNG
        byte[] bytes = photo.EncodeToPNG();
        //Write out the PNG. Of course you have to substitute your_path for something sensible
        File.WriteAllBytes(your_path + "photo.png", bytes);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以使用设备的相机在 Unity 中拍照吗? 的相关文章

  • 使用 GitHub 时防止将大文本文件添加到提交

    我们想要防止 非常大的文本文件 每个文件 gt 50MB 被提交到git代替git lfs 因为它们夸大了 git 历史 问题是 其中 99 大小差异的原因 这些是 YAML 文件 它们支持通过 Base64 编码进行二进制序列化 我们无法
  • unity 3d 根据加速度计旋转游戏对象

    我想做一款类似 神庙逃亡 的游戏 我需要根据设备倾斜的程度来旋转播放器的平台 我正在尝试加速计 但无法使游戏对象倾斜 请指导我 谢谢 这是我的代码 我之前在注释中使用了代码 现在我尝试使用注释中的代码 public class tilt M
  • 创建对话框/弹出窗口

    有这样的代码 bool b EditorUtility DisplayDialog Test Reset or continue Reset Continue if b ResetGame 但它仅在编辑器中有效 在游戏中无效 如何将 Edi
  • 面部标记信息和照片元数据

    是否有一种标准方法可以从照片元数据中读取 写入面部标签 我可以用它从流行的照片管理器导入面部标记信息吗 Yes 元数据工作组 即 Adob e Microsoft Sony Nokia 等 已经开发了 XMP 的标准扩展来实现此目的 请参阅
  • 为什么从字典中获取时会得到 Action<> 的克隆?

    我有以下字典 private Dictionary
  • 从脚本启用/禁用 GameObject 组件 [Unity3D]

    我需要获取一个脚本中设置的布尔值 放入名为 bouclier 的变量 以启用或禁用游戏对象 该变量位于游戏对象 Player 中 此处右下角 我需要启用或禁用这个游戏对象 Bouclier01 为此 我将脚本附加到游戏对象 Bouclier
  • 画布未在顶部渲染

    我使用画布和 Unity UI 元素作为 HUD 我希望 HUD 能够领先于一切 但事实并非如此 以前没有使用过 Cardboard 但我相信你可以通过相机剔除来解决这个问题 只需按照以下步骤操作 Canvas 1 选择Canvas并将图层
  • 使用 GCHandle 将大型结构数组从 C# unity 脚本传递到 C++ dll 在 C++ 函数执行后崩溃

    我想从 C unity 脚本将结构数组传递给 c 本机插件 我做了如下操作 我可以访问数据 但我的应用程序在执行 c 函数后崩溃 我不知道为什么 C side StructLayout LayoutKind Sequential publi
  • 统一的阿拉伯语输入字段

    有没有办法将输入字段的语言统一更改为阿拉伯语 我尝试了ArabicSupport 它正确显示了阿拉伯语 但将其与输入字段一起使用却不起作用 因为 GameObject Find input field GetComponent
  • 使texture2D在运行时/脚本Unity3D中可读[重复]

    这个问题在这里已经有答案了 我有一个插件 可以让我访问 Android 手机图库中的图片 这给了我一个Texture2D类型的纹理 然后我想使用 GetPixels 函数对其进行编辑 但默认情况下它未设置为可读 如何使纹理可读 以便我可以在
  • 在 Unity 4.6 中构建的游戏中,插页式广告未在实时 Android 设备上显示

    我使用的是Unity版本 gt 4 6 0Admob版本 gt Google 移动广告 Unity 插件 v3 1 3 https github com googleads googleads mobile unity releases t
  • 将物体放置在相机前面

    这应该是一项简单的任务 我已经用谷歌搜索过了 但我不明白为什么这些例子对我有用 基本上 我想在我的第一人称游戏中将瓷砖放在地上 我希望我想要放置在地面上的物体 漂浮 在半空中 同时为其选择完美的位置 我可以实例化该对象 使其成为玩家相机的子
  • Unity 2019 - 如何修复 TextMeshPro 2.0 错误 cs0433

    我刚刚开始包含 Vuforia SDK 的新项目 进行一些更改后 我决定从 Asset Store 安装 GitHub 扩展以进行一些备份 之后我的 textMeshPro 插件变得疯狂 抛出了一个我无法处理的恼人错误 错误说 Librar
  • X 轴和 Z 轴上的 Quaternion.Slerp,无 Y 轴

    I am trying to rotate the Player about X Y and Z axis The Y axis should not move from last angle Example if I rotate 45
  • Unity IAP 无法在 Apple Testflight 中工作

    过去几天尝试让 IAP 在我的第一个游戏应用程序的 TestFlight 上运行时遇到问题 IAP 在 Unity Editor 假商店 和 Google Play 内部测试轨道 上运行良好 我没有从苹果商店收到任何产品价格 并且购买按钮没
  • 通过脚本隐藏/取消隐藏 Unity3D 中的对象

    我想在一切开始之前将场景的一部分设置为隐藏 所以可以说我有一些isHidden 我试图找到 我设置的属性true在我的场景的第一帧之前 在某些时候我想取消隐藏它并触发动画 我知道如何触发动画 我发现隐藏对象的唯一方法是将其设置为 SetAc
  • 找到一个用于从 Unity 4.* 构建的 android 包的混淆工具 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我曾经做过一个游戏Unity引擎 用C 编写 现在我想发布一个Android 版本到 Google Pl
  • 模块中的类无法加载

    我正在开发一个 2D Unity android 游戏 其中我最近添加了 Firebase Beta SDK 但添加后FirebaseAnalytics unitypackage我面临的错误是 无法加载模块中的类 当我删除文件夹时Fireb
  • 显示UnityWebRequest的进度

    我正在尝试使用下载 assetbundle统一网络请求 https docs unity3d com ScriptReference Networking UnityWebRequest GetAssetBundle html并显示进度 根
  • 如何获取枚举数作为常量?

    From 枚举中定义的项目总数 https stackoverflow com questions 856154 total number of items defined in an enum 我发现我可以使用以下方法获取枚举数 Enum

随机推荐

  • 如何使用plot_trisurf

    将matplotlib版本从1 3 1更新到2 0 2后 当我想使用plot trisurf通过3d点生成TIN时 我得到了难以理解的结果 我的测试代码如下 import sys import matplotlib import matpl
  • VBA 运行时错误“70”:无法设置列表属性。没有权限

    我试图通过单击列表框来更新数据 但出现错误 请参阅下面的代码 使用下面的代码将列表框值显示到文本框 Private Sub ListBox1 Click Dim i As Integer i Me ListBox1 ListIndex Me
  • Rspec / Shoulda:测试,调用自定义验证器

    我有一个自定义验证器 位于 app validators uri validator rb 中 用于 validates link uri true 我如何在我的规格中指定这一点 理想情况下 我希望进行单线通话 例如 it should v
  • 通过arg执行函数

    我想做的是 当我输入特定参数时 它会启动一个函数 这可以通过argparse 因此 如果我在应用程序中点击 add 参数 它就会触发 add 函数 parser argparse ArgumentParser description to
  • 为什么groupByKey操作总是有200个任务?

    每当我做一个groupByKey在 RDD 上 即使原始表非常大 它也会分为 200 个作业 例如2k 个分区和数千万行 此外 该操作似乎陷入了最后两个任务 这两个任务的计算时间非常长 为什么是200 如何增加它 会有帮助吗 这个设置来自s
  • 如何在Django html页面中显示外键数据?

    我想从相关的外键模型中获取数据 但我无法从相关的模型中获取数据 请告诉我该怎么做 我要显示name价值来自Model2 table 这是我的models py file class Customer models Model cus nam
  • android快速获取所有用户的朋友个人资料图片

    我正在寻找一种快速获取我所有朋友的个人资料照片的方法 我正在使用适用于 Android 的 Facebook SDK 现在我正在获取我朋友的列表 JSON 对象并在该对象内使用 for 循环运行 在循环中 我将每个图像放入 Drawable
  • MVC 6 绑定属性消失了?

    请原谅我的菜鸟问题 但我注意到 MVC 6 的绑定属性不再作为默认值出现在控制器模板中 我知道该属性仍然存在 但我们仍然需要使用它们吗 我听说它们可以用来防止过度发布攻击 他们是否会删除它 因为 MVC 6 可以找到在不使用它们的情况下防止
  • 线程“main”中的异常 java.lang.NoClassDefFoundError: org/codehaus/jackson/JsonParseException

    我正在使用 Twilio 从我的网络应用程序发送 SMS 消息 我几乎已经完成了集成 它正在发送短信 但生成了错误 我不明白为什么 我已经包含了一个 JSON 依赖项json和这个文件link但我仍然收到错误 我还需要包含哪些其他罐子 Ex
  • 使用 qmake 获取日期

    由于我使用今天的日期作为我的应用程序版本 因此我有兴趣自动填充它 目前我正在我的项目文件中执行以下操作 VERSION 15 4 20 但我想让它自动进行 VERSION YEAR MONTH DAY 任何想法 您可以使用QMAKE POS
  • 抛出异常的哪一部分成本很高?

    在 Java 中 当实际上没有错误时 使用 throw catch 作为逻辑的一部分通常是一个坏主意 部分 因为抛出和捕获异常的成本很高 并且在循环中多次执行通常比其他方法慢得多不涉及抛出异常的控制结构 我的问题是 成本是在 throw c
  • 为什么使用“new NetworkCredential(用户名、密码)”无法对我的网站进行基本身份验证(从 WinForms C# 应用程序)?

    我有一个使用基本身份验证 用户名 密码 的网站 为什么下面的代码不起作用 当我运行它时 Web 应用程序会将我带到登录控制器 而我希望在我填充凭据的情况下它应该已经经过身份验证 换句话说 我试图确认在 NET 中如何确认我的winforms
  • JMeter。如何确定线程组何时完成

    我需要运行两个单独的线程组 第二组有无限循环计数 当第一组完成后 停止第二组 我如何确定第一组何时完成 这对我来说是工作 克里特岛 BeanShell 预处理器 代码如下 props put DONE FALSE 使用以下代码创建 Bean
  • .dll 已加载到另一个类加载器中?

    我有一个在 Tomcat 3 2 1 下运行的 web 应用程序 需要进行 JNI 调用 为了访问遗留 C 代码中的数据和方法 servlet 已加载 在 webapp 的启动 作为其一部分init方法 产生一个数据集 特定于要加载到 C
  • Python 中的日期时间解析时区不一致

    当我在 Python 3 X 中运行以下命令时 import datetime DATE TS FORMAT Y m d H M S f Z date ts datetime datetime 2019 1 2 3 4 5 tzinfo d
  • Python timedelta 负值问题

    您好 我需要一些帮助来理解为什么会发生这种情况 我有一种方法可以跟踪事件程序中的 剩余时间 def get program time budget self return self estimated duration self get p
  • 多处理在 Ubuntu 中有效,但在 Windows 中无效

    我正在尝试使用这个例子作为我的cherrypy应用程序上的排队系统的模板 我能够将它从 python 2 转换为 python 3 更改from Queue import Empty into from queue import Empty
  • 无法使用 SPARQL 从 LinkedMDB 检索高 ID 的电影

    我正在运行以下查询LinkedMDB SPARQL 端点它有效 有了它 我可以获得有关 id 72 的电影导演的所有信息 即Titanic 所以我得到了关于詹姆斯 卡梅隆的信息 PREFIX mdb
  • Laravel 5 中间件“所有者”?

    我在创建 所有者 中间件时遇到麻烦 例如 我有一个Articles and User模型关联于user id key 我想将 所有者 中间件添加到ArticlesController 因此该文章的唯一所有者可以编辑 更新和删除它 我已经搜索
  • 我可以使用设备的相机在 Unity 中拍照吗?

    我完全不熟悉 Unity3D 更复杂的功能集 并且很好奇它是否有能力拍摄照片然后对其进行操作 具体来说 我的愿望是让用户拍一张自拍照 然后让他们在脸部周围描画以创建一个 PNG 然后将其纹理映射到模型上 我知道将面部映射到模型上很简单 但我