60 lines
1.2 KiB
C#
60 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;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|