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;
            }
        });
    }
Exemple #3
0
    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);
 }