public static List <IInputObservable> Setup(InputObservableContext context, DrawTargetView draw, Component component) { var ios = new List <IInputObservable>(); if (draw == null || component == null) { return(ios); } var colors = new List <Color> { Color.green, Color.yellow, Color.red, Color.blue, Color.black }; foreach (var(index, color) in colors.Select((color, index) => (index, color))) { try { var io = context.GetObservable(index); io.Any().Subscribe(touchDrawHandler(draw, color)).AddTo(component); ios.Add(io); }catch (IndexOutOfRangeException e) { Debug.Log($"{e} ignore"); break; } } return(ios); }
static Action <InputEvent> touchDrawHandler(DrawTargetView draw, Color c) { return((InputEvent e) => { Debug.Log(e); switch (e.type) { case InputEventType.Begin: draw.NewCross(e, c); break; case InputEventType.Move: draw.MoveCross(e); break; case InputEventType.End: draw.EndCross(e); break; } }); }
void Start() { slider = FindObjectOfType <SliderController>(); slider.Text = "Interval: "; draw = FindObjectOfType <DrawTargetView>(); context = this.DefaultInputContext(); context.GetObservable(0).OnBegin.TimeInterval().Subscribe(ts => { Debug.Log($"[{ts.Value.sequenceId}] {ts.Interval.Milliseconds}"); }).AddTo(this); slider.Enabled.Subscribe(v => { if (!v) { clear(); } else { setup(); } }).AddTo(this); slider.Value.Subscribe(v => setup()).AddTo(this); }
public static void DrawSwipeArrow(DrawTargetView draw, Vector2 pos, Vector2 vector, string msg) { draw.Put(pos, vector, Color.red, msg); }