DNF LOVE
[Unity 기초-1] Unity 엔진의 GUI 파헤치기(Hierarchy, Project, Inspector등) 본문
[Unity 기초-1] Unity 엔진의 GUI 파헤치기(Hierarchy, Project, Inspector등)
botho 2019. 7. 18. 15:57
Unity Hub를 통해 프로젝트를 생성하면 맨 처음 이런 화면이 나올 것이다.
Scene이나 Game, Hierarchy, Project, Menu 등등 모든 부분들을 편할대로 위치시킬 수 있다.
이런식으로 끌어와서 마음대로 위치시킬 수 있다.
또, 이 밖에도 다른 메뉴? 들을 보고 싶다면 Window에서 여러가지 찾아보고 활용해보도록 하자.
이런식으로 말이다.
자, 그럼 각각의 기본 메뉴들은 무엇을 의미하는지 알아보도록 하자.
1. Scene
Scene은 말 그대로 게임 내 화면을 볼 수 있는 부분이다. 게임 제작 시 가장 많이 사용하는 메뉴라 할 수 있다.
여기에 Object들을 배치할 수 있고 빛에 따라 기하학적인 변화를 확인해 볼 수 있다.
Scene에서 오른쪽 위를 보면 이상한 모양의 화살표들이 있다. 이건 Scene의 방향을 설정할 수 있는 부분이다.
물론 오른쪽 마우스를 누르면서 회장하면 3d fps게임들 처럼 여러 방향으로 자유롭게 볼 수 있지만 정확하게 동, 서, 남, 북, 중앙을 확인하고자 할 때 효과적으로 사용할 수 있다.
빨강색은 x축 기준(Right), 초록색은 y축 기준(TOP), 파랑색은 z축 기준(Front), 흰 색은 Bottom을 기준으로 한다.
또한 이 화살표의 네모난 가운데를 눌러보면 마치 2d로 보는 듯한 느낌의 방향으로 자리잡게 된다.
번외지만 2d로 개발하고 싶은데 프로젝트는 3d로 만들어져서 띠용 했다면 걱정하지 말자.
여기 Scene에서 2d를 누르면 2d Project 생성한 것과 같은 환경으로 셋팅할 수 있게 된다. 이렇게 셋팅하면 동서남북으로 화면을 돌리지 못하게 된다.
2d 옆에 있는 전구 모양은 불빛을 사용하냐 안하냐를 토글링을 통해 설정할 수 있게 하는 것이다.
그 다음 2d왼쪽에 있는 것은 나도 쉐이더 까지는 아직 만져보지는 못했지만 화면의 밝기 수준, 쉐이더 등등을 변경할 수 있는 메뉴이다.
나중에 프레임, 쉐이더 등을 좀 더 공부하면 사용할 것 같다.
이 상태에서 scene에 대고 ctrl+s를 누르면 씬을 저장할 수 있게 된다.
Unity에서 Object, Scene 등등을 저장하는 곳은 Assets아래에 저장하게 된다. 나는 Scene폴더를 따로 만들어서 SampleScene이라는 이름으로 씬을 저장하였다.
2. Project
이러한 Object들을 일일이 파일 디렉토리를 통해 확인할 것인가?
유니티에선 이들을 쉽게 확인할 수 있는 UI가 준비되어있다. 그것은 바로 Project 이다.
이는 유니티 프로젝트 아래에 있는 하위 디렉토리들을 Unity 내부에서 확인할 수 있게 해준다.
오른쪽 아래에 있는 이 bar는 보여주는 디렉토리 크기들을 조절해주는 bar이다. 왼쪽으로 갈 수록 파일들의 아이콘이 작아지고 오른쪽으로 갈 수록 아이콘들이 커진다.
3, Hierarchy
하이라키에 대고 오른쪽 마우스 버튼을 누르면 여러 종류의 Object들을 생성할 수 있게 된다.
프로젝트를 생성하면 기본적으로 하이라키에 Main Camera와 Directional Light가 주어진다.
3D게임을 개발하기 위해서는 이 두가지가 아주 기본이기 때문이다.
우선 튜터리얼용으로 3d Object가 사용자 입력 받는 것에 따라 x, y, z로 이동하는 것으로 만들도록 하겠다.
3D Object 하위에 존재하는 Cube를 만들어 보도록 하자. 그러면 Scene화면에 Cube가 생성되는 것을 확인할 수 있다.
Scene에서 클릭한 Object를 포커싱하는 단축키는 'F'이다. 그러면 Scene화면이 Object를 초점으로 화면이 돌아가는 것을 볼 수 있다.
또, Cube를 받쳐줄 판이 필요하니 3D Object 아래에 Plane을 생성해주자.
4. Inspector
다음은 Inspector창을 설명하도록 하겠다. 아래는 Cube를 클릭한 후 보이는 인스팩터창이다.
Add Component를 통해 여러 컴포넌트들을 붙일 수 있다. 컴포넌트는 Object를 조절하기 위해 사용하는 여러가지 부속품들이라 해야하나. 그런 애들이다.
Object의 Mesh를 입힐 수 있고, Unity의 길찾기 시스템인 Navigation도 붙일 수 있으며 물리 엔진 Physics도 붙일 수 있다.
무엇보다 이 컴포넌트를 통해 Scripts를 붙일 수 있다.
Object의 이름과 Tag 그리고 Layer를 설정할 수 있는 부분
Object의 Mesh를 입히고 수정할 수 있는 Mesh Renderer
Object의 위치와 회전도, 크기를 설정할 수 있는 Transform 컴포넌트.
직접 숫자를 적어 설정할 수 있으며, Scene에서 아래 노랑색 형광펜들을 통해서도 변화시킬 수 있다.
이 형광펜들을 직접 클릭해서도 가능하지만 q, w, e, r, t 이들을 통해 빠르게 변경시킬 수 있다.
또한 Transform의 오른쪽 마우스를 눌러서 'Reset'을 누르면 위치 회전 0, 0, 0에 크기도 1, 1, 1로 변경시킬 수 있다.
이 박스 컨트롤러는 충돌체를 인식할 수 있도록 하는 것이다.
Cube와 Plane의 위치를 초기화 해주고 Cube의 위치를 x : 0, y : 1, z : 0로 변경해주고,
이 Cube에 Player라고 이름을 바꾸어 주고 Physics - rigidbody를 붙이도록 하자.
rigidbody는 Object가 물리 제어로 동작하게 합니다. 리지드바디는 힘과 토크를 받아 오브젝트가 사실적으로 움직이도록 해준다. 이것이 붙여져 있으면 중력의 영향을 받게 된다.
물론 중력의 영향을 받고 싶지 않으면, use Gravity를 언락해주면 된다.
이제 게임을 실행해 보도록 하자.
맨 위의 이것을 눌러주거나, ctrl+p를 누르면 실행하게 된다.
5. Game
중력에 영향을 받아 Player Cube가 아래로 plane아래로 떨어지는 것을 확인 할 수 있다.
Game은 게임 실행 화면을 볼 수 있는 GUI이다.
게임을 실행한 상태에서 Main Camer를 Scene에서 이리저리 이동시켜 보자.
위의 화면처럼 Game 화면이 카메라의 이동에 따라 이리저리 이동되는 것을 볼 수 있다.
여기서 Plane의 Mesh colider를 꺼보도록 하자.
어떻게 되는가? Player가 Plane을 뚫고 아래로 떨어져 나간다.
이것은 Gravity의 영향을 받은 Player가 아래 받쳐줄 바닥, 즉 충돌체가 존재하지 않기 떄문에 끝없이 나락으로 떨어지게 되는 것이다.
충돌체와 물리 엔진은 Game에 있어서 아주 중요한 부분이다.
다음은 이 충돌체와 물리엔진, 그리고 사용자 입력에 따라 Object가 이동하는 부분을 만들어보도록 하자