void OnEnable()
        {
            if (GesturesManager.Instance == null)
            {
                return;
            }

            // Create primitive to represent the palm and the fingers.
            _palm = GameObject.CreatePrimitive(PrimitiveType.Cube);
            _palm.transform.parent = transform;
            _palm.transform.name   = "Palm";
            _palm.layer            = gameObject.layer;

            _boxByFinger = new ValueByFinger <GameObject>();
            foreach (var finger in _boxByFinger.Keys)
            {
                _boxByFinger[finger] = GameObject.CreatePrimitive(PrimitiveType.Cube);
                _boxByFinger[finger].transform.parent = transform;
                _boxByFinger[finger].transform.name   = finger.ToString();
                _boxByFinger[finger].layer            = gameObject.layer;
            }

            if (!GesturesManager.Instance.IsSkeletonRegistered)
            {
                GesturesManager.Instance.RegisterToSkeleton();
            }
        }
        private void OnDisable()
        {
            if (_palm)
            {
                Destroy(_palm);
                _palm = null;
            }

            if (_boxByFinger != null)
            {
                foreach (var finger in _boxByFinger.Keys)
                {
                    Destroy(_boxByFinger[finger]);
                }
                _boxByFinger = null;
            }
        }