UGUI (Unity Graphic User Interface)


  1. UGUI
    1. 직관적인 UI 요소들의 Depth를 알 수 있다.
    2. UI 요소들은 Canvas 단위로 Draw-Call이 일어난다.
      1. Canvas의 UI 요소들은 Canvas Renderer를 통해 Redering 되므로
      2. Canvas 내의 같은 Material / Shader를 사용하는 요소들끼리 묶어 Draw-Call을 하려고 한다.
  2. Canvas (GameObject로써의 Canvas)

    1. UI 요소들을 Rendering하는 기본 단위, UI 요소들을 배치하는 영역
    2. Canvas는 자식 Canvas를 가질 수 있으며 “별도의 Draw Call”이 발생 할 수 있다.
    3. Hierarchy에서 Canvas의 자식들 중 제일 아래쪽에 있는 자식부터 앞 쪽에 Render 된다.
  3. EventSystem
    1. Canvas를 생성하면 자동으로 생성되는 Object이다.
    2. “Canvas”의 Component인 “Graphic Raycaster”를 통해 Canvas내의 UI 요소들과 충돌 같은 상호 작용을 처리한다.
      (Graphic Raycaster : Canvas Object 하위에 배치된 UI 요소들에 광선을 쏴서 충돌 처리를 한다.)
  4. Rect Transform

    1. UI 전용 2 차원 Transform이다.
    2. Resize 하는 경우, “Width”와 “Height”만을 수정하는 것을 권장한다.
      (Width : 사각형의 폭 조절 / Height : 높이를 결정)
    3. Anchor Preset에서 Alt를 누르면 Anchor 수정과 동시에 Resize 할 수 있다.
  5. Pivot
    1. UI 요소의 중심점을 나타내는 정보
  6. Anchor
    1. 부모-자식의 구조를 가지는 Rect Transform이 있을 때, “자식을 부모의 특정 변 (edge)이나 꼭지점 (vertex)에 고정 시킬 수 있는 기능”
  7. Canvas (Component로써 Canvas)
    1. UI가 배치되고 Render되는 추상적인 공간
    2. 3가지의 Render 방식을 지원하며, “Draw Call에 영향을 준다" (Render 되는 방식에 따라, 어떤 것을, 어떻게 그릴지 달라지니깐)
      1. Screen Space - Overlay
        1. UI 요소가 World의 Object들보다 항상 앞 쪽에 그려지게 된다.
      2. Screen Space - Camera
        1. UI 요소가 Camera와 설정한 Distance만큼 떨어진 곳에 그려진다.
        2. Viewport안에 그려지게 되며, UI 요소와 Camera 사이에 오브젝트가 있으면 가려지게 된다.
      3. World Space
        1. UI 요소가 3D 월드의 오브젝트처럼 다뤄지게 된다.
        2. UI 요소가 Camera 시야 안에 있어야 그려지게 된다.
  8. Canvas Scalar
    1. Canvas에 배치된 모든 요소들의 크기와 Pixel 밀도를 설정한다.
    2. Canvas Scalar는 Font 크기, Image 크기와 같은 모든 요소들에 영향을 주니 반드시 먼저 설정해 주어야한다.
    3. Scale 되는 방식은 3가지가 있다.
      1. Constant Pixel Size
        1. 화면 크기와 관계 없이, UI 요소의 크기/위치가 단순 Pixel에 대한 배율로 지정된다. (Reference Pixel Per Unit)
        2. Scale With Screen Size
          해상도가 달라져도 UI 크기의 비율을 자동으로 맞춘다.
          1. 화면 크기에 따라 UI 요소들의 위치/크기가 결정된다. (Vector 이미지 처럼 자동으로 Resize)
          2. 모바일 해상도가 제각각이라 모바일 게임에서 많이 쓰인다.
          3. 아래와 같은 속성들을 가지고 있다.
            1. Reference Resolution
              1. 기준이될 적정 해상도를 설정
            2. Screen Match Mode
              1. 화면의 종횡비가 Reference Resolution과 같지 않을 경우 Canvas 영역 조정을 어떻게 할지 설정하는 옵션
                1. Match Width or Height
                  1. Canvas의 Width 또는 Height를 기준으로 Canvas 영역을 설정한다.
                  2. Match 변수는 어느 쪽에 더 정확하게 맞출 것인지 설정하는 Factor
                2. Expand
                  1. Canvas의 Width / Height를 확장한다.
                3. Shrink
                  1. Canvas가 Reference Resolution보다 커지지 않게 Canvas를 수평 or 수직으로 자른다.
        3. Constant Physical Size
          1. 화면의 크기에 관계 없이 UI 요소가 동일한 물리적인 크기로 유지된다.

유니티 조명


  1. Unity에서 물체에 셰이더 연산을 하기 위한 조명 정보 (빛 방향, 색, 빛 세기)는 “광원” 오브젝트가 제공한다.
  2. 광원은 “Real-Time”과 미리 계산된 “Baked” 두 가지가 있다.
  3. “Real-Time” 광원은 반사광을 계산하지 않으며, 매 프레임 업데이트한다.
  4. Texture의 Texture Type을 Cookie로 설정하여 빛의 형태를 변경할 수 있다.

+ Recent posts