Unity UGUI适配方案(二) ------ 图片适配
这两天看了个小项目的教程,中间提到了图片设备摄像机的size与图片的scale的相互转换,感觉可以记录下来
首先我们来理解下摄像机的size,它是屏幕高度的一半,如下图所示
1.根据图片设置摄像机Size适应图片
计算公式如下:
(Camera.main.orthographicSize* 2) : (图片宽 / 100) = Screen.height : Screen.width
2.图片scale自适应
计算公式:
目标宽度 : (Camera.main.orthographicSize* 2) = Screen.width : Screen.height
图片scale.x = 目标宽度 / 图片实际宽度
public class Adjust : MonoBehaviour {
private void Start()
{
Resize();
}
/// <summary>
/// 适应屏幕
/// </summary>
void Resize()
{
float width = GetComponent<SpriteRenderer>().bounds.size.x;
float targetWidth = Camera.main.orthographicSize * 2 / Screen.height * Screen.width;
Vector3 scale = transform.localScale;
scale.x = targetWidth / width;
transform.localScale = scale;
}
}