์๋ ์ฝ๋๋ ์ฌ๊ธฐ ์ ํ๋ธ์ ๋์ค๋๊ฑฐ ๊ทธ๋๋ก ์ผ์ต๋๋ค.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ficp : MonoBehaviour
{
ย ย private Camera mainCamera;
ย ย void Start()
ย ย {
ย ย ย ย mainCamera = Camera.main;
ย ย ย ย transform.position = new Vector3(mainCamera.transform.position.x, mainCamera.transform.position.y, 0);
ย ย ย ย Vector3 bottomLeft = mainCamera.ViewportToWorldPoint(Vector3.zero) * 100;
ย ย ย ย Vector3 topRight = mainCamera.ViewportToWorldPoint(new Vector3(mainCamera.rect.width, mainCamera.rect.height)) * 100;
ย ย ย ย Vector3 screenSize = topRight - bottomLeft;
ย ย ย ย float screenRatio = screenSize.x / screenSize.y;
ย ย ย ย float desiredRatio = transform.localScale.x / transform.localScale.y;
ย ย ย ย if (screenRatio > desiredRatio)
ย ย ย ย {
ย ย ย ย ย ย float height = screenSize.y;
ย ย ย ย ย ย transform.localScale = new Vector3(height * desiredRatio, height);
ย ย ย ย }
ย ย ย ย else
ย ย ย ย {
ย ย ย ย ย ย float width = screenSize.x;
ย ย ย ย ย ย transform.localScale = new Vector3(width, width / desiredRatio);
ย ย ย ย }
ย ย }
}
์คํํ๋ฉด ์นด๋ฉ๋ผ ํฌ๊ธฐ๋ ๋จผ์ง๊ฐ ๋๊ณ ์ค๋ธ์ ํธ๋ง ์์ฒญ ์ปค์ง๋๊ตฐ์
๊ทธ๋ฐ๋ฐ ์ฝ๋์ค์์ย
ย ย ย ย Vector3 bottomLeft = mainCamera.ViewportToWorldPoint(Vector3.zero) * 100;
ย ย ย ย Vector3 topRight = mainCamera.ViewportToWorldPoint(new Vector3(mainCamera.rect.width, mainCamera.rect.height)) * 100;
์ด ๋ถ๋ถ์์ 100์ ๊ณฑํ๋ ๊ฒ ์๋ 1์ ๊ณฑํด์ฃผ๋๋ก ์์ ํ๋ฉดย ์ค๋ธ์ ํธ๊ฐ ์นด๋ฉ๋ผ์ ๋ฑ ๋ง๋ค์.
๊ทธ๋ฐ๋ฐ ์ ์ ํ๋ฒ๋ 100์ ๊ณฑํด๋ ์นด๋ฉ๋ผ์ ๋ฑย ๋ง๋๋ฐ ์ ๋ ๋ฌด์จ ์ฐจ์ด๊ฐ ์๋๊ฑธ๊น์ ๊ทธ๋ฅ ์ด๋๋ก ์ฐ๊ธฐ์ย ์ฐ์ฐํด์์..
์ฒซ๋ฒ์งธ ๋๊ธ์๋ * 100 ์ง์ ๋๋ ์ ๋๋ค๋ ๋ด์ฉ ์๊ณ ์์ ๋ด์์ ์ฐ๋ ์ ๋ํฐ ๋ฒ์ ์ผ๋ก ์ฌํ ํด๋ณผ ๋ ๋์ ์ค๋ธ์ ํธ์ ์ค์ผ์ผ์ 1000 ์ด์์ผ๋ก ์ฌ๋ ธ์ ๋ ์์์ ๋นํด ํฐ๋ฌด๋ ์์ด ํฌ๊ฒ ๋์ค๋ ๊ฒ ๋ณด๋ฉด ์ธ๋น์ง๋ธ ์ธ๋ต์ด ์๋ ๊ฒ ๊ฐ์์ ์๋ง ์์ ์ฌ์ฉ์๊ฐ ๋ญ๊ฐ ์ ํ ํด๋๊ณ ๊น๋จน์ ๊ฒ ๊ฐ์๋ฐ ๋๋ฌด ๊น๊ฒ ์๊ฐ ์ํ๋๊ฒ ๋์์ง๋
์ ์ญ์ ๊ธ์ฟค์.. ๋ญ๊ฐ ์ฐ์ฐํ๊ธด ํ๋ฐ ์ผ๋จ ๋๊ธด ํ๋๊น.. ์๊ฑธ๋ก ์จ์ผ๊ฒ ๋ค์