디지털 트윈을 위한 Unity 기본 구조와 기초적인 사용법
Unity 기본 구조와 기초적인 사용법
Unity는 직관적인 게임 엔진으로, 게임 개발자들뿐만 아니라 시뮬레이션, AR/VR, 디지털 트윈과 같은 다양한 프로젝트에 폭넓게 사용되고 있습니다. 디지털 트윈 프로젝트를 시작하거나 간단한 게임을 개발하기 위해 Unity의 기본적인 구조와 사용법을 익히는 것은 중요합니다.
여기서 Unity의 기본 구조, 프로젝트 생성, 에디터 사용법, 그리고 C# 스크립팅 기초까지 간단히 살펴보겠습니다.
1. Unity 기본 구조
Unity는 게임이나 시뮬레이션을 만드는 데 필요한 다양한 기능을 하나의 환경에서 제공하는 통합 개발 환경(IDE)입니다. Unity 프로젝트는 여러 개의 씬(Scene)과 그 안에 배치된 게임 오브젝트(Game Object)로 구성됩니다.
Unity 구성 요소
- 프로젝트 창(Project Window): 프로젝트에 포함된 모든 에셋(asset)을 관리하는 창입니다. 이미지, 사운드, 스크립트 파일 등 다양한 리소스가 이곳에 저장됩니다.
- 씬(Scene): 씬은 게임의 각 레벨 또는 시뮬레이션의 개별 환경입니다. 씬 안에는 여러 개의 게임 오브젝트가 배치될 수 있습니다.
- 계층 창(Hierarchy Window): 씬에 있는 모든 게임 오브젝트를 트리 구조로 보여주는 창입니다. 오브젝트 간의 부모-자식 관계를 설정할 수 있습니다.
- 인스펙터 창(Inspector Window): 선택된 게임 오브젝트의 속성을 수정할 수 있는 창입니다. 오브젝트의 위치, 회전, 크기, 물리적 속성 등을 설정할 수 있습니다.
- 게임 창(Game Window): 실행 중인 게임을 미리 볼 수 있는 창입니다.
2. Unity 프로젝트 생성
Unity를 처음 실행하면 Unity Hub라는 프로그램이 뜹니다. Unity Hub를 사용해 프로젝트를 생성하거나 관리할 수 있습니다.
프로젝트 생성 단계
- Unity Hub에서 New Project 버튼을 클릭합니다.
- 프로젝트 템플릿을 선택하는 창에서, Universal 3D 또는 Universal 2D 템플릿(URP) 중 하나를 선택합니다. (디지털 트윈이나 로봇 시뮬레이션을 진행하려면 주로 URP 혹은 HDRP 템플릿을 선택)
- 프로젝트 이름과 저장 위치를 입력한 후, Create 버튼을 눌러 프로젝트를 생성합니다.
3. 게임 오브젝트와 컴포넌트
Unity에서 게임 오브젝트(Game Object)는 씬에 배치되는 모든 오브젝트를 의미합니다. 캐릭터, 배경, 조명, 카메라 등 모든 요소가 게임 오브젝트입니다. 각 게임 오브젝트는 다양한 컴포넌트(Component)로 구성됩니다.
컴포넌트란?
컴포넌트는 오브젝트에 특정 기능을 추가하는 모듈입니다. 예를 들어, 오브젝트가 물리적 상호작용을 할 수 있게 하려면 RigidBody 컴포넌트를 추가하고, 충돌 감지를 위해서는 Collider 컴포넌트를 추가할 수 있습니다.
주요 컴포넌트:
- Transform: 게임 오브젝트의 위치, 회전, 크기를 설정합니다. 모든 게임 오브젝트는 기본적으로 Transform 컴포넌트를 가집니다.
- Mesh Renderer: 오브젝트를 화면에 렌더링하는 역할을 합니다. 3D 모델을 보여주는 기능을 수행합니다.
- Collider: 오브젝트와 다른 오브젝트가 충돌할 때 그 충돌을 감지하는 역할을 합니다.
- RigidBody: 오브젝트에 물리적 속성을 부여하여 중력이나 충돌 등 물리 법칙을 따르게 합니다.
게임 오브젝트와 컴포넌트 창을 보여주는 화면. 오브젝트의 Transform, Mesh Renderer, Collider, RigidBody 등의 컴포넌트가 인스펙터에 나열된 모습
4. 간단한 게임 오브젝트 만들기
다음은 간단한 게임 오브젝트를 만들어 보면서 Unity의 기본 사용법을 익히는 예제입니다. 여기서는 씬 안에 구체(Sphere)를 생성하고 물리적 상호작용을 추가해 굴러가게 만들어 보겠습니다.
1단계: 오브젝트 생성
- Hierarchy 창에서 마우스 우클릭한 후 3D Object -> Sphere를 선택합니다.
- 씬(Scene) 안에 구체가 생성됩니다.
2단계: 컴포넌트 추가
- 구체를 선택한 상태에서 Inspector 창에서 Add Component 버튼을 클릭합니다.
- RigidBody를 검색한 후 추가합니다. 이제 구체는 중력의 영향을 받아 씬에서 떨어집니다.
3단계: 테스트 실행
- 상단의 Play 버튼을 눌러 게임을 실행해 봅니다. 구체가 중력에 의해 떨어지는 모습을 볼 수 있습니다.
- Play 버튼을 다시 눌러 게임을 중지합니다.
RigidBody 컴포넌트를 추가한 구체 오브젝트가 중력의 영향을 받아 떨어져 굴러 내려가는 모습
5. 기본 C# 스크립팅
Unity에서 게임 로직은 주로 C#을 사용해 작성됩니다. 간단한 스크립트를 만들어 오브젝트에 적용하는 방법을 살펴보겠습니다. 구체를 클릭하면 점프하도록 만들어 보겠습니다.
1단계: 스크립트 생성
- Project 창에서 Assets 폴더에서 우클릭한 후 Create -> C# Script를 선택합니다.
- 스크립트 이름을 “JumpScript”로 지정합니다.
2단계: 스크립트 작성
- “JumpScript”를 더블클릭하여 Visual Studio 또는 선호하는 텍스트 편집기로 엽니다.
- 아래와 같은 코드를 작성합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
using UnityEngine;
public class JumpScript : MonoBehaviour
{
public float jumpForce = 5f;
void Update()
{
if (Input.GetMouseButtonDown(0)) // 마우스 좌클릭 시
{
GetComponent<Rigidbody>().AddForce(Vector3.up * jumpForce, ForceMode.Impulse);
}
}
}
3단계: 스크립트 적용
- 구체를 선택한 후, Inspector 창에서 Add Component를 클릭하고 “JumpScript”를 검색하여 추가합니다.
- Play 버튼을 눌러 게임을 실행한 후, 마우스 좌클릭 시 점프하는지 확인합니다.
결론
Unity는 매우 직관적인 개발 도구입니다. 기본적인 구조와 사용법을 익힌 후, 게임 오브젝트와 컴포넌트를 활용하여 간단한 게임이나 디지털 트윈 시뮬레이션을 만들 수 있습니다.
이번 내용을 바탕으로 다양한 기능을 추가해 보며 Unity 엔진에 더 익숙해질 수 있을 것입니다. 디지털 트윈 프로젝트를 시작하기 전에, 이런 기초 지식을 탄탄히 익혀서 더 복잡한 프로젝트도 자신 있게 진행할 수 있는 준비를 갖춰봅시다.