U3D 如何计算一个UI四个角的绝对坐标

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了U3D 如何计算一个UI四个角的绝对坐标相关的知识,希望对你有一定的参考价值。

screen space overlay 下直接取UI坐标和长,宽,计算得到四角坐标。

screen space camera 下需要转换长宽到相机空间单位:如下:

        var cam = GameObject.Find("Camera").GetComponent<Camera>();
        var cam_h = 2*cam.orthographicSize;
        var cam_w = cam_h * Screen.width /Screen.height;

        var rtrans = gameObject.GetComponent<RectTransform>();
        Vector3[] worldcorners = new Vector3[4];
        rtrans.GetWorldCorners(worldcorners);

        float[] wcs = new float[4];
        float fw = rtrans.rect.width / Screen.width * cam_w;
        float fh = rtrans.rect.height / Screen.height * cam_h;
        var c1 = transform.position.x - fw / 2;
        var c2 = transform.position.x + fw / 2;
        var c3 = transform.position.y - fh / 2;
        var c4 = transform.position.y + fh / 2;

 

以上是关于U3D 如何计算一个UI四个角的绝对坐标的主要内容,如果未能解决你的问题,请参考以下文章

unity3d 获取相机视口四个角的坐标

获取旋转的矩形 UIView 角的坐标 iOS

iOS 琐碎点------切某个或某几个角的圆角

jquery 动画如何将四个角的方块移动到中间

POJ2044 Weather Forecast 题解

从旋转的矩形计算边界框坐标