59 lines
1.2 KiB
C#
59 lines
1.2 KiB
C#
using UnityEngine;
|
|
using System.Collections;
|
|
using Windows.Kinect;
|
|
|
|
public class DepthSourceManager : MonoBehaviour
|
|
{
|
|
private KinectSensor _Sensor;
|
|
private DepthFrameReader _Reader;
|
|
private ushort[] _Data;
|
|
|
|
public ushort[] GetData()
|
|
{
|
|
return _Data;
|
|
}
|
|
|
|
void Start ()
|
|
{
|
|
_Sensor = KinectSensor.GetDefault();
|
|
|
|
if (_Sensor != null)
|
|
{
|
|
_Reader = _Sensor.DepthFrameSource.OpenReader();
|
|
_Data = new ushort[_Sensor.DepthFrameSource.FrameDescription.LengthInPixels];
|
|
}
|
|
}
|
|
|
|
void Update ()
|
|
{
|
|
if (_Reader != null)
|
|
{
|
|
var frame = _Reader.AcquireLatestFrame();
|
|
if (frame != null)
|
|
{
|
|
frame.CopyFrameDataToArray(_Data);
|
|
frame.Dispose();
|
|
frame = null;
|
|
}
|
|
}
|
|
}
|
|
|
|
void OnApplicationQuit()
|
|
{
|
|
if (_Reader != null)
|
|
{
|
|
_Reader.Dispose();
|
|
_Reader = null;
|
|
}
|
|
|
|
if (_Sensor != null)
|
|
{
|
|
if (_Sensor.IsOpen)
|
|
{
|
|
_Sensor.Close();
|
|
}
|
|
|
|
_Sensor = null;
|
|
}
|
|
}
|
|
}
|