์•„๋ž˜ ์ฝ”๋“œ๋Š” ์—ฌ๊ธฐ ์œ ํŠœ๋ธŒ์— ๋‚˜์˜ค๋Š”๊ฑฐ ๊ทธ๋Œ€๋กœ ์ผ์Šต๋‹ˆ๋‹ค.



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์„ ๊ณฑํ•ด๋„ ์นด๋ฉ”๋ผ์— ๋”ฑย ๋งž๋˜๋ฐ ์ €๋ž‘ ๋ฌด์Šจ ์ฐจ์ด๊ฐ€ ์žˆ๋Š”๊ฑธ๊นŒ์š” ๊ทธ๋ƒฅ ์ด๋Œ€๋กœ ์“ฐ๊ธฐ์—”ย ์ฐ์ฐํ•ด์„œ์š”..