1. 들어가기 전에
이 장에서는 유니티 엔진을 소개하고 개발 환경을 설정한다. 또한 간단한 데모 프로젝트를 만들어본다.
이 장에서 다루는 내용
- 유니티 엔진 소개
- 유니티 개발 환경 구성하기
- 맛보기용 프로젝트 생성하기
레트로의 유니티 게임 프로그래밍 에센스 : 네이버 도서
1.1 유니티 엔진은 무엇인가
- 유니티는 2D와 3D 그래픽을 지원하는 다목적 게임 엔진이다.
- 대부분의 기능이 개인 개발자에게 무료이다.
- 한국어와 영어 모두 참고할 만한 자료가 풍부하다.
- 멀티플랫폼을 지원하기 때문에 한 프로젝트에서 모바일과 데스크톱, 콘솔 게임용으로 빌드할 수 있다.
- 유니티는 직관적인 에디터를 가지고 있어 드래그&드롭으로 대부분의 오브젝트를 편집할 수 있다.
- 물리 엔진을 내장하고 있어 수학적으로 물리를 직접 구현하지 않아도 된다.
- 에셋 스토어에서 개발에 필요한 사운드, 3D 모델, 코드를 쉽게 구할 수 있다.
1.2 개발 환경 구성
유니티 엔진의 원리를 알아보기 전 개발 환경을 먼저 구성해야 한다. 이미 유니티 계정이 있고 유니티가 설치되어 있다면 건너뛰어도 된다.
레트로의 유니티 프로그래밍 책 기준으로는 유니티 허브 3과 유니티 2021.2를 사용한다. 이 책의 프로젝트들을 2021.2 이후에 출시된 버전을 사용하는 경우에도 정상 동작하도록 구성되었다고 한다.
1.2.1 유니티 회원 가입
유니티 엔진은 사용자 로그인을 해야 사용할 수 있다. 유니티를 설치하기 전 유니티 웹사이트에서 회원 가입을 해줘야 한다.
1. 회원 가입 페이지로 이동
* 링크: Unity 실시간 개발 플랫폼 | 3D, 2D, VR 및 AR 엔진
- 사용자 버튼을 누른 후, Unity ID 만들기 버튼을 클릭한다.
2. 회원 가입
3. 이메일 확인
- 메일함에 도착한 인증 메일로 본인 인증을 한다.
1.2.2 유니티 허브 설치
유니티를 사용하기 위한 시스템 요구 사항은 다음과 같다고 한다.
- OS: 윈도우 7, 10(64비트 버전만), 맥 OS X 10.13+
- GPU: DX10 지원 GPU(윈도우) / Metal API 지원 Intel 또는 AMD GPU(맥)
대부분의 경우 유니티가 정상적으로 실행되지만, 모바일 CPU를 사용하는 윈도우 태블릿 컴퓨터나 32비트 윈도우 등에서는 유니티가 정상적으로 실행되지 않는다고 하니 참고하는 게 좋을 것 같다.
이제 유니티 허브를 설치하고, 유니티 허브를 통해 유니티를 설치하면 된다. 유니티 허브는 사용자가 유니티를 원 클릭으로 설치하고, 여러 버전의 유니티를 한 컴퓨터에서 동시에 사용할 수 있도록 관리하는 도구이다.
1. 설치 페이지로 이동
* 링크: Start Your Creative Projects and Download the Unity Hub | Unity
2. 유니티 허브 설치(안내에 따라 설치하면 된다)
1.2.3 유니티 허브 설정
1. 유니티 허브 로그인
- 유니티 허브에서 Sign in 클릭 -> 로그인 웹페이지 열림
- 이메일과 패스워드를 입력하고 로그인 -> 유니티 허브로 리다이렉트
2. 라이선스 설정(처음 실행 시)
- 라이선스 활성화 화면에서 Agree and get personal edition license 버튼 클릭
- 유니티 에디터 설치 화면에서 Skip installation 클릭
3. 라이선스 설정(처음 실행 이후)
- 왼쪽 상단의 톱니바퀴 버튼 -> Preference 창에서 Licenses 탭 클릭
- Add 버튼 클릭 -> Get a free personal license 선택 -> Agree and get personal edition license 클릭
- 유니티 허브 페이지 구성
- Projects 탭 : 최근에 열었던 프로젝트 목록을 표시한다.
- Installs 탭 : 원하는 버전의 유니티를 골라 설치할 수 있다.
- Learn 탭 : 유용한 학습 자료와 튜토리얼 프로젝트를 다운로드할 수 있다.
1.2.4 유니티 에디터 설치
- 유니티 에디터란?
유니티가 유니티 전체 요소를 가리키는 단어라면 유니티 에디터는 우리가 실행하고 있는 유니티 개발 프로그램과 그 창을 특정하는 것이다.
유니티 허브에서 원하는 버전의 유니티 에디터를 골라서 설치하면 된다.
레트로의 유니티 프로그래밍 책은 Unity 2021.2 버전을 사용하기 때문에 Installs 탭에서 Unity 2021.2 또는 그 이상의 버전을 설치해야 한다.
1. 유니티 에디터 설치
- Installs 탭에서 Installs Editor 클릭
- Official release 탭에서 Unity 2021.2 버전을 찾아 Install 클릭
2. 컴포넌트 선택 및 설치 시작
- 꼭 필요한 필수 컴포넌트는 다음과 같다. 이것이 체크되어 있지 않으면 체크한다.
- Visual Studio : 유니티에서 사용하는 코드 편집기
- 안드로이드나 iOS 빌드를 진행하려면 다음 컴포넌트도 필요하다.
- Android Build Support
- - Android SDK & NDK Tools
- - OpenJDK
- iOS Build Support
- Android Build Support
위와 같은 필수 컴포넌트가 체크되어 있지 않다면 체크한 후 Continue 버튼을 클릭한다.
- 유니티 아카이브란?
- 유니티 에디터를 설치하는 데 유니티 2021.2를 목록에서 찾을 수 없거나 따로 설치를 원하는 버전이 없다면 유니티 아카이브(unity3d.com/get-unity/download/archive) 웹페이지에 접속한다.
- 유니티 아카이브에서는 과거 모든 유니티 에디터를 찾아 설치할 수 있다.
1.3 첫 프로젝트 생성하기
유니티 프로젝트를 생성하고 간단한 3D 큐브 오브젝트를 생성해 볼 것이다.
1.3.1 프로젝트 생성하기
1. 유니티 Projects 탭에서 새로운 프로젝트를 생성한다.
2. 프로젝트명을 Hello Unity로 변경하고, 경로와 템플릿은 건드리지 않은채로 Create project 버튼을 클릭한다.
- 용어 정리
- 프로젝트명(Project name): 프로젝트 이름이자 생성될 프로젝트 폴더의 이름
- 경로(Location): 프로젝트 폴더가 생성될 위치. 경로에 한국어가 포함되지 않도록 주의
- 템플릿(Templates): 어떤 환경을 기준으로 개발할지 결정. 초기 셋업 이외에는 개발에 영향을 주지 않으며 개발 도중 변경 가능. 일부 템플릿은 인터넷을 통해 다운로드받기 때문에 경우에 따라 표시되지 않을 수 있음
새로운 프로젝트가 생성되었으므로 기본적인 기능들을 살펴보도록 하겠다.
1. 프로젝트가 정상적으로 생성된 모습 확인
* 화면이 아래 사진과 다를수도 있는데 이는 글쓴이가 임의로 바꾼 것이므로 달라도 너무 신경쓰지 말것!
1.3.2 3D 큐브 오브젝트 생성하기
간단한 3D 큐브 오브젝트를 생성해본다. 유니티 에디터 좌측 상단을 보면 하이어라키(Hierachy) 창이 있다. 하이어라키 창에는 현재 씬에 존재하는 모든 게임 오브젝트가 표시된다. 여기서 씬은 하나의 게임 월드를 뜻한다.
하이어라키 창에서 Main Camera 게임 오브젝트와 Directional Light 게임 오브젝트를 확인할 수 있는데 이들은 새로운 씬을 만들 때 자동으로 함께 생성된다. Main Camera 는 플레이어가 보게 될 게임 화면을 그리고, Directional Light 는 씬에 빛을 만든다.
하이어라키 창 좌측 상단에는 + 버튼이 있어서 새로운 게임 오브젝트를 생성할 수 있다. 씬에 새로운 3D 큐브를 생성해보도록 하자!
1. 하이어라키 창에서 + > 3D Object > Cube 클릭
아래와 같이 잘 생성되었다면 굳!
씬 창은 현재 씬의 게임 오브젝트를 시각적으로 편집하는 창이다. 이제 게임이 실행되면 생성한 큐브가 어떻게 동작할지 테스트를 해보자! 유니티 중앙 상단에는 씬 컨트롤 버튼이 있다.
세 개의 버튼 중 가장 좌측에 있는 플레이 버튼으로 플레이 모드를 실행하여 씬을 시작하고 테스트할 수 있다.
플레이 버튼을 클릭하면 게임이 시작되고 플레이 모드로 진입한다. 플에이 모드에서는 유니티 에디터가 전체적으로 조금 어두워지고 플레이 버튼이 파란색으로 바뀐다. 그리고 화면 중앙의 씬 창이 게임 창으로 전환된다. (글쓴이는 게임창과 씬창을 분리해뒀기에 둘 다 화면에 보인다. 따로 인터페이스 조정을 안 했다면 글과 같은 양상을 띄므로 참고바람)
플레이 버튼을 다시 클릭하면 플레이 모드가 해제된다.
1.3.3 큐브에 중력주기
큐브가 중력의 영향을 받아 아래로 떨어지게 하려면 어떻게 해야할까? 일단 바닥이 없으면 큐브가 끝없이 떨어지기 때문에 바닥을 먼저 만들어준다.
1. 하이어라키 창에서 + > 3D Object > Plane 클릭
2. 바닥과 큐브가 겹쳐 있기 때문에 큐브를 위로 옮기기 위해 큐브를 선택한다.
Cube 게임 오브젝트를 선택하면(왼쪽 마우스 클릭) 유니티 에디터 우측에 있는 인스펙터(inspector) 창에 Cube 게임 오브젝트의 정보가 표시된다. 인스펙터 창은 선택한 게임 오브젝트의 정보와 컴포넌트가 나열되는 곳이다.
게임 오브젝트에는 다양한 부품이 조립될 수 있고, 그러한 부품들을 컴포넌트(Component) 라고 부른다. 컴포넌트가 조립된 게임 오브젝트는 컴포넌트가 제공하는 능력을 가지게 된다.
트랜스폼(transform) 컴포넌트는 3D 공간에서의 위치를 결정한다. 따라서 인스펙터 창에 있는 Cube의 트랜스폼 컴포넌트 위치(Position) 값을 수정하면 Cube 위치를 옮길 수 있다.
3. 큐브를 위로 옮기기
인스펙터 창에서 Transform 컴포넌트의 Position 의 Y 를 3으로 변경
4. 리지드바디(Rigidbody) 컴포넌트 추가
이제 큐브가 중렬을 받아 떨어지도록 한다. 게임 오브젝트에는 컴포넌트라는 부품을 조립할 수 있다고 언급했다. 큐브가 중력의 영향을 받는 물리적인 물체가 되려면 큐브에 물리 기능을 가진 컴포넌트를 조립해야 한다.
큐브에 Rigidbody 컴포넌트를 추가한다. 리지트바디 컴포넌트는 게임 오브젝트가 물리와 중력의 영향을 받게 한다.
인스펙터 창 하단의 'Add Component' 버튼을 클릭하여 게임 오브젝트에 새로운 컴포넌트를 추가할 수 있다. Cube 에 추가된 리지드 바디 컴포넌트는 인스펙터 창에서 확인할 수 있다.
Add Component > Physics > Rigidbody 클릭
5. 게임 테스트
플레이 버튼을 클릭하여 게임 테스트를 시작한다. 씬이 시작되면 중력에 의해 큐브가 떨어지는 것을 확인할 수 있다.
동작을 확인했으면 플레이 버튼을 다시 클릭하여 플레이 모드를 해제한다.
1.3.4 씬 저장
1. 씬 저장
유니티에서는 하나의 게임 월드를 씬이라고 부른다. 하이어라키 창에는 편집 중인 씬의 이름인 SampleScene 이 보인다. 씬 이름 오른쪽에 별표(*) 가 보이면 씬의 변경 사항을 저장하지 않았다는 의미이다.
씬을 저장하기 위해서는 Ctrl+S 단축키(맥은 Command+S)를 이용한다. 주의할 점은 플레이 모드 중에는 씬이 저장되지 않는다는 것이다.
2. SampleScene 찾기
프로젝트(Project) 창에서 Scenes 폴더를 더블 클릭한다.
그럼 아래와 같이 씬을 찾을 수 있다.
1.4 마치며
1장에서는 유니티 엔진을 소개하고 개발 환경을 준비했다. 그리고 간단한 유니티 프로젝트를 만들었다. 이 장은 준비운동이기 때문에 특별히 외울 것은 없다!