특히 2D게임 제작시에 모바일 기기에서 해상도에 관계없이 original screen aspect ratio를 유지해줘야 사용자에게 왜곡없는 화면을 보여줄 수 있는데요, 유니티에서 아래와 같이 Resolution을 강제로 지정하면 모바일 화면에서 Stretch된 화면이 디스플레이되어서 원래 화면 비율이 유지되지 않습니다.
Screen.SetResolution(1080, 1920, true);
그래서 Resolution을 바꾸는 대신 아래와 같이 Camera Component의 ViewPort를 변경하는 방법으로 해결해야 합니다.
void Start()
{
var camera = GetComponent<Camera>();
var r = camera.rect;
var scaleheight = ((float)Screen.width / Screen.height) / (9f / 16f);
var scalewidth = 1f / scaleheight;
if (scaleheight < 1f)
{
r.height = scaleheight;
r.y = (1f - scaleheight) / 2f;
}
else
{
r.width = scalewidth;
r.x = (1f - scalewidth) / 2f;
}
camera.rect = r;
}
void OnPreCull() => GL.Clear(true, true, Color.black);
'Development > Unity' 카테고리의 다른 글
[Unity] 레이저 광선 효과 쉽게 만들기 (0) | 2023.01.03 |
---|