Unity TIL) 2차시 수업

2022. 3. 31. 15:45코딩/TIL

 

1. View 5가지 

1) Project 뷰 : Project Browser이라고도 하며 게임 제작에 필요한 모든 애셋을 모아 두는 곳이다. 

3D 모델, 텍스처, 사운드파일, 스크립트와 같은 모든 애셋을 저장한다. 

2) Scene 뷰 : 3차원 공간을 표현하며 스테이지를 디자인하고 플레이어를 배치해 게임을 설계하는 뷰 

Project 뷰에 나열된 애셋을 Scene 뷰로 드래그 앤 드롭해 배치한다. 

Scene 뷰의 헤더에 있는 바를 Control bar 라고 한다. 

3) Hierachy 뷰 : Scene 뷰에 배치한 모든 객체를 계층 구조로 나열해서 보여준다. 

나열된 요소는 모두 게임 오브젝트들이다. 게임오브젝트가 Scene 뷰의 기본 단위이다. 

Hierachy 뷰는 하나의 게임 오브젝트를 선택해 다른 게임오브젝트로 drag & drop해 그룹화 할 수 있는 기능이 있다 = Parenting 

4) Inspector 뷰 : 현재 선택된 게임오브젝트의 속성을 보여주는 뷰 

5) Game 뷰 : 개발 진행 중에 게임을 실행해 미리 볼 수 있는 뷰 Scene 뷰에 있는 메인 카메라의 시야로 렌더링해서 보여준다. 

6) Console 뷰 : 디버깅 시 로그를 출력하는 뷰로서 출력하는 메시지는 정보,경고,오류로 분류해 메시지 타입별로 필터링해서 출력 ctrl shift c 

 

2. Transform 툴 

https://docs.unity3d.com/kr/2018.4/Manual/Transforms.html

디자인 작업 시 가장 사용하는 기능

첫번째 이동 툴 버튼(손 모양) : Scene 뷰의 화면 이동 

두번째 동서남북 모양 : 선택한 게임오브젝트의 3차원 좌표축(Transform)이 표시되며 해당 축을 클릭하고 드래그하면 해당 축 방향으로 이동시킬 수 있다. 

세번째 Rotate 툴 버튼 : 선택한 객체를 회전시킨다 

네번째 스케일 버튼 (뻗어나가는 모양) : 선택한 객체의 스케일을 변경한다. 

다섯번째 Rect 툴 버튼 : 선택한 UI 객체의 이동,회전,스케일 변경

 

 

3. Layers 

Scene 뷰에 배치된 모든 게임 오브젝트들은 레이어를 지정할 수 있다.

Camera에 따라 씬의 일부만 렌더링하거나, Lights에 따라 씬의 일부만 밝히는 등에 가장 자주 사용됩니다. 

 

레이어 만들기 

새 Layer을 만들면 Layer을 GameObject에 할당 할 수 있다. 

Edit > Project Settings > Tag and Layers 선택 

https://docs.unity3d.com/kr/530/Manual/Layers.html

 

레이어를 만들고 게임 오브젝트 중 하나에 할당한다. 

 

4. Layout 

유니티는 개발자가 개발 시에 뷰의 배치를 자유롭게 할 수 있는 기능을 제공한다. 툴바의 오른쪽 상단에 레이아웃 옵션을 선택하면 여러 형태의 레이아웃을 드롭다운 메뉴에서 선택할 수 있다. 

> Unity IDE의 뷰 배치가 해당 레이아웃에 따라 바뀐다. 

2 by 3, 4 Split 등 다양한 형태로 개발자에 따른 레이아웃 지정 가능

 

5. 유니티의 장점 

유니티는 2001년에 덴마크에서 처음 개발되어 2005년의애플 WWDC에서 유니티1을 처음 선보였다. 

 

유니티의 장점은 

1) 멀티 플랫폼 지원 : 해당 플랫폼의 라이센스만 보유하고 있다면 매우 간단하게 바로 플랫폼 변경 가능 

PC : 맥,리눅스 

모바일 : iOS,안드로이드 등 

웹 플레이 : 크롬,파이어폭스,사파리 등

 

Unity는 통합개발환경 IDE로 스테이지 디자인, 스크립트 코딩, 테스트, 비들까지의 개발프로세스가 모두 유니티에서 이뤄지므로 매우 높은 생산성 자랑 

 

6. 에셋스토어 

유니티 자체적으로 품질 좋은 다양한 리소스를 사고팔 수 있는 오픈마켓 운영 

게임 개발에 필요한 3D모델,텍스처,플러그인,사운드,심지어 완성된 프로젝트소스 등을 구할 수 있다. 

 

7. Floor 

게임의 배경이 되는 스테이지를 제작할 때 먼저 작업하는 것이 바닥인 floor 

 

8. Transform position X,Y,Z 원점 설정 

Scene 뷰에 게임오브젝트를 생성하고 나면 맨 먼저 Transform 컴포넌트의 Postion 속성값을 (0,0,0)으로 설정하고 적절한 위치로 옮겨 배치하는 습관을 들이기를 권장. 특히 게임의 Floor는 Y축 좌표를 항상 0으로 작업하는 것이 좌표를 계산하는데 유리하다.

 

