Unity

Unity 카메라의 뷰포트를 설정하여 원하는 시야를 만들자

코샵 2023. 12. 14. 11:34
반응형

Unity 카메라는 게임의 시각을 담당하는 중요한 요소입니다. 카메라의 뷰포트 설정을 통해 원하는 시야를 만들 수 있습니다.

이 글에서는 Unity 카메라의 뷰포트 설정에 대해 알아보겠습니다.

 

뷰포트 영역

뷰포트 영역은 카메라가 렌더링하는 영역을 설정하는 옵션입니다. 값은 0과 1 사이의 비율로 표현되며, (0, 0, 1, 1)은 전체 화면을 의미합니다.

뷰포트 영역을 사용하여 카메라의 특정 부분만을 표시하거나, 여러 개의 카메라를 사용하여 분할 화면 효과를 만들 수 있습니다.

예를 들어, 다음과 같이 뷰포트 영역을 설정하면 카메라는 화면의 중앙 25%만을 표시합니다.

[SerializeField] private RectTransform m_ViewportRect;

void OnEnable()
{
    m_ViewportRect.SetRect(0.25f, 0.25f, 0.75f, 0.75f);
}

깊이

깊이는 카메라의 렌더링 우선순위를 설정하는 옵션입니다. 값이 작을수록 먼저 렌더링되며, 값이 같은 경우에는 카메라의 Inspector에서의 순서에 따라 결정됩니다.

깊이를 사용하여 카메라의 렌더링 순서를 제어할 수 있습니다. 예를 들어, 다음과 같이 깊이를 설정하면 카메라2가 카메라1보다 먼저 렌더링됩니다.

[SerializeField] private int m_Depth;

void OnEnable()
{
    m_Depth = 1;
}

클리어 플래그

클리어 플래그는 카메라가 렌더링하기 전에 프레임 버퍼를 어떻게 지울지 설정하는 옵션입니다.

  • Background: 카메라의 배경색으로 클리어
  • Solid Color: 지정한 색상으로 클리어
  • Depth Only: Depth Buffer만 지우고 Color Buffer는 그대로 유지
  • None: 클리어하지 않음

클리어 플래그를 사용하여 카메라의 배경을 설정할 수 있습니다. 예를 들어, 다음과 같이 클리어 플래그를 설정하면 카메라의 배경이 검은색으로 설정됩니다.

[SerializeField] private CameraClearFlags m_ClearFlags;

void OnEnable()
{
    m_ClearFlags = CameraClearFlags.DepthOnly;
}

배경색

배경색은 카메라의 배경색을 설정하는 옵션입니다. Clear Flags가 Background로 설정되어 있을 때, 이 배경색으로 클리어됩니다.

배경색을 사용하여 카메라의 배경을 원하는 색으로 설정할 수 있습니다. 예를 들어, 다음과 같이 배경색을 설정하면 카메라의 배경이 빨간색으로 설정됩니다.

[SerializeField] private Color m_BackgroundColor;

void OnEnable()
{
    m_BackgroundColor = Color.red;
}

클링 마스크

클링 마스크는 카메라가 렌더링할 레이어를 설정하는 옵션입니다. 레이어별로 렌더링 여부를 결정할 수 있으며, 필요한 객체만을 선택하여 렌더링할 수 있습니다.

클링 마스크를 사용하여 카메라의 시야를 제어할 수 있습니다. 예를 들어, 다음과 같이 클링 마스크를 설정하면 카메라는 레이어 1과 2에 속한 객체만을 렌더링합니다.

[SerializeField] private LayerMask m_CullingMask;

void OnEnable()
{
    m_CullingMask = LayerMask.GetMask("Layer1, Layer2");
}

 

마치며

Unity 카메라의 뷰포트 설정을 통해 원하는 시야를 만들 있습니다.