유니티나 언리얼을 사용하다가 보면 많이 듣는 게임 오브젝트라는 개념과 컴포넌트들을 심심치 않게 볼 수 있는데 이번에는 게임 오브젝트가 뭔지, 현실에서의 오브젝트의 개념과 어떻게 다른지를 정리하고 컴포넌트는 어떤 역할을 수행하고 왜 게임 개발에서 컴포넌트라고 불리고 사용되는지에 대해서 정리하고자 한다.
게임 오브젝트는 게임 세계 안에서 존재하고 동작하는 모든 요소의 기본 단위이다. 예를 들어서 캐릭터, 아이템, 배경, UI 버튼 등 모두 게임 오브젝트다. 간단히 말하면 게임 세계를 구성하는 거의 모든 것의 게임 오브젝트라고 할 수 있다.
| 항목 | 게임 오브젝트 (Game Object) | 현실 오브젝트 (Real-World Object) |
|---|---|---|
| 존재 형태 | 디지털 세계 속 추상적 데이터 구조 | 물리 세계에서의 실재하는 물체 |
| 표현 방식 | 수치 데이터(위치, 모델, 상태 등)로 저장되고 렌더링됨 | 빛, 질량, 촉감 등 감각적 정보로 인식됨 |
| 조작 방식 | 코드 또는 UI로 조작(Transform, Script 등) | 손, 도구 등 물리적 수단을 통해 상호작용 |
| 법칙 적용 | 인위적인 물리·로직(게임 물리, 이벤트 중심) | 자연 법칙(뉴턴 물리학, 시간, 온도 등) |
| 목적 | 게임 플레이, 기능, 상호작용을 위한 설계 단위 | 실생활 사용, 목적, 존재 그 자체로 의미를 가짐 |
게임 오브젝트는 가상 환경에서의 기능적 단위로 코드와 데이터 조작 가능한 디지털 구조체이다. 반면 현실 오브젝트는 물리 세계(현실)의 실제 사물로 자연 법칙과 물리적 제약 하에 존재하며 상호작용한다.
위에 표와 정리 글로 보면 두 오브젝트는 "존재한다"라는 공통점이 있지만, 존재의 방식과 구성, 조작법, 목적에서 본질적인 차이가 존재하고 그렇게 구분 지을 수 있을 것이다.


위에 사진들 처럼 게임 오브젝트는 게임 세계에서 존재하기 위해서는 최소한의 조건들이 필요하다. 특히 유니티 게임 상에서는 빈 게임 오브젝트를 만들게 되었을 때, Transform이라는 컴포넌트가 따라 붙는다. 왜 따라 붙는 것일까? 이유는 게임 상에 존재하기 위해서는 유니티가 Transform이라는 것이 필수 이기 때문이다. 여기에서 여러 기능들을 추가해서, 아래와 같이 만들어 줄 수도 있다.


컴포넌트는 Unity에서 게임 오브젝트의 기능을 정의하는 모듙 단위이다. 위치 정보를 담고 있는 Transform이라는 기본 컴포넌트 부터, 랜더링, 물리, 오디오, UI, 스크립트 등 다양한 기능을 조합하여 오브젝트의 역할이나 특징을 부여하여 정의하는데 사용된다.
| 분류 | 컴포넌트 이름 | 역할 설명 |
|---|---|---|
| 렌더링(Rendering) | Mesh Renderer, Sprite Renderer | 화면에 3D Mesh 또는 2D Sprite를 출력 |
| 물리(Physics) | Rigidbody, BoxCollider, SphereCollider | 물리 연산, 충돌 감지, 중력 적용 등 |
| 스크립트 | 사용자 정의 C# 스크립트 | 논리, 행동, 입력 처리 등 게임 로직 |
| 오디오(Audio) | AudioSource, AudioListener | 소리 출력, 마이크 수신 등 |
| UI | Canvas, Button, Text | 사용자 인터페이스 구성 요소 |
| 카메라/조명 | Camera, Light | 시점 설정, 광원 설정 |
초반에 게임 오브젝트, 풀어서 말하면 오브젝틑 또는 객체라고 했을 때의 현실에서 알고있던 오브젝트 또는 객체의 개념이 게임이라는 가상 세계 또는 개발을 할 때의 객체라는 개념이 너무 추상적이고 감이 잡히지 않았다. 그래서 객체의 대한 정의, 오브젝트에 대한 정의가 어떻게 현실과 다른지, 현실에서의 객체의 범위와 가상인 게임과 개발을 할 때의 객체의 개념이 같으면서 다른 느낌이 존재하고 그 다른 느낌이 추상적인 것을 객체로 본다는 개념에서 혼란이 왔었다. 그래서 나 처럼 이러한 오브젝트 or 객체에 대한 개념이 흔들리는 사람이 있다면 그러한 흔들리는 포인트가 무엇이고 어떤 포인트의 개념이 충돌하면서 생기는지를 파악하고 개념 분리를 해나가는 것이 도움이 많이 될것이다. 나 또한 그렇게 해결했지만 정답을 없다. 각자만의 효율적인 처리법이 있을 수 있으니...