public static Vector2 Local2ScreenPoint(this Transform transform, Camera camera, Vector2 localPos) {
Vector2 worldPos = transform.TransformPoint(localPos);
return camera.WorldToScreenPoint(worldPos);
}
/// <summary>
/// UI本地坐标转屏幕坐标
/// </summary>
/// <param name="transform"></param>
/// <param name="canvas"></param>
/// <param name="localPos"></param>
/// <returns></returns>
public static Vector2 UILocal2ScreenPoint(this Transform transform, Canvas canvas, Vector2 localPos) {
if (canvas.renderMode == RenderMode.WorldSpace && null != canvas.worldCamera) {
return transform.Local2ScreenPoint(canvas.worldCamera, localPos);
} else if (canvas.renderMode == RenderMode.ScreenSpaceCamera && null != canvas.worldCamera) {
return transform.Local2ScreenPoint(canvas.worldCamera, localPos);
} else {
return transform.TransformPoint(localPos);
}
}
Unity Canvas下的UI坐标转屏幕坐标
最新推荐文章于 2024-03-25 23:13:57 发布