unity 2D 正交摄像机下 uGUi 比例与自适应问题


unity自带的UGui普遍都有rect transform属性

orthographic摄像机下 如果size是1 那么半个高度的ugui canvas就是1单位长度, 一个cube是1米 1米1单位
Unity2D中摄像机镜头的尺寸决定了我们实际看到游戏内容的多少,Unity2D中这个比例的默认值是100,即100像素等于1单位,1个单位是1米。如果我们的游戏屏幕有640像素高,那么实际换算成单位高度则是6.4个单位,当我们摄像机的 Size值是3.2时,摄像机大小刚好与屏幕大小相等。


已知canvas有三种模式


然后我采用的是Screen Space - camera

因为overlay模式不用摄像机都会显示UI,所以不能使用两个摄像机方式将其他物体显示在其之前

而world space则更多利用在3D场景中,如果摄像机转动ui也会出现问题,需要比较多的设置才行


然后设置UI Scale Mode 为Scale With Screen Size(下面填上你需要的分辨率 我设置的是1920*1080)

注意主摄像机必须是正交摄像机而且size必须是1080/2/100也就是5.4 才能正常

而ui的移动(基于像素可以使用下面两种方式a b都是Button)


a.transform.Translate(960.0f/100.0f,0,0);
b.GetComponent<RectTransform>().localPosition = new Vector3(960,0,0);


另外放上一张自己画的ugui和rect transform的理解图



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值