본문 바로가기
게임 개발 일지/내일배움캠프 TIL

[Unity] LayerMask, Main Camera의 Z값이 주로 -10인 이유

by 빛하_ 2024. 1. 16.
LayerMask

 

레이어를 효율적으로 생성/관리 하기 위해 레이어마스크를 활용한다.

최대 32개의 레이어를 활용할 수 있고, 정수형 변수의 각 비트(32비트)를 할당하여 처리한다.

1개의 변수를 여러 개의 bool값처럼 처리하는 방법 (cf. 비트 마스크 : 각 비트를 bool로 보는 관점)

 

 

LayerMask 메서드

LayerMask.GetMask : LayerName을 넣어서 비트마스크 생성

LayerMask.value : 비트마스크값을 도출 (이진수를 십진수로 변환)

LayerMask.NameToLayer(string layerName) : 레이어 이름을 통해 레이어 인덱스를 도출

LayerMask.Contains(int layerIndex) : LayerMask가 특정 레이어 인덱스를 포함하고 있는지 확인

 

Main Camera의 Z값이 주로 -10인 이유

 

문제 상황) Scene에 오브젝트를 깔았는데 Game view에 나타나지 않는 현상

 

원인 ) Camera의 z축 (object가 위치한 곳으로부터 앞뒤(깊이)로 움직이는 축) 이 0으로 설정되어 있기 때문.

 

 

 

Camera의 작동 원리를 보면, 아래와 같이 scene 위에서 내려다보고 있는 구조임을 알 수 있다.

따라서 camera가 scene보다 밑에 존재하거나, 너무 멀리서 찍는 경우 오브젝트가 보이지 않는다.

 

 

그래서 Main Camera의 z값을 -10으로 조정하면 오브젝트 위치보다 더 높은 곳에 위치하기 때문에

Game view에서 오브젝트를 볼 수 있게 된다.

 

그렇다면 camera가 오브젝트를 담을 수 있는 범위는 어디인가?

Inspector 창의 Camera에서 Clipping Planes 영역이 카메라가 피사체를 담을 수 있는 영역이다.

이 부분은 Scene 생성 시 값이 설정되어 있다. 특히 2D에서는 신경 쓰지 않아도 되는 부분이다. 

 

 

 

댓글