Unity UGUI适配方案(二) ------ 图片适配

这两天看了个小项目的教程,中间提到了图片设备摄像机的size与图片的scale的相互转换,感觉可以记录下来

首先我们来理解下摄像机的size,它是屏幕高度的一半,如下图所示

Unity UGUI适配方案(二) ------ 图片适配
size设置为9.1效果
Unity UGUI适配方案(二) ------ 图片适配
size设置为8的效果

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;
    }
}