MyTools.cs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. using UnityEngine;
  2. using UnityEditor;
  3. using System;
  4. namespace StateChartEditor{
  5. public static class MyTools{
  6. public static void drawLine(Vector2 startPos, Vector2 endPos){
  7. if ( startPos.x > endPos.x ){
  8. Vector2 temp = startPos;
  9. startPos = endPos;
  10. endPos = temp;
  11. }
  12. var distanceBetweenNodes = endPos.x - startPos.x;
  13. Handles.DrawBezier(
  14. new Vector3(startPos.x, startPos.y),
  15. new Vector3(endPos.x, endPos.y),
  16. new Vector3(startPos.x + (distanceBetweenNodes / 2.0f) + 10.0f, startPos.y),
  17. new Vector3(endPos.x - (distanceBetweenNodes / 2.0f) + 10.0f, endPos.y),
  18. Color.black,
  19. null,
  20. 3.25f);
  21. }
  22. }
  23. public static class RectExtensions
  24. {
  25. public static Vector2 TopLeft(this Rect rect)
  26. {
  27. return new Vector2(rect.xMin, rect.yMin);
  28. }
  29. public static Rect ScaleSizeBy(this Rect rect, float scale)
  30. {
  31. return rect.ScaleSizeBy(scale, rect.center);
  32. }
  33. public static Rect ScaleSizeBy(this Rect rect, float scale, Vector2 pivotPoint)
  34. {
  35. Rect result = rect;
  36. result.x -= pivotPoint.x;
  37. result.y -= pivotPoint.y;
  38. result.xMin *= scale;
  39. result.xMax *= scale;
  40. result.yMin *= scale;
  41. result.yMax *= scale;
  42. result.x += pivotPoint.x;
  43. result.y += pivotPoint.y;
  44. return result;
  45. }
  46. public static Rect ScaleSizeBy(this Rect rect, Vector2 scale)
  47. {
  48. return rect.ScaleSizeBy(scale, rect.center);
  49. }
  50. public static Rect ScaleSizeBy(this Rect rect, Vector2 scale, Vector2 pivotPoint)
  51. {
  52. Rect result = rect;
  53. result.x -= pivotPoint.x;
  54. result.y -= pivotPoint.y;
  55. result.xMin *= scale.x;
  56. result.xMax *= scale.x;
  57. result.yMin *= scale.y;
  58. result.yMax *= scale.y;
  59. result.x += pivotPoint.x;
  60. result.y += pivotPoint.y;
  61. return result;
  62. }
  63. }
  64. }