public static Vector3 WorldOrigin(Camera camera, UIAnchor.Side side, RectOffset offset, bool halfPixel) { Vector3 vector3 = new Vector3(); UIAnchor.Flags flag; vector3.z = 0f; Rect rect = offset.Add(camera.pixelRect); float single = rect.xMin; float single1 = rect.xMax; float single2 = rect.yMin; float single3 = rect.yMax; UIAnchor.Side side1 = side; float single4 = single; float single5 = single1; float single6 = single2; float single7 = single3; if (camera.isOrthoGraphic) { flag = (!halfPixel ? UIAnchor.Flags.CameraIsOrthographic : UIAnchor.Flags.CameraIsOrthographic | UIAnchor.Flags.HalfPixelOffset); } else if (!halfPixel) { flag = (UIAnchor.Flags) 0; } else { flag = UIAnchor.Flags.HalfPixelOffset; } UIAnchor.ScreenOrigin(side1, single4, single5, single6, single7, flag, out vector3.x, out vector3.y); return(camera.ScreenToWorldPoint(vector3)); }
public static void ScreenOrigin(UIAnchor.Side side, float xMin, float xMax, float yMin, float yMax, float relativeOffsetX, float relativeOffsetY, out float x, out float y) { float single; float single1; UIAnchor.ScreenOrigin(side, xMin, xMax, yMin, yMax, out single, out single1); x = single + relativeOffsetX * (xMax - xMin); y = single1 + relativeOffsetY * (yMax - yMin); }
public static void ScreenOrigin(UIAnchor.Side side, float xMin, float xMax, float yMin, float yMax, UIAnchor.Flags flags, out float x, out float y) { float single; float single1; float single2; float single3; switch ((byte)(flags & (!UIAnchor.Info.isWindows ? UIAnchor.Flags.CameraIsOrthographic : UIAnchor.Flags.CameraIsOrthographic | UIAnchor.Flags.HalfPixelOffset))) { case 1: { UIAnchor.ScreenOrigin(side, xMin, xMax, yMin, yMax, out single, out single1); x = Mathf.Round(single); y = Mathf.Round(single1); break; } case 2: { UIAnchor.ScreenOrigin(side, xMin, xMax, yMin, yMax, out x, out y); break; } case 3: { UIAnchor.ScreenOrigin(side, xMin, xMax, yMin, yMax, out single2, out single3); x = Mathf.Round(single2) - 0.5f; y = Mathf.Round(single3) + 0.5f; break; } default: { goto case 2; } } }