博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
U3D 如何计算一个UI四个角的绝对坐标
阅读量:5952 次
发布时间:2019-06-19

本文共 1406 字,大约阅读时间需要 4 分钟。

 
//方式一,使用API获取        var rtrans = gameObject.GetComponent
(); Vector3[] worldcorners = new Vector3[4]; rtrans.GetWorldCorners(worldcorners); //方式二,手动计算 var cam = GameObject.Find("Camera").GetComponent
(); var cam_h = 2 * cam.orthographicSize; var cam_w = cam_h * Screen.width / Screen.height; var canvasObj = GameObject.Find("Canvas"); var canvas = canvasObj.GetComponent
(); var canvasScaler = canvasObj.GetComponent
(); 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[4]; var c1 = pos.x - fw / 2; var c2 = pos.x + fw / 2; var c3 = pos.y - fh / 2; var c4 = pos.y + fh / 2; //两种试计算得到的结果完全一样

 

转载于:https://www.cnblogs.com/timeObjserver/p/7081583.html

你可能感兴趣的文章
Android — 创建和修改 Fragment 的方法及相关注意事项
查看>>
流程控制: jQ Deferred 与 ES6 Promise 使用新手向入坑!
查看>>
swift基础之_swift调用OC/OC调用swift
查看>>
Devexpress 15.1.8 Breaking Changes
查看>>
推荐JS插件:imagesLoaded,监测图片加载情况并提供相应的事件(加载成功/失败)...
查看>>
Java B2B2C多用户商城 springcloud架构- common-service 项目构建过程(七)
查看>>
杨老师课堂之ArrayList集合常用方法解析
查看>>
ElasticSearch Client详解
查看>>
新零售讲堂之时代下的传统零售业,何去何从?
查看>>
c++读取和写入TXT文件的整理
查看>>
深入动态人脸识别小场景应用,2019年或将迎来爆发期
查看>>
Ionic2 下处理 Android 设备下返回按钮的事件
查看>>
linux基础--grep以及模式正则表达式
查看>>
Spark入门实战系列--7.Spark Streaming(上)--实时流计算Spark Streaming原理介绍
查看>>
linux安全问答(1)
查看>>
微软已停止对Vista RTM(SP0)的服务支持
查看>>
Activity 切换 动画
查看>>
[LeetCode] Sum of Left Leaves 左子叶之和
查看>>
[LeetCode] Find Median from Data Stream
查看>>
3.6. Pure-FTPd + LDAP + MySQL + PGSQL + Virtual-Users + Quota
查看>>