Я пытаюсь использовать Reactive Extensions for Unity (UniRX, reimplementation Reactive Extensions, совместимый с Unity 4.5) для распознавания жестов. Есть simple example out there, но он использует очень простой жест.Реактивное программирование - ответ на последовательность событий
Я написал логику для генерации потока векторов признаков в IObservable.
Я хотел бы реализовать логику, которая выглядит так: «Посмотрите на IObservable. Когда (начальные условия возникают), если только (условия отмены/прерывания), после события полного действия не возникает событие жестов».
Я могу писать выражения RX для каждого набора условий, но объединение их друг с другом таким образом, что они функционируют таким образом, не очевидно для меня.
т.е.
// initial condition -- passes events through if hand more open than some threshold, and closing
handStream
.Buffer(2, 1)
.Where(h => h[0].pinchStrength > m_openThresh)
.Where(h => h[0].pinchStrength > h[1].pinchStrength)
или
// end condition -- passes event through if hand more closed than some threshold
handStream
.Where(h => h[0].pinchStrength < m_pinchThresh)
но второе выражение не имеет смысла, если первые условия не были выполнены в какой-то предыдущий раз.
Как я должен подходить к этому, парадигматически?
Напоминает мне [парнеры Rxx] (https://rxx.codeplex.com/wikipage?title=Parsers). –