您当前的位置: 首页 >  unity
  • 4浏览

    0关注

    157博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Unity 获取UI(RectTransform)四个角的屏幕坐标

牙膏上的小苏打2333 发布时间:2022-09-13 11:00:16 ,浏览量:4

获取UI(RectTransform)四个角的屏幕坐标

 Vector3[] corners = new Vector3[4];

		/// 
        /// 左下、左上、右上、右下
        /// 
        /// ui
        /// 0、1、2、3
        /// 
        private Vector3 GetCornerScreenPos(RectTransform rt, int index)
        {
            rt.GetWorldCorners(corners);
            Vector3 wPos = corners[index];
#if UNITY_EDITOR
            Debug.Log($"{rt.name}:wPos:{wPos}");
#endif
		    var UICanvas =rt.GetComponentInParent();
            Camera uCame = UICanvas.worldCamera;
            Vector3 screenPos = wPos;
            if (UICanvas.renderMode != RenderMode.ScreenSpaceOverlay && uCame !=null)
            {
                screenPos = uCame.WorldToScreenPoint(wPos);
            }
#if UNITY_EDITOR
            Debug.Log($"{rt.name}:screenPos:{screenPos}");
#endif
            return screenPos;
        }
关注
打赏
1664520285
查看更多评论
立即登录/注册

微信扫码登录

0.0811s