Пример #1
0
 private void HandleDisplacementDrag(Rect rect)
 {
     if (selectedPattern.properties.dynamicTiling && Mouse.IsOver(rect))
     {
         if (!mouseOver)
         {
             mouseOver = true;
             Cursor.SetCursor(AssetBundleDatabase.MouseHandOpen, new Vector2(3, 3), CursorMode.Auto);
         }
         if (Input.GetMouseButtonDown(0) && !draggingDisplacement)
         {
             draggingDisplacement   = true;
             initialDragDifferenceX = Mathf.InverseLerp(0f, rect.width, Event.current.mousePosition.x - rect.x) * 2 - 1 - displacementX;
             initialDragDifferenceY = Mathf.InverseLerp(rect.height, 0f, Event.current.mousePosition.y - rect.y) * 2 - 1 - displacementY;
             Cursor.SetCursor(AssetBundleDatabase.MouseHandClosed, new Vector2(3, 3), CursorMode.Auto);
         }
         if (draggingDisplacement && Event.current.isMouse)
         {
             displacementX = (Mathf.InverseLerp(0f, rect.width, Event.current.mousePosition.x - rect.x) * 2 - 1 - initialDragDifferenceX).Clamp(-1.5f, 1.5f);
             displacementY = (Mathf.InverseLerp(rect.height, 0f, Event.current.mousePosition.y - rect.y) * 2 - 1 - initialDragDifferenceY).Clamp(-1.5f, 1.5f);
         }
         if (Input.GetMouseButtonUp(0))
         {
             draggingDisplacement = false;
             Cursor.SetCursor(AssetBundleDatabase.MouseHandOpen, new Vector2(3, 3), CursorMode.Auto);
         }
     }
     else
     {
         if (mouseOver)
         {
             mouseOver            = false;
             draggingDisplacement = false;
             CustomCursor.Activate();
         }
     }
 }