最近学习用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. ZooKeeper做独立server执行(上)

    ZooKeeper做独立server执行(上) 作者:chszs.转载需注明.博客主页:http://blog.csdn.net/chszs 一.ZooKeeper安装及配置 版本号:ZooKeepe ...

  2. 微信小程序的POST和GET请求方式的header区别

    1.post请求: wx.request({ url: 'https://m.***.com/index.php/Home/Xiaoxxf/make_order', header: { "C ...

  3. Java菜鸟入坑学习要点

    一.掌握静态方法和属性 静态方法和属性用于描述某一类对象群体的特征,而不是单个对象的特征.Java中大量应用了静态方法和属性,这是一个通常的技巧.但是这种技巧在很多语言中不被频繁地使用.理解静态方法和 ...

  4. .net连接MySQL的方法

    摘自:http://www.cnblogs.com/huayangmeng/archive/2011/04/06/2006866.html 最近要用C#做一个东西,连接之前项目的数据库(用MySQL建 ...

  5. java多线程(一)之继承Thread类

    一.概述 进程:正在执行的应用程序 线程:进程的执行单元,执行路径 单线程:一个应用程序只有一条执行路径 多线程:一个应用程序有多条执行路径 二.两种实现方式, 下面为第一种方式: 继承Thread类 ...

  6. Android 在已有的项目上创建新的项目

    原工程 右键Copy   再右键点Paste 改新的工程名

  7. PS_Form个性化标准LOV的替换和数据源追溯分析(案例)

    2014-06-01 BaoXinJian

  8. C语言宏高级用法

    1.前言  今天看代码时候,遇到一些宏,之前没有见过,感觉挺新鲜.如是上网google一下,顺便总结一下,方便以后学习和运用.C语言程序中广泛的使用宏定义,采用关键字define进行定义,宏只是一种简 ...

  9. 转 CAS实现SSO单点登录原理

    原文链接   http://m.blog.csdn.net/hxpjava1/article/details/74019017 CAS 简介 1. 1.1.  What is CAS ? CAS (  ...

  10. Jenkins 使用学习笔记

    3.1    Jenkins安装    2 3.1.1    Jenkins下载    2 3.1.2    Jenkins 安装    2 3.1.3    Jenkins 目录结构    3 3. ...