U3D 如何计算一个UI四个角的绝对坐标
2024-09-02 11:03:55
//方式一,使用API获取
var rtrans = gameObject.GetComponent<RectTransform>();
Vector3[] worldcorners = new Vector3[];
rtrans.GetWorldCorners(worldcorners); //方式二,手动计算
var cam = GameObject.Find("Camera").GetComponent<Camera>();
var cam_h = * cam.orthographicSize;
var cam_w = cam_h * Screen.width / Screen.height; var canvasObj = GameObject.Find("Canvas");
var canvas = canvasObj.GetComponent<Canvas>();
var canvasScaler = canvasObj.GetComponent<CanvasScaler>(); float screen_w = Screen.width;
float screen_h = Screen.height; var pos = transform.position;
var fw = rtrans.rect.width;
var fh = rtrans.rect.height; if (canvasScaler.uiScaleMode == CanvasScaler.ScaleMode.ScaleWithScreenSize)
{
screen_w = canvasScaler.referenceResolution.x;
screen_h = screen_w * Screen.height / Screen.width;
}
if (canvas.renderMode == RenderMode.ScreenSpaceCamera)
{
fw = rtrans.rect.width / screen_w * cam_w;
fh = rtrans.rect.height / screen_h * cam_h;
} float[] wcs = new float[]; var c1 = pos.x - fw / ;
var c2 = pos.x + fw / ;
var c3 = pos.y - fh / ;
var c4 = pos.y + fh / ; //两种试计算得到的结果完全一样
最新文章
- LODProp3D实例
- 关于安装CentOS 7 的注意事项
- iOS富文本
- uml大战需求分析阅读笔记01
- Atitit.数据库存储引擎的原理与attilax 总结
- Spring,hibernate,struts的面试笔试题及答案
- HTML5(常用的表单控件)
- 保护企业的Word文档
- whereis 命令
- css初始化代码方案
- c#基础语言编程-程序集和反射
- uva10791
- [ACM] POJ 2635 The Embarrassed Cryptographer (同余定理,素数打表)
- 属性添加get和set方法
- SpringMVC和Struts2区别比较
- VMware 12 安装 Windows server 2008 系统
- 2,使用javascript
- IDEA创建javaSE项目
- Oracle FM FM09999999 确保8位数字 即使全是0
- 通过chrome console 快速获取网页连接
热门文章
- 208. Implement Trie (Prefix Tree) -- 键树
- 微信支付 WeixinJSBridge is not defined 报错
- URAL 1040 Airline Company 构造,思路 难度:2
- iOS面试准备之思维导图(转)
- MAC 下编译 ANDROID P 源码 提示 internal error: Could not find a supported mac sdk: [";10.10"; ";10.11"; ";10.12"; ";10.13";]
- python-websocket-server hacking
- Windows10解决无法访问其他机器共享的问题
- panabit允许一台代理服务器只能收QQ企业邮箱,和内网ip通讯,限制除了QQ企业邮箱以外的所有内容规则
- 设置vim颜色方案
- java web 程序---留言板