Пример #1
0
    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));
    }
Пример #2
0
    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);
    }
Пример #3
0
    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;
        }
        }
    }