Unity Layer, Rendering Texture

장현태입니다·2025년 5월 11일

기본 그래픽 요소

Vertex : 점
Polygon : 기본 단위인 삼각형
Mesh : Polygon이 모여 만들어지는 물체

Texture : 표면에 대한 이미지
Material : 표면의 정보(속성)
Shader : 화면에 출력될 픽셀의 정보를 지정

Layer

Layer는 오브젝트의 그룹을 만들고 관리하는 역할을한다. Layer의 경우 Project Settings -> Physics
-> Layer Collision Matrix를 통해 충돌할 Layer와 충돌되지 않을 Layer를 선택할 수 있다.

특이한 점으로 Camera에서 보이고싶지 않을경우 해당 카메라의 Culling Mask를 통해 오브젝트를 화면에서 안보이게 할 수 있다.

태그 - 레이어
태그 : 배열 형태로 계속 추가 가능
레이어 : 32개 - 4Byte 빠르게 접근가능, 중복해서 선택가능

태그의 경우 해당 태그의 식별하는 용도로 사용되고 레이어의 경우 카메라에서 보이고 안 보이고, 식별 용도, 그룹으로 관리한다

Layer 비트연산

다음과 같은 결과가 나오는 이유는 0001 -> 1000으로 되기때문에 8이라는 값이 나오게 된다.

비트로 Layer를 지정해서 해당 레이어를 제거하는 방법이다

Rendering Texture

렌더링 : 게임의 요소(캐릭터, 배경, ui등) 2차원 화면에 보여주는것

텍스쳐 : 도형을 어떤 이미지로 덮을것인지 도형의 전개도

렌더링 텍스쳐 : 렌더링 되고 있는 화면을 텍스쳐 형태로 저장한 것으로 거울, 그림자, 영상, cctv로 사용

먼저 create -> Render Texture를 선택 한 후
원하는 카메라의 target Texture에 render Texture를 삽입한다

이렇게 설정을 한 후 RawImage를 생성 한 후 이미지에서도 texture에 render texture를 넣어준다면

cube위의 ui에서 카메라 환경을 확인 할 수 있다.

실습
cctv로만 확인 가능한 유령

플레이어 움직임은 별 다를바 없는 코드이고 cctv변수로 RawImage를 설정, Coroutine을 사용해 누르고 있을동안 cctv가 보이도록 설정하였다

1,2번키를 누르고 있을경우 해당 index값을 넘겨주고 인덱스에 해당하는 cctv RawImage를 보여주도록 설정하였다.

유령의 움직임을 설정하는데 필요한 변수로 크게 움직임 변수, raycast, layerMask 세가지로 나눴다

처음 시작할 때 벽들은 통과하지만 일정 범위 밖으로 나가면 안되기 때문에 제일 밖의 벽의 Layer를 설정해주고 레이를 쏘고 range범위 안에 들어오게 된다면 180도 회전하여 직진 하도록 설정

Player가 존재할경우 유령은 0, 1 값에 따라 회전하는 정도를 랜덤으로 구성하고

trigger된 오브젝트의 layer가 8(Player)인경우 상대 오브젝트를 파괴하도록 설정했습니다

1번과 2번에 따라 cctv의 rawImage를 생성하고 cctv에서는 유령 오브젝트가 보이고 Player카메라의 culling Mask에서 유령 오브젝트 레이어를 비활성화 해놨다.

0개의 댓글