void RecognizeYes() { if (recogInterval[Gesture.Yes] > 0) { return; } try { var diffSum = 0.0f; var didYes = false; const float minDiff = 40.0f; var beforeX = hdms.First().eulerAngles.x; var index = 0; foreach (var hdm in hdms) { if (index < recogIndex[Gesture.Yes]) { continue; } index++; diffSum += GetAngleDiff(beforeX, hdm.eulerAngles.x); if (diffSum > minDiff) { didYes = true; } beforeX = hdm.eulerAngles.x; } if (didYes && Math.Abs(diffSum) < 5f) { if (YesHandler != null) { YesHandler.Invoke(); } recogInterval[Gesture.Yes] = gestureInterval; recogIndex[Gesture.Yes] = hdms.Count; } } catch (InvalidOperationException) { //pass } }