【Unity】【Canvas】UGUI层次显示的问题

本文介绍了解决UGUI中UI元素根据摄像机位置自动调整显示层级和大小的问题。作者最初尝试使用NGUI但未达预期,最终采用UGUI并通过调整SortOrder和Canvas RenderMode实现了目标效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前段时间在一个项目里面遇到需要依照一定顺序和规则排布某些UI。
之前参考过雨松MOMO大神的相关内容,原文链接如下:
UGUI研究院之不添加摄像机解决UI与UI特效叠层问题(九)

先说一下需求:
UI需要依据摄像机不同的位置调整各自相对显示的层次和距离大小(相对于摄像机近大远小)。

解决的思路:
一开始尝试使用NGUI,UI的层次问题得到完美解决。
后面再处理NGUI相对于摄像机的位置信息的时候,因为要得到 UI所处的对应的世界坐标,因而在获取相关坐标值的时候发现NGUI的屏幕坐标转世界坐标并不能得到期望的结果。遂放弃该方案。

回到UGUI,在查阅官方文档的时候发现有一个参数可以直接设置。
Sort Order.

就是图中的Sort Order.
其值越大,Canvas所在的UI越在上层。
gameObject.GetComponent().sortingOrder =赋值。

还有一个方法,就是将Canvas的RenderMode设置为WorldSpaces,然后调整Canvas和摄像机的关系。
通过设置UI Rect Transform的Posx,Posy,Posz 来相应的改变UI的位置和近大远小的效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值