canvas 自适应
需要设置配置
image.png
上图中需要将canvas的渲染模式为screen space
必须指定camera,如果作为obj在库中调用,需要实例化后指定camera,方法是:
GameObject gameObject=GameObject.Find("Main Camera");
Camera mainCamera=gameObject.GetComponent();
GetComponent ().worldCamera = mainCamera;
如果是竖屏游戏,内部元素缩放,设置为贴紧width
内部元素对齐和缩放模式
image.png
只有UI组件支持这些功能,即便把sprite和gameObject放进canvas,也不会出现此对齐功能
image.png
以上是位置对齐方式
image.png
以上是缩放对齐方式
以上两个对齐方式代码可以实现,但相对超级麻烦
代码方式需要获取canvas的容器大小
var rectParent = GetComponent();
然后获得元件本身的容器大小
var rect = imgGroupBg.GetComponent ();
在对这两个的关系进行transform计算
而如果使用官方的对齐方式,这些都不用管
如果做个铺满屏幕的背景,则只需要在当前场景下拉伸背景全凭,然后改变屏幕比例后背景会自动被拉伸。
如果是某个角落的按钮,则把位置对齐到对应角落,当canvas发生变化后,按钮也会保持角落固定位置不变,不会因为canvas变化导致布局混乱