RectTransformUtility 类

RectTransformUtility 是关于RectTransform的工具类,有几个静态方法,这里记录一下每个方法的用法。

FlipLayoutOnAxis

public static void FlipLayoutOnAxis(RectTransform rect, int axis, bool keepPositioning, bool recursive)
将rect沿x或者y轴翻转,(只是位置上的翻转,大小方向不变)
注意: keepPositioning为true时,沿自身的pivot进行x或者y轴翻转,为false时沿父rect的x或者y轴翻转
recursive 表示是否影响到子物体。

FlipLayoutAxes

public static void FlipLayoutAxes(RectTransform rect, bool keepPositioning, bool recursive)
将rect同时进行x轴和y轴的翻转。其他参数同上。

PixelAdjustPoint

public static Vector2 PixelAdjustPoint(Vector2 point, Transform elementTransform, Canvas canvas)
将屏幕空间中的给定点转换为像素校正点。
例如:Vector2 vector2 = RectTransformUtility.PixelAdjustPoint (new Vector2 (30.333f, 30.9001f), trans, canvas);
将返回vector2 =(30.3,30.9),将给定点四舍五入了?此处待研究。

PixelAdjustRect

public static Rect PixelAdjustRect(RectTransform rectTransform, Canvas canvas)
根据RectTransform返回像素精确的rect。还不清楚和直接获取RectTransform.rect有什么不同。

RectangleContainsScreenPoint

public static bool RectangleContainsScreenPoint(RectTransform rect, Vector2 screenPoint, Camera cam)
矩形是否包含屏幕点
这个好理解,需要注意的是如果 Canvas的Render Mode为Overlay时,第三个参数可不传。

ScreenPointToLocalPointInRectangle

public static bool ScreenPointToLocalPointInRectangle(RectTransform rect, Vector2 screenPoint, Camera cam, out Vector2 localPoint)
将一个屏幕坐标转换为给定矩形里的坐标
需要注意的是,屏幕坐标是以像素为单位,左下角为(0,0),而返回的坐标是相对于给定矩形的pivot的坐标。
即使点在给定矩形外,依然返回true?此处待研究 .

ScreenPointToWorldPointInRectangle

public static bool ScreenPointToWorldPointInRectangle(RectTransform rect, Vector2 screenPoint, Camera cam, out Vector3 worldPoint)
将一个屏幕坐标转换为给定矩形里的世界坐标,这个方法与Camera.ScreenToWorldPoint不同的地方在于,ScreenToWorldPoint方法传入的是一个Vector3类型,z轴表示的是到摄像机的距离,而该方法传入一个Vector2型,因此要想得到对应的世界坐标,还需要一个别的信息,这个信息就是第一个参数rect来提供,即rect的位置不同,即使屏幕上的点不变,得到的结果也不同。可以理解为从摄像机发出一个射线,射线与rect的相交与一点,这个点的世界坐标就是结果。

ScreenPointToRay

public static Ray ScreenPointToRay(Camera cam, Vector2 screenPos)
根据屏幕坐标点生成射线

WorldToScreenPoint

public static Vector2 WorldToScreenPoint(Camera cam, Vector3 worldPoint)
世界坐标转屏幕坐标
与常用的Camera.WorldToScreenPoint略有不同的是,这个返回一个Vector2的值,即没有z值。

你可能感兴趣的:(RectTransformUtility 类)