9. Texture 

3D 모델의 표면에 그려지는 이미지 파일 지칭. 마네킹에 다양한 옷을 입히는 것처럼 3D 모델에 텍스처를 입힌다고 표현하면 이해하기가 쉽다. 유니티는 PSD(포토샵 포맷),PNG,JPEG,TIFF,GIF,BMP 등 다양한 포맷의 이미지 파일을 지원

= 3D 모델에 적용하기 위한 이미지 파일 

 

Texture 적용 

1) Texture을 import 한 다음 Project 뷰의 텍스처를 Scene 뷰의 해당 모델로 드래그 앤 드롭 

해당 텍스처가 있는 폴더에 자동으로 Materials 라는 폴더가 생긴다. 

텍스처 파일명 = 동일한 Material 생성 

> 텍스처를 적용하는 간단한 방법이지만 텍스처와 머터리얼이 여러 폴더에 산재되어 있으면 나중에 프로젝트가 커지고 방대해졌을 때 관리하기가 어렵다. 그래서 권장 X 

 

Project 뷰에서 04. Images의 하위 폴더로 Materials 폴더를 생성한다. 마우스 우클릭 > 컨텍스트 메뉴에서 Create > Material을 선택하거나 Create 툴 버튼에서 Material을 클릭하면 새로운 머터리얼이 생성된다. 이 이름을 Floor로 변경

 

>> 빈 바닥이었던 Floor을 Material을 통해 Texture로 이미지를 입힌다. 

 

10. Material 

텍스처가 3D 모델에 적용하기 위한 이미지 파일로, 중간에 Material 이라는 매개체가 필요 

3D 모델에 적용할 텍스처의 다양한 속성을 설정하는 역할을 한다. 

"어떤 텍스처를, 어떤 간격으로 반복하고, 표면의 재질은 어떻게 표현하느냐" 등을 설정 

 

11. Shader 

Material에 적용한 Texture를 렌더링 할 때 표면의 재질감을 표현하는 방법 

Material 생성 후 Inspector 창에서 Shader 설정 

 

12. Prefab 

원래 영어 의미는 조립식 주택 또는 현장에서는 조립만 하는 건축 기법 

자주 사용하는 객체를 미리 부품처럼 만들어놓고 재사용하게 만듦 

 

유니티에서 프리팹은 복사가 가능하고 프리팹을 복제해서 만든 복사본의 속성은 원본과 일치

원본 프리팹을 수정하면 복사본의 수정사항도 자동으로 일괄 변경 

 

Unity의 프리팹 시스템을 이용하면 게임 오브젝트를 생성, 설정 및 저장할 수 있으며 해당 게임 오브젝트의 모든 컴포넌트, 프로퍼티 값, 자식 게임 오브젝트를 재사용한 에셋으로 만들 수 있다. 

특별한 방식으로 설정된 게임 오브젝트를 씬의 여러 장소 또는 프로젝트의 여러 씬에서 재사용하고 싶은 경우 해당 게임 오브젝트를 프리팹으로 변환해야 한다. > 이렇게 해야 프리팹 시스템을 통해 모든 복사본을 자동으로 동기화 가능 

 

생성된 프리팹은 03.Prefabs 폴더로 옮겨서 분류 

 

13. 조명 

얼마나 효과적으로 사용하느냐에 따라 게임의 분위기나 완성도가 완전히 달라질 정도로 매우 중요한 요소 중에 하나 

게임 화면 곳곳에 많은 조명을 설치할수록 시각적인 효과는 커지지만 엔진의 부하는 늘어난다. 최소한의 조명으로 시각적인 효과와 게임 수행속도 사이의 균형을 맞추는데 신경써야 한다. 

 

Unity에서는 4가지 종류의 조명 제공 

1) Directional Light : 전체 화면에 균일한 빛 

2) Point Light : 백열전구와 같은 성격. Point Light의 중점을 기준으로 주변으로 퍼져나가는 조명 

빛이 미치는 범위를 Range로 조절 가능 

3) Spot Light : 손전등과 같이 Corn 모양으로 빛을 발하는 조명 

4) Area Light : 사각형 형태의 조명. LightMapping에서 bake해야만 시각적으로 보임 

 

14. 하늘 표현 방식 - Skybox, SkyDone 

게임에 하늘을 표현하는 대표적인 방식으로 SkyBox와 SkyDone이 있다. 

Skybox는 카메라가 볼 수 있는 하늘의 여섯 방면(front,back,left,right,up,down)의 이미지를 Cube 형태로 배치해서 표현 

SkyDome은 형태의 메쉬에 하늘의 이미지 텍스처를 입혀 구현한다. 

 

SkyBox 적용 : Project 뷰에서 04.images/Materials/ 폴더에 신규 Material을 생성한 후 이름을 Skybox로 변경한다.

메뉴 Edit > Render Settings를 선택하면 Inspector 뷰에 RenderSettings가 열린다. 이 중에서 Skybox Material 속성에 새로 만든 Skybox 머터리얼을 드래그 앤드 드롭해 연결한다.

 

Scene뷰에서도 Skybox 효과를 표시하려면 Scene 뷰 상단에 Effects 툴 버튼 클릭 > Skybox 옵션에 체크