最近学习用Unity做些体感小游戏,使用Kinect的Unity插件,结合一些官方Demo学习(网上资源用Unity做的较少,蛋疼)。插件及其Demo就在Unity商店里搜Kinect即可找到,其中下图这个包里面包含了大量实用场景和局部功能的Demo,绝对是入门神器!

非常感谢下面这位大大的无私奉献!

http://www.manew.com/thread-50097-1-1.html

需求:屏幕中显示房间环境作为背景,显示人物的投影图像(彩色或者单色)。
做法:从Kinect设备读取数据,然后给UGUI控件显示。

写一个脚本挂到Canvas身上:

using UnityEngine;
using System.Collections;
using UnityEngine.UI; /// <summary>
/// 从Kinect获取数据。
/// </summary>
public class GetDataFromKinect : MonoBehaviour { public RawImage image; // 空白图片,用于显示 // Use this for initialization
void Start () { } // Update is called once per frame
void Update () {
// 判断设备是否初始化完成。最开始的几帧没有完成,所以需要在Update中去每帧检测。
bool isInit = KinectManager.IsKinectInitialized ();
if (isInit) {
if (image.texture == null) {
// 从设备获取彩色数据,需要勾选Compute Color Map。
Texture2D colorMap = KinectManager.Instance.GetUsersClrTex ();
// 从设备获取深度数据,需要勾选Compute User Map。
// Texture2D userMap = KinectManager.Instance.GetUsersLblTex ();
// 把彩色数据设置给控件显示
image.texture = colorMap ;
}
} }
}

注意点:

  • 通过该方式获取到的图片是上下颠倒的,还需要将该图片控件的RectTransform组件里的Scale设为-1。
  • 要把图片控件的Position设为x=0.5,y=0.5,否则图像内容在左下角外边。
  • 勾选了Compute Color Map则人体投影为彩色图,没有勾选则为单色图。
  • 想要调整人影的透明度,需要给该图片控件添加Canvas Group组件,调整Alpha值。
  • 更多细节参考Kinect v2 Example资源包中的KinectDemo/OverlayDemo案例。

【Unity/Kinect】显示Kinect摄像头内容,屏幕显示环境背景及人体投影的更多相关文章

  1. Kinect 开发 —— Kinect Interaction 交互控件

    Kinect Interactions 提供了一些新的带有姿势识别的控件如 push-to-press 按钮, grip-to-pan 列表控件, 而且支持多用户,同时二个人进行的交互,这些新添加的控 ...

  2. 解决 Mac OS X Retina 屏幕显示环境下 jEdit 字体模糊的方法

    Mac OS X Retina 屏幕显示环境下,字体非常清晰.但是 jEdit 仍然很模糊,虽然 jEdit 用的是 Java,但这并不是理由.因为诸如 NetBeans 以及 IntelliJ ID ...

  3. Qt 3D教程(二)初步显示3D的内容

    Qt3D教程(二)初步显示3D的内容 前一篇很easy,全然就没有牵涉到3D的内容,它仅仅是我们搭建3D应用的基本框架而已,而这一篇.我们将要利用它来初步地显示3D的内容了! 本次目的是将程序中间的内 ...

  4. Kinect 开发 —— Kinect for windows SDK

    开发 —— 基本的SDK和Windows 编程技巧(彩色图像视频流,深度图像视频流的采集,骨骼跟踪,音频处理,语音识别API) 深度数据,就是Kinect的精髓和灵魂,很多问题都转换为深度图像的模式识 ...

  5. JS随鼠标坐标移动,显示浮动层内容

    在表单等项目中往往会遇到类似于“备注”.“说明”等100个字内的内容需要显示. 这些内容如果全部呈现开,会影响布局和美观,确又没有必要设计一个层或是一个页面. 那么,我们可以把这些内容放到浮动层中,鼠 ...

  6. 如何让同一个字段在不同的view中显示不同的内容

    many2one 字段默认显示 对象的name字段, 但也可以定义name_get方法显示不同的内容 如res.partner 对象可以根据 context 内容是否显示 客户的地址,职位,email ...

  7. Android应用开发-小巫CSDN博客client之显示博文具体内容

    Android应用开发-小巫CSDN博客客户端之显示博文具体内容 上篇博文给大家介绍的是怎样嵌入有米广告而且获取收益,本篇博客打算讲讲关于怎样在一个ListView里显示博文的具体信息.这个可能是童鞋 ...

  8. EasyUI Datagrid 鼠标悬停显示单元格内容 复制代码

    EasyUI Datagrid 鼠标悬停显示单元格内容 ,halign:, align: 0 « 上一篇:LINQ to Entities 中的查询» 下一篇:去掉字符串中的非数字字符 posted ...

  9. EasyUI的Datagrid鼠标悬停显示单元格内容

    功能描述:table鼠标悬停显示单元格内容 1.js函数 function hoveringShow(value) { return "<span title='" + va ...

随机推荐

  1. android API之android.text.TextWatcher

    When an object of a type is attached to an Editable, its methods will be called when the text is cha ...

  2. 深入PHP内核之数组

    定义: PHP 中的数组实际上是一个有序映射.映射是一种把 values 关联到 keys 的类型.此类型在很多方面做了优化,因此可以把它当成真正的数组,或列表(向量),散列表(是映射的一种实现),字 ...

  3. C++知识整理(在此感谢大牛的整理)

    这篇文章主要讲解如何在C++中使用cin/cout进行高级的格式化输出操作,包括数字的各种计数法(精度)输出,左或右对齐,大小写等等.通过本文,您可以完全脱离scanf/printf,仅使用cin/c ...

  4. 【LeetCode】136. Single Number (4 solutions)

    Single Number Given an array of integers, every element appears twice except for one. Find that sing ...

  5. PLSQL连接ORACLE配置字符串简介 oracle网络配置 三个配置文件 listener.ora、sqlnet.ora、tnsnames.ora原理解释

    PLSQL连接ORACLE配置字符串简介 oracle网络配置 三个配置文件 listener.ora.sqlnet.ora.tnsnames.ora原理解释 oracle网络配置三个配置文件 lis ...

  6. 关于ftpshell脚本中mget中去除多余交互式提示的方法

    默认情况下ftp里面的交互式提示是开启的,平常如果下载多个文件时,这种提示很让人烦,如果是在shell脚本里面要从ftp服务器上一次mget多个文件,写个交互式很麻烦,最好是把这个交互式提示关掉. 进 ...

  7. linux的cat命令

    1 描述 cat 的全称 concatenate files and print on the standard output cat命令事Linux下的一个文本输出命令. 用于链接文件并打印到标准输 ...

  8. iptalbes -F

    iptalbes -F -F, --flush [chain] Flush the selected chain (all the chains in the table if none is giv ...

  9. iOS开发打包

    ios11个论坛地址   邓白氏编码    邓白氏申请 http://blog.fir.im/faq/ AdHoc,InHouse,App Store Account Type: InHouse  ( ...

  10. 【驱动笔记9】初探IRP

    文章作者:grayfox作者主页:http://nokyo.blogbus.com原始出处:http://www.blogbus.com/nokyo-logs/34005738.html 此前我们可能 ...