07/24 2D 게임 개발을 위한 기본 개념 및 설정 - Scene, 카메라, 물리 설정

댓글 0
댓글을 작성하려면 로그인이 필요합니다.
아직 댓글이 없습니다. 첫 번째 댓글을 작성해보세요!

댓글을 작성하려면 로그인이 필요합니다.
아직 댓글이 없습니다. 첫 번째 댓글을 작성해보세요!
유니티의 2D 프로젝트는 횡스크롤 액션, 퍼즐, 플랫포머, 카드 게임처럼 주로 평면상의 좌표를 활용하는 게임을 제작하는 환경입니다. 캐릭터와 배경은 일반적으로 스프라이트(Sprite) 이미지로 표현하며, 여러 스프라이트를 배치하고 정렬하기 위해 Sprite Renderer, Sorting Layer, Tilemap 등의 기능을 사용합니다. 물리 처리는 Rigidbody2D와 Collider2D 같은 2D 전용 컴포넌트가 담당하고, 화면은 깊이감이 적은 직교 카메라(Orthographic Camera)를 주로 사용합니다. 유니티에서는 2D와 3D가 완전히 분리된 것이 아니라 동일한 엔진 안에서 제공되므로, 2D 프로젝트에도 3D 조명이나 파티클을 추가하여 입체적인 연출을 만들 수 있습니다.
| 비교 항목 | 2D 프로젝트 | 3D 프로젝트 |
|---|---|---|
| 주요 표현 방식 | 스프라이트와 타일 기반의 평면 그래픽 | 3D 모델과 머티리얼 기반의 입체 그래픽 |
| 좌표 활용 | 주로 X축과 Y축 사용 | X축, Y축, Z축 모두 사용 |
| 카메라 | 직교 카메라를 주로 사용 | 원근 카메라를 주로 사용 |
| 물리 컴포넌트 | Rigidbody2D, Collider2D | Rigidbody, Collider |
| 주요 제작 도구 | Sprite Editor, Tilemap, 2D Animation | Terrain, Lighting, ProBuilder, 3D Animation |
| 그래픽 리소스 | PNG 등의 이미지 및 스프라이트 시트 | 메시, 텍스처, 머티리얼, 3D 모델 |
| 제작 난이도 | 공간과 연출이 단순해 비교적 입문하기 쉬움 | 모델링·조명·카메라 등 고려할 요소가 많음 |
| 대표 장르 | 플랫포머, 퍼즐, 카드, 2D RPG | FPS, 레이싱, 오픈월드, 3D 액션 |
| 성능 요구 | 일반적으로 비교적 낮음 | 조명과 모델 연산으로 인해 비교적 높음 |

Size = 5이면 화면 중심을 기준으로 위아래 각각 5유닛, 총 10유닛 높이가 보입니다. 값이 커지면 더 넓은 범위가 보여 오브젝트가 작아지고, 작아지면 확대된 것처럼 보입니다.Near 0.3보다 가깝거나 Far 1000보다 먼 오브젝트가 표시되지 않습니다.3D와 2D는 호환되지 않습니다.
| 3D | 2D | 주의 |
|---|---|---|
Rigidbody | Rigidbody2D | 서로 호환되지 않습니다 |
Box Collider | Box Collider 2D | 서로 감지하지 못합니다 |
Sphere Collider | Circle Collider 2D | 이름도 다릅니다 |
메인 카메라의 Culling Mask는 카메라가 어떤 Layer(레이어)의 오브젝트를 화면에 렌더링할지 선택하는 기능입니다. 예를 들어 Enemy 레이어를 Culling Mask에서 제외하면 해당 레이어의 적 캐릭터는 메인 카메라 화면에 보이지 않습니다.
| 항목 | 설명 |
|---|---|
| 작동 기준 | 각 GameObject에 지정된 Layer를 기준으로 작동합니다. |
| 레이어 선택 | 선택된 레이어의 오브젝트만 해당 카메라에 렌더링됩니다. |
| 레이어 제외 | 제외된 레이어의 오브젝트는 해당 카메라 화면에 표시되지 않습니다. |
Everything | 모든 레이어를 렌더링합니다. |
Nothing | 어떤 레이어도 렌더링하지 않습니다. |
| 활용 예시 | 특정 오브젝트 숨기기, 미니맵 전용 카메라, UI 카메라 분리 등에 사용합니다. |
중요한 점은 Culling Mask가 카메라의 렌더링만 제한한다는 것입니다. Culling Mask에서 제외해 오브젝트가 화면에 보이지 않더라도 GameObject 자체가 비활성화되는 것은 아닙니다. 따라서 다음과 같은 기능은 계속 실행됩니다.
Rigidbody2D와 Collider2D를 이용한 충돌 및 물리 작용Update() 등의 스크립트 실행즉, Culling Mask에서 제외된 오브젝트는 존재하지 않는 것이 아니라 해당 카메라의 눈에만 보이지 않는 상태입니다. 물리 충돌까지 막으려면 Culling Mask가 아니라 Layer Collision Matrix, Collider 비활성화 또는 GameObject 비활성화 등의 설정을 별도로 사용해야 합니다.
XR을 활용한 게임 개발 3기(유니티) 수강생입니다. 곧 수료 하지만 앞으로 이곳에 가끔 저의 개발 경험이 나 지식 기록할까 합니다. 더 나아가 이 사이트가 제 개인위키의 역할을 할 수 있으면 좋겠습니다. 한국 게임 시장을 흔들겠습니다

게임 광고 수익은 단순히 광고를 붙이는 것이 아니라, 여러 광고 네트워크를 경쟁시켜 가장 높은 수익을 만드는 구조입니다.

안녕하세요. 플밍 4기 입니다. 게임 개발을 배우기 전 네트워크 엔지니어 도메인에서 익히고 배웠던 네트워크 이론에 대한 기초 입니다. 학습에 도움이 되길 바라며 공유 드립니다.
XR을 활용한 게임 개발 3기(유니티) 수강생입니다. 곧 수료 하지만 앞으로 이곳에 가끔 저의 개발 경험이 나 지식 기록할까 합니다. 더 나아가 이 사이트가 제 개인위키의 역할을 할 수 있으면 좋겠습니다. 한국 게임 시장을 흔들겠습니다



게임 광고 수익은 단순히 광고를 붙이는 것이 아니라, 여러 광고 네트워크를 경쟁시켜 가장 높은 수익을 만드는 구조입니다.


안녕하세요. 플밍 4기 입니다. 게임 개발을 배우기 전 네트워크 엔지니어 도메인에서 익히고 배웠던 네트워크 이론에 대한 기초 입니다. 학습에 도움이 되길 바라며 공유 드립니다.