コード例 #1
0
        private void ProcessCursors(List <TouchPoint> touches)
        {
            foreach (var tp in touches)
            {
                switch (tp.type)
                {
                case TouchPoint.ActionType.Down:
                    var cursorToAdd = new TUIOCursor(_tuioTransmitter.NextSessionId(), tp.Position.X, tp.Position.Y, 0f, 0f, 0f);
                    cursors[tp.id] = cursorToAdd;
                    _tuioTransmitter.Add(cursorToAdd);
                    break;

                case TouchPoint.ActionType.Move:
                    cursors[tp.id]?.Update(tp.Position.X, tp.Position.Y, 0f, 0f, 0f);
                    break;

                case TouchPoint.ActionType.Up:
                    var cursorToRemove = cursors[tp.id];
                    _tuioTransmitter.Remove(cursorToRemove);
                    cursors.Remove(tp.id);
                    break;

                default:
                    Console.WriteLine($"ERROR: unkown touchpoint action type");
                    break;
                }
            }
        }
コード例 #2
0
        protected void DestroyCursor()
        {
            if (tuioCursor == null)
            {
                return;
            }

            Main.instance.tuioTransmitter.Remove(tuioCursor);
            tuioCursor = null;
            velocity.Clear();
        }
コード例 #3
0
    //
    // input
    //

    /* dev, mouse
     * public void UpdatePosition() {
     *      Vector3 position = Camera.main.ScreenToWorldPoint(Input.mousePosition);
     *      position.z = 0f;
     *      transform.position = position;
     * }
     */

    //public void UpdatePosition(Vector2 position) {
    //	transform.position = position;
    //}


    //
    // surface
    //

    public void AddToSurface()
    {
        if (surface != null)
        {
            RemoveFromSurface();
        }

        surface = GetComponentInParent <Surface>();

        Vector2 normalisedPosition = surface.GetNormalisedPosition(transform);

        tuioCursor = new TUIOCursor(surface.NextSessionId(), normalisedPosition.x, normalisedPosition.y, 0f, 0f, 0f);
        surface.Add(this);
    }
コード例 #4
0
        protected void CreateCursor()
        {
            if (tuioCursor != null)
            {
                DestroyCursor();
            }

            // raycast against surface
            //Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            //RaycastHit2D hit = Physics2D.GetRayIntersection(ray);
            //if (hit == null || hit.collider != surface.boxCollider2D) return;

            Vector2 pos = Vector2.Scale(Input.mousePosition, Main.instance.invScreenDimensions);

            tuioCursor   = new TUIOCursor(Main.instance.tuioTransmitter.NextSessionId(), pos.x, pos.y, 0f, 0f, 0f);
            lastPosition = pos;

            Main.instance.tuioTransmitter.Add(tuioCursor);
        }