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; } } }