通常通过设置CanvasScale来使UI自适应不同屏幕
1.UIScaleMode – 通常选ScaleWithScreenSize,以自适应不同屏幕
- ConstantPixelSize //固定像素
- ScaleWithScreenSize //随屏幕缩放
- ConstantPhysicalSize //固定物理大小
2.ReferenceResolution – 设置参考分辨率(即开发时使用的分辨率)
3.ScreenMatchMode – 通常用MatchWidthOrHeight,Math设为0.5
- MatchWidthOrHeight 根据权重"Match"对屏幕宽高进行适配
- Expand //屏幕扩展使Canvas完全展现,屏幕比例不同时,屏幕边缘会无ui覆盖
- Shrink //屏幕收缩使Canvas填满屏幕,部分UI会在屏幕外
常见问题:
- 使用预制体新建UI时,缩放异常
方式一: 设置父节点用ui.SetParent(parent,false), 而不是ui.SetParent(parent);
Canvas自适应时会有缩放,第二个参数设为false使新UI适用父节点的位置,缩放和旋转;
方式二: ui.transform.localScale = Vector3.one;