Sprite 이미지 크기 개념이 헷갈려서 기록해둠,,

Scale 1은 크기가 1이라는 뜻이 아님

 

 

유니티 2D에서 자주 헷갈리는 개념 4가지:

  • 스프라이트 크기
  • Pixels Per Unit (PPU)
  • Orthographic 카메라
  • Max Size

이 4개는 역할이 다르지만 서로 영향을 주기 때문에 정확히 구분해야 한다.


1. 스프라이트 실제 크기 공식

유니티에서 스프라이트의 월드 크기는 아래 공식으로 결정된다.

실제 크기 (Unit) = 이미지 픽셀 크기 ÷ Pixels Per Unit (PPU)


📌 예시

  • 이미지: 64px
  • PPU: 64
64 ÷ 64 = 1 unit

👉 결과: 1 unit 크기

  • 이미지: 64px
  • PPU: 32
64 ÷ 32 = 2 unit

👉 결과: 2 unit 크기


❗ Scale = 1의 의미

transform.localScale = (1,1,1);

👉 “원본 크기 그대로 사용”
👉 크기가 1 unit이라는 의미는 아님


 

2. Pixels Per Unit (PPU)

1 유닛(Unit)에 몇 픽셀(px)을 대응시킬지 정하는 값


📊 PPU에 따른 크기 변화

이미지PPU결과 크기

64px 64 1 unit
64px 32 2 unit
64px 16 4 unit

💡 핵심 해석

  • PPU ↑ → 같은 픽셀이 더 작은 공간에 들어감 → 작아짐
  • PPU ↓ → 같은 픽셀이 더 넓은 공간에 사용됨 → 커짐

👉 이는 공식 (픽셀 ÷ PPU)로 정확히 설명된다


 

3. Orthographic 카메라

유니티 2D 카메라는 기본적으로 Orthographic이다.


🔑 핵심

orthographicSize = 화면 세로 “절반 길이” (Unit 기준)


📌 예시

cam.orthographicSize = 5;

👉 전체 화면 높이 = 10 unit


📏 가로 크기

가로 = 세로 × aspect 비율

예: 16:9

width ≈ 5 × 1.78 ≈ 8.9

👉 전체 가로 ≈ 17.8 unit


 

4. 스프라이트와 카메라 관계

  • 스프라이트: 1 unit
  • 카메라 높이: 10 unit
10 ÷ 1 = 10개

👉 화면에 세로로 약 10개 표시


 

5. Max Size (중요: 역할이 다름)

Max Size는 스프라이트의 “월드 크기”가 아니라
텍스처의 “최대 해상도”를 제한하는 설정이다


📌 무엇을 하는가

이미지를 GPU에 올릴 때:

  • 원본이 Max Size보다 크면
    👉 강제로 축소됨

예시

  • 원본: 64px
  • Max Size: 32

👉 내부적으로:

64 → 32로 축소됨

❗ 중요한 점

Max Size는 크기(unit)를 직접 바꾸지 않는다

👉 크기는 여전히:

(현재 텍스처 픽셀 크기) ÷ PPU

로 결정된다


📌 실제 영향

Max Size를 줄이면:

  • 해상도 ↓ (픽셀 수 감소)
  • 이미지 선명도 ↓
  • 필터링 영향 ↑

👉 결과:

  • 번져 보이거나
  • 크기가 달라진 것처럼 느껴질 수 있음

⚠️ 오해 정리

  • Max Size로 크기 조절 ❌
  • PPU로 크기 조절 ⭕

 

🧠 전체 관계 정리

요소역할

이미지 픽셀 원본 데이터
PPU 월드 크기 변환
카메라 화면에 보이는 범위
Max Size 텍스처 해상도 제한

🔥 최종 요약

  • 스프라이트 크기 = 픽셀 ÷ PPU
  • PPU = 1유닛당 픽셀 수
  • 카메라 = 보이는 월드 크기
  • Max Size = 텍스처 품질/해상도 설정

💬 한 줄 정리

크기는 PPU가 결정하고,
Max Size는 화질만 결정한다

 

+ Recent posts