UI自适性问题

UI自适性问题

1.手机端摇杆制作

(1)创建空物体Pin定位左下角

为下面制作摇杆UI 定在屏幕左下角

(2)制作摇杆可触碰的范围Image 作为(1)的子物体

image的锚点在中间 PosX和PosY分别是长和宽的一半 中间的好处 下面方向盘和光标点的位置都是 (0 ,0) 好计算距离

(3)制作摇杆方向盘 作为(2)的子物体
(4)制作摇杆光标点 作为(3)的子物体

找到光标点相对于方向盘的边缘距离

(5)确定光标点相对于方向盘位移距离 并考虑自适性
 pointDis = Screen.height*1.0f / Constants.ScreenStandardHeight * Constants.ScreeenOPDis;

 Vector2 dir=evt.position-startPos;
            float len=dir.magnitude;
if (len > pointDis)
            {
                Vector2 clampDir = Vector2.ClampMagnitude(dir,pointDis);
                imgPoint.transform.position = startPos + clampDir;
            }
            else
            {
                imgPoint.transform.position = evt.position;
            }

因为是横板游戏所以 UI大小随着画布的高度变化

请添加图片描述
本人后面会写手游摇杆得具体制作细节 这里只考虑UI自适性问题

2.经验进度条的制作

请添加图片描述

(1)布局UI

这里包括EXP图片 经验条边框 是个经验条进度图片 和经验百分比文本

(2)经验条边框铺满全屏适配

为了经验条边框可以适应手机屏幕得变化 所以Rect Transform要设置strech的方式

(3)经验进度条铺满全屏适配 (Rect Transform为strech)

再创建一个 GridGroup ItemList 作为十张经验进度条图片的父类,通过组件Grid Layout Group 来使十张图片均匀分散在经验条边框内

(4)自动排布适配

这时就会发现问题 随之屏幕高度的变化 经验条边框的大小也会随之变化 我们怎么计算 自动排版组件中的Cell Size的数值

这里EXP图片的宽度是定制 经验条之间的空格距离也是定值

通过Screen.height/标准高度 的比值 *标准宽度 得到得实际画布宽度

实际画布宽度减去上面说的定制 就可以得到 实际 十张图片占得宽度/10 即可解决问题

这里需要代码实现 加载这个 UI界面时需要对自动排版组件得Cell Size 的数值调整

        float globalScale = Constants.ScreenStandardHeight*1.0f / Screen.height;
        float screenWidth = Screen.width * globalScale;
        float cellSizeX = (screenWidth - 132) / 10;
        grid.cellSize = new Vector2(cellSizeX,3.3f);
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大橘915818

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值