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; } } }
protected void DestroyCursor() { if (tuioCursor == null) { return; } Main.instance.tuioTransmitter.Remove(tuioCursor); tuioCursor = null; velocity.Clear(); }
// // 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); }
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); }