RectTransformUtility

作者:追风剑情 发布于:2019-10-11 15:57 分类:Unity3d

参考 https://blog.csdn.net/fdyshlk/article/details/78768078

  1. public sealed class RectTransformUtility
  2. {
  3. // 计算child在root中的区域位置
  4. public static Bounds CalculateRelativeRectTransformBounds(Transform root, Transform child);
  5. // 计算trans在直接父容器中的区域位置
  6. public static Bounds CalculateRelativeRectTransformBounds(Transform trans);
  7. /// <summary>
  8. // 交换rect的Width和Height值以及Pivot的X和Y值
  9. // recursive=true, 子对象的值也会发生交换
  10. // recursive=false, 只交换自己的值
  11. // keepPositioning=true, 保持rect的PosX和PosY不变,元素位置可变.
  12. // keepPositioning=false, 保持元素位置不变,rect的PosX和PosY可变.
  13. /// </summary>
  14. public static void FlipLayoutAxes(RectTransform rect, bool keepPositioning, bool recursive);
  15. /// <summary>
  16. // axis=0, 翻转Pivot的X值 (例如 X=0.4, 翻转后变为X=0.6)
  17. // axis=1, 翻转Pivot的Y值
  18. /// </summary>
  19. public static void FlipLayoutOnAxis(RectTransform rect, int axis, bool keepPositioning, bool recursive);
  20. // 使point对齐像素坐标
  21. public static Vector2 PixelAdjustPoint(Vector2 point, Transform elementTransform, Canvas canvas);
  22. // 使rectTransform的四个角对齐像素坐标
  23. public static Rect PixelAdjustRect(RectTransform rectTransform, Canvas canvas);
  24. // 判断screenPoint是否在rect区域内 (Render Mode=Screen Space - Overlay)
  25. public static bool RectangleContainsScreenPoint(RectTransform rect, Vector2 screenPoint);
  26. // 判断screenPoint是否在rect区域内 (cam为UI像机)
  27. public static bool RectangleContainsScreenPoint(RectTransform rect, Vector2 screenPoint, Camera cam);
  28. // 屏幕坐标转rect本地坐标
  29. public static bool ScreenPointToLocalPointInRectangle(RectTransform rect, Vector2 screenPoint, Camera cam, out Vector2 localPoint);
  30. // 从cam发出一条射线穿过screenPos点
  31. public static Ray ScreenPointToRay(Camera cam, Vector2 screenPos);
  32. // 屏幕坐标转世界坐标(相对于rect),可理解为从screenPoint发出的射线与rect的交点。
  33. public static bool ScreenPointToWorldPointInRectangle(RectTransform rect, Vector2 screenPoint, Camera cam, out Vector3 worldPoint);
  34. // 世界坐标转屏幕坐标
  35. public static Vector2 WorldToScreenPoint(Camera cam, Vector3 worldPoint);
  36. }


标签: Unity3d

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号