当设置成1920 X 1080分辨率时,canvas的size如下图:
当设置成640 X 500分辨率时,canvas的size如下图:
在做Unity自适应的时候,Canvas设置的如第一张图的设置,改变分辨率时,Canvas的尺寸不会跟着改变。这时做自适应,除了一些固定的UI栏,通过固定好锚点让他在改变分辨率的时候依然在那个位置,剩下的就是一些需要使用DOTween来实现一些动画效果的UI。可能有一些淡入淡出的效果的界面,或者通过一些操作点击生成的界面,而这时这些界面的坐标在做分辨率自适应时不能使用Screen.width(屏幕宽度)和Screen.height(屏幕高度)做为LocalPosition的参考,而是需要参考当前UI所在的Canvas的Width和Height来确定需要做效果的UI界面。
此时就要用到unity自带的一个API
RectTransformUtility.ScreenPointToLocalPointInRectangle(Canvas, position1, Camera, out position2);
第1个参数:UI所在的canvas
第2个参数:需要转换的点的坐标
第3个参数:UI摄像机
第4个参数:转换后输出的点