当前位置: 首页 > news >正文

【Unity3D】UGUI物体世界坐标转屏幕坐标问题

如题: UGUI物体世界坐标转屏幕坐标问题,获取UI(UGUI)屏幕坐标问题等相关问题

思路:必须使用Canvas身上的Camera,进行Camera.WorldToScreenPoint(UI物体的世界坐标Vector3),会返回一个Vector3(x,y,z),我们要的是正常的2个分量作为屏幕坐标。

按道理屏幕坐标是Vector2,所以Vector3里会有一个异常的分量,一般是Z值,所以我们要用

正常API:使用摄像机将世界转屏幕坐标点Vector3 再转Vector2

Vector3 screenPointVec3 = camera.WorldToScreenPoint(uiGameObject.transform.position);
Vector2 screenPosVec2 = new Vector2(screenPointVec3.x, screenPointVec3.y);//每次都new Vector2不太好,可以外部创一个成员Vector2, 然后使用vec2.Set(x,y);

扩展:RectTransformUtility会直接转成Vector2(未测试是否正常)

Vector2 vec2 = RectTransformUtility.WorldToScreenPoint(Camera, Vector3);
http://www.lryc.cn/news/184656.html

相关文章:

  • 代码随想录二刷day51
  • 接口自动化测试框架(pytest+allure+aiohttp+ 用例自动生成)
  • [Python入门教程]01 Python开发环境搭建
  • 第四章:最新版零基础学习 PYTHON 教程(第二节 - Python 数据类型—Python 字符串、列表、元组、迭代)
  • react框架与vue框架的区别
  • C++_pen_静态与常量
  • ToDoList使用自定义事件传值
  • 基于SSM的家庭财务管理系统设计与实现
  • OpenHarmony Trace的使用
  • 文件上传笔记
  • 计算机网络 第三章数据链路层
  • 浅析如何在抖音快速通过新手期并积累粉丝
  • 英文论文实例赏析——如何写前言?
  • springBoot -md
  • 从0开始学go第五天
  • 大厂技术面试中的手撕代码应该如何准备?
  • 阿里影业+大麦,开启大文娱新纪元?
  • springboot整合mybatis入门程序
  • 【BI看板】Superset2.0+图表二次开发初探
  • 微服务学习--1入门
  • docker系列6:docker安装redis
  • 计算机网络(三):数据链路层
  • 【计算机组成 课程笔记】7.2 DRAM和SRAM
  • 1802_在Linux系统上开发ARM单机片机嵌入式软件
  • 【计算机网络-自顶向下方法】应用层(HTTP、FTP)
  • CSS文本超出显示小数点
  • 怎么把图片压缩小一点?4个简单的压缩办法
  • react嵌套路由
  • 代码随想录 单调栈 Ⅰ
  • C++返回引用