[Unity] Unity 기초강의 내용 정리 (0-0강 ~ 1-5강)
다시 Unity를 공부해보기로 마음먹었음.
educast 나동빈 님의 <Mobile Defence Game 제작으로 배우는 Unity 기초> 강의를 듣고 내용 정리.
0-0강 : Unity 소개 및 개발환경 구축하기
1-1강 ~ 1-5강 : Part 1. Unity와 친해지기
———-
유니티 0-0강 : 유니티 소개 및 개발환경 구축하기
유니티 허브 : 다양한 게임 프로젝트 버전 관리
cf) 깃 허브, 도커 허브
Visual Studio 설치하라고 하면 무조건 설치할 것
유니티 2018 : 모노 디벨롭 지원을 끊고, Visual Studio 로 개발하도록 환경 채택
C# : 마이크로소프트에서 지원하는 개발언어
(1) Scripts 폴더를 만든다.
마우스 우클릭 – Create – Folder
(2) 그 안에 Example 이라는 C# 스크립트 파일을 만든다.
마우스 우클릭 – Create – C# Script
(3) void Start () {} 내용 안에
Debug.Log(“Hello World”);
라고 적는다.
(4) Example 파일을 마우스로 끌어다가 [Main Camera] 에 드래그 앤 드랍한다.
재생 버튼을 눌러 실행하면 콘솔에 Hello World 가 찍힌다.
———-
유니티 1-1강 : 오브젝트와 컴포넌트
유니티에서 아주 중요한 개념.
오브젝트 : 사물. 객체. (몬스터, 캐릭터, 건물 등) 게임 화면에서 보이는 것, 들리는 것은 전부 오브젝트라고 할 수 있음.
컴포넌트 : 오브젝트를 구성하는 기능. (공격, 이동, Object의 위치, 상태 정보 등)
오브젝트는 컴포넌트를 담는 그릇과도 같은 역할을 하기 때문에,
오브젝트를 컨테이너라고도 한다.
오브젝트는 껍데기이고, 컴포넌트는 껍데기를 채우는 내용물이다.
용 (오브젝트) – 불을 뿜는 기능 (컴포넌트)
사람 (오브젝트) – 달리는 기능 (컴포넌트)
건물 (오브젝트) – 건물이 공격을 받아 파괴당하는 기능 (컴포넌트)
씬 : 화면
화면에 보이는 몬스터 캐릭터 : 오브젝트임
하나의 오브젝트가 가지고 있는 모든 기능을 컴포넌트라고 보면 됨.
———-
유니티 1-2강 : 프로젝트 뷰와 씬 뷰
Assets[어쎗츠] : 게임을 만들기 위한 자산. 모든 재료들을 총칭. 이미지 파일, 소스 파일 등을 담는 폴더임.
Scenes[씬즈] : 로딩 화면, 엔딩 화면, 스테이지 1과 스테이지 2 등. 씬은 오브젝트와 컴포넌트
프로젝트 뷰 패널 : 어쎗츠와 씬즈를 관리하는 패널.
패키지 파일 : 게임 개발을 위한 여러 개의 파일을 하나로 묶어 저장하고 불러올 수 있는 파일임.
(패키지 파일을 프로젝트 뷰에 드래그 앤 드랍을 하면 임포트할지 선택 가능)
프로젝트 뷰에 게임에 사용되는 파일들을 체계적으로 관리하는 습관 중요. 대형 프로젝트의 경우 폴더 관리 중요함.
ex) Audios, Scenes, Scripts, Sprites
1. 씬 만들기
[File] – [New Scene]
Untitled 라는 씬이 생김.
프로젝트 뷰의 Sprites 폴더의 Monster 1 이미지 파일을 중앙 회색 화면(씬 뷰)로 드래그 앤 드랍해보자.
오브젝트를 생성(배치)하는 가장 간단한 방법임.
2. 씬 저장
[File] – [Save Scene As…] – 원하는 이름으로 저장 (ex : Scene0)
이러한 씬들이 여러 개 모여서 하나의 프로젝트(게임)을 완성하게 된다.
3. 이번 시간 요약
Project View : 프로젝트에서 사용될 모든 파일을 관리할 수 있는 View. 아래 쪽에 보이는 뷰임.
Scene View : 한 Scene에서 사용되는 Object들을 실제로 배치하는 View.
———-
유니티 1-3강 : 하이어라키 뷰와 인스펙터 뷰
하이어라키 뷰 : 좌측 상단에 표시되는 뷰. 하나의 씬 내부에서 사용되는 오브젝트들을 생성 및 관리하는 뷰임.
오브젝트를 하이어라키 뷰 안에서 관리할 수 있음. 우클릭해서 Delete 할 수도 있고, Rename 할 수도 있다.
하이어라키 뷰에서 오브젝트를 생성할 수도 있음. 하이어라키 뷰에서 마우스 우클릭해서 Create Empty 하면 됨.
이 때 게임을 실행하면 아무것도 표시되지 않음. 빈 오브젝트에 스프라이트 렌더러라는 컴포넌트를 추가해줘야 함.
빈 오브젝트를 클릭하고 우측의 인스펙터 뷰를 보자.
인스펙터 뷰에는 Transform 컴포넌트만 보일 것임. 어떠한 오브젝트라도 가지고 있는 기본 컴포넌트임.
Add Component 라는 버튼을 클릭하자.
영어로 Sprite Renderer 를 검색하여 더블클릭.
Sprite Renderer 상단의 Sprite 항목의 우측 O 버튼을 클릭 후 Assets 탭을 누르면 스프라이트 이미지 설정 가능.
(ex : 몬스터1 이미지)
2D 게임을 만들기 위해서는 트랜스폼 컴포넌트의 X 값과 Y 값을 조절하면 된다.
2D 게임이므로 Z 값은 0으로 주도록 한다. 가끔 오브젝트가 안보일 때가 있는 때 보통 트랜스폼 컴포넌트의 Z 값을 잘못 건드린 경우가 많다.
Scale 항목의 X, Y 값을 0.5 로 바꾸면 크기가 줄어든다.
시간날 때 Rotation 값도 바꿔보자.
1. 레이어 개념 (Sorting Layer와 Order in Layer)
두 개의 몬스터 오브젝트의 트랜스폼 컴포넌트 X와 Y값을 둘 다 0 으로 잡혔을 때
Sprite Renderer 의 Order in Layer 값을 조절하면 레이어 순서 바꾸기 가능.
Order in Layer 값이 크면 위에 있다고 보면 된다.
Sorting Layer 항목 콤보박스 클릭 – [Add Sorting Layer…] – 작은 [+] 버튼 클릭
– 원하는 레이어 이름 쓰고 엔터 (ex : Monster Layer)
Sorting Layer 를 기준으로 먼저 정렬이 이루어지고,
동일한 Sorting Layer 안에서는 Order in Layer 값을 기준으로 정렬이 이루어진다.
2. 이번 시간 요약
Hierarchy View : 한 Scene 내부에서 사용되는 Object 들을 생성 및 관리하는 View
Inspector View : 한 Object에서 사용되는 Component 들을 관리하는 View
———-
유니티 1-4강 : 씬 뷰 조작과 게임 뷰
1. 좌측상단 버튼
Q W E R T Y 단축키 => 유니티 좌측상단 버튼에 대응
Q : 핸드 툴. (손바닥 모양)
마우스나 키보드를 통해서 씬을 살펴볼 수 있음.
W : 무브 툴. (십자 화살표 모양)
오브젝트를 클릭하고 초록색 세로 선과 빨간색 가로 선이 나옴.
파란색 박스를 이용하면 자유자재로 이동 가능.
E : 로테이트 툴 (원형을 이루는 화살표 2개 모양)
동그라미 선과 십자 선 중 클릭한 선을 기준으로 회전이 되는 것을 알 수 있음.
R : 스케일 툴 (사각형 꼭지점 방향으로 화살표 4개 모양)
특정한 오브젝트를 선택해서 그 크기를 변형시킬 수 있음.
T : 렉트 툴 (사각형 안에 사각형 있는 모양)
특정한 오브젝트를 선택해서 사각형 형태로 위치, 크기, 회전을 변경할 수 있는 도구임.
특정한 오브젝트의 대략적인 트랜스폼을 설정하기에 매우 유용함.
나중에 인터페이스를 배울 때 많이 쓰이게 되는 중요 기능임.
Y : 무브/로테이트/스케일 툴
유니티 2018부터 추가된 기능임. 무브, 로테이트, 스케일 등을 모두 사용 가능.
위 툴들로는 대략적인 위치만 잡고, 상세하게는 직접 인풋박스에 입력하는게 좋음.
2. 마우스 휠
휠을 앞으로 굴려서 화면을 크게 보기, 휠을 뒤로 굴려서 화면을 작게 보기
3. 게임 뷰
씬 뷰 : 프로그래머를 위한 전용 뷰
게임 뷰 : 게이머들이 보는 사용자용 뷰
게임 뷰 바로 밑의 설정
Free Aspect를 클릭해서 변경 가능 (ex : Free Aspect => Standalone)
Play : Ctrl + P
4. 리지드바디 개요
리지드바디 2D : 2D 게임용 물리적 법칙 적용
Add Component 로 [Rigidbody 2D] 를 추가한다.
이후 게임을 실행해보면 몬스터가 아래로 떨어진다.
5. 스텝 버튼 사용법
플레이 버튼(Play) 우측의 일시정지 버튼(Pause)을 누른다.
일시정지 우측의 스텝(Step) 버튼을 누르면 시간을 잘게 쪼개서 볼 수 있다.
Step 버튼을 누르다가 다시 Scene 뷰를 가면 게임 진행 도중의 캐릭터 위치 등을 볼 수 있고
게임을 수정할 수도 있다.
6. 이번 시간 요약
Scene View : 한 Scene에서 사용되는 Object들을 실제로 배치하는 View
Game View : 실제 게임 Play 화면을 보여주는 View
———-
유니티 1-5강 : 게임 뷰와 메인 카메라
1. 레이아웃
우측 상단의 Layout : 여러 가지 뷰들을 다양한 형태로 보는 방법.
기본은 Default 임. 2 by 3, 4 Split, Wide 등 레이아웃을 바꿔 볼 수 있음.
탭의 크기를 변경하거나, 아예 새 창으로 떼어낼 수도 있음.
익숙해지면 자기 만의 레이아웃을 만들어도 됨.
2. Main Camera
게임 뷰가 비춰지는 공간 => Main Camera 가 비추는 공간임
씬 뷰에서 하얀색 사각형으로 표시되는 부분 (게임 뷰에서는 하얀색 사각형 보이지 않음)
카메라의 위치에 따라 나타나는 화면이 달라짐
2-1. 배경색 설정
Background 를 하얀색으로 설정해보자
2-2. Projection
Perspective : 보통 3D 게임에서 사용함. Z값에 따라 크기가 달라짐
Orthographic : 2D 게임에서 사용한다고 생각하면 됨.
3. 게임 뷰
3-1. 게임 뷰의 디스플레이 설정
게임 뷰 하단의 Display 1 ~ Display 8
원하는 카메라를 선택하는 것으로 이해하면 됨
2D 게임은 카메라 1개만 존재해도 충분.
3-2. 게임 뷰의 Aspect
다양한 플랫폼(PC, 모바일 등)에서 어떻게 보이는지 확인 가능
[+] 버튼을 클릭해서 임의의 해상도 설정 가능
ex) FHD 1920 x 1080 설정 가능
3-3. Scale
게임 뷰 내의 작은 요소를 자세히 볼 때 사용하면 됨
3-4. Maximize On Play
게임 플레이 시 큰 화면으로 보이게 하기
3-5. Mute Audio
게임 플레이 시 모든 소리 끄기 (소리가 안 들릴 경우 이 부분 클릭했는지 확인할 것)
3-6. Stats
게임에 관련된 상태 표시 (FPS, 해상도 등)
3-7. Gizmos
기즈모를 화면에 표시 가능
기즈모란 게임 개발에 도움이 되는 그래픽 요소임