码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-06-26 17:59:45      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:get   font   log   []   overlay   var   pre   object   com   

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四个角的绝对坐标

标签:get   font   log   []   overlay   var   pre   object   com   

原文地址:http://www.cnblogs.com/timeObjserver/p/7081583.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!