void Update()
{
if (isVisualGestureInitialized)
{
KinectManager kinectManager = KinectManager.Instance;
if (kinectManager && kinectManager.IsInitialized())
{
primaryUserID = kinectManager.GetUserIdByIndex(playerIndex);
}
// update visual gesture tracking
if (UpdateVisualGestures(primaryUserID))
{
// process the gestures
foreach (string gestureName in gestureNames)
{
if (gestureData.ContainsKey(gestureName))
{
VisualGestureData data = gestureData[gestureName];
if (data.isComplete && !data.isResetting && data.confidence >= minConfidence)
{
Debug.Log(gestureName + " detected.");
int userIndex = kinectManager ? kinectManager.GetUserIndexById(data.userId) : 0;
foreach (VisualGestureListenerInterface listener in visualGestureListeners)
{
if (listener.GestureCompleted(data.userId, userIndex, data.gestureName, data.confidence))
{
data.isResetting = true;
gestureData[gestureName] = data;
}
}
}
else if (data.progress >= 0.1f)
{
int userIndex = kinectManager ? kinectManager.GetUserIndexById(data.userId) : 0;
foreach (VisualGestureListenerInterface listener in visualGestureListeners)
{
listener.GestureInProgress(data.userId, userIndex, data.gestureName, data.progress);
}
}
}
}
}
}
}