using UnityEngine; using System.Collections; using System.Collections.Generic; using Kinect = Windows.Kinect; public class SimpleVisualizer : MonoBehaviour { private Dictionary jointCubes = new Dictionary(); private SkeletonData _skeletonData = null; public SkeletonData skeletonData { set { _skeletonData = value; GenerateCubes(value); } } // Use this for initialization void Start () { } // Update is called once per frame void Update () { //TODO if skeletonData.isDead == true, destroy self if(jointCubes.Count != 0) { foreach(GameObject obj in jointCubes.Values) { obj.GetComponent().enabled = SimpleCalibrator.EnableBones; } } if (_skeletonData.isDead) DestroyImmediate(gameObject); UpdateCubes(); } void UpdateCubes() { foreach (Kinect.JointType jointType in _skeletonData.joints.Keys) { if (jointCubes[jointType] != null) { jointCubes[jointType].transform.position = _skeletonData.joints[jointType].position; jointCubes[jointType].transform.rotation = _skeletonData.joints[jointType].rotation; } } } void GenerateCubes(SkeletonData data) { if(jointCubes.Count!=0) foreach (GameObject obj in jointCubes.Values) { DestroyImmediate(obj); } jointCubes.Clear(); //TODO foreach (Kinect.JointType jointType in data.joints.Keys) { jointCubes.Add(jointType, DrawBones.CreateObj(PrimitiveType.Cube, jointType, _skeletonData.joints[jointType],transform)); } } }