KINECT SDKを使う その1・環境設定編 - Unityな日々(Unity Geek)の続き
KinectInterop.cs
Kinectとのインターフェースを司どる最下層のスクリプト。
public interfrace KinectInterface :Kinectとのインターフェース定義。実装はKinectSensor.csで定義される
KinectSensor.cs
Marshalクラスを用いてデータを取得している。たとえば、
ColorBuffer cb = (ColorBuffer)Marshal.PtrToStructure(buf.m_pBuffer,typeof(ColorBuffer));
は、MarshalクラスのPtrToStructureメソッドを用いて、ポインタ(buf.m_pBuffer)の示すバッファデータを、ColorBufferにマーシャリング(型変換)する。ColorBuffer構造体は、KinectInterop.csに定義されている。
C#はマネージ環境、一方Kinect DLL APIはアンマネージ環境で実装されているため、マーシャリングが必要となるらしい。マーシャリングについてはこのあたりを参考に。
Unity/KINECT SDKのスクリプトの中で中心的役割を果たすSkeletonWrapperは、Kinect Prefabにアタッチされている。