您的位置:首页 > 移动开发 > Unity3D

【Unity】Kinect屏幕显示环境背景及人体投影

2016-11-15 00:22 1031 查看
最近学习用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。

勾选了Compute Color Map则人体投影为彩色图,没有勾选则为单色图。

想要调整人影的透明度,需要给该图片控件添加Canvas Group组件,调整Alpha值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Unity Kinect