본문 바로가기

Study/Unity

[유니티] #0. unity 준비 운동

반응형

#0.1. 게임 엔진이 뭔가요?

유니티는 게임 엔진이다. 그럼 게임 엔진은 무엇이냐?

게임엔진은 미리 만들어진 API, 컴포넌트 등을 개발자에게 제공하여, 개발자가 그것들을 재사용하게 할 수 있게 한 것이다. 이렇게 코드의 재사용성을 높혀서 개발자는 게임 로직에 보다 더 신경 쓸 수 있다.

'상속' 또한 코드의 재사용을 위한 방법이 될 수 있다. 그러나 상속시키기 위해서는 미래에 사용될 최소 필수 집합을 미리 예상해야 하기 때문에 완벽하게 순수한 베이스 클래스를 만드는 것은 어렵다. 따라서 상속시키는 방법 말고 선택적으로 기능을 골라 붙이는 방법이 더욱 효율적이다. 이런 방식을 '게임 오브젝트 - 컴포넌트' 방식이라고 한다. 게임 오브젝트는 단순한 holder로써 container이다. 컴포넌트는 미리 만들어진 부품으로, 각자 대표 기능을 가진다. 오브젝트에 컴포넌트를 추가하는 것이다.

컴포넌트의 클래스에 이미 필요한 기능이 준비되어 있기 때문에 메소드를 이용하여 코드를 작성하면 된다.

 

#0.2. 유니티 첫걸음

# unity hub

유니티 허브를 사용하여 제작한다. 유니티 허브는 여러 버전의 유니티 프로젝트를 한번에 관리할 수 있는 프로그램이다.

 

# 인터페이스 내 기본 용어 설명

- 레이아웃: 창이 배치되어 있는 모양

보통 이렇게 6개를 메인 창으로 가진다. 왼쪽 맨 위부터 시계 방향으로 Scene, Hierarchy, inspector, game, project, console 창이다.

- scene: 하나의 게임 맵(레벨 등)에 해당한다. 현재 활성화 된 창을 시각적으로 편집할 수 있다.

- hierarchy: 게임 창에 존재하는 모든 오브젝트를 보여준다. (main camera: 게임 플레이어가 보게 될 화면 표시. directional light: scene에 빛 만들어 줌)

- inspector: 선택한 오브젝트의 정보 보여줌

- game: 플레이어가 보게 될 화면 미리보기(화면 비율, 해상도, scale 등 바꿔볼 수 있음)

- project: assets(프로젝트 내 모든 파일 저장하는 곳, root folder)과 packages 보여줌

- console: 경고, error 등 텍스트로 알려줌

 

- component: 어떤 오브젝트에게 특정한 기능 추가하고 싶으면 component를 추가하면 된다.

 

# 플레이 버튼

- ▶: 플레이.

- ⏸: 일시정지 

- ⏯: 스텝 버튼. 다음 프레임으로 넘어가기

플레이 도중에 생긴 변경 사항은 플레이가 끝나면 나 날아가므로 주의해야 한다.

 

# 트랜스폼 툴

화면 상단 좌측의 도구들을 트랜스폼 툴이라고 한다. 씬 창에서 씬을 돌아다니고 게임 object 편집할 때 사용한다.

왼쪽부터 hand(Q, 마우스 스크롤 누르기), move(W), rotate(E), scale(R), rect(T), move/rotate/scale selected objects(transform)(Y), editor(custom) tool이다.

툴 핸들 포지션 버튼이다. 현재 씬 창이 표시되는 방식을 전환

- pivot: 실제 오브젝트의 위치를 기준으로 오브젝트에 쓰인 도구들 표시

- center: 실제 위치와 상관 없이 오브젝트의 중앙점을 기준으로 쓰인 도구들 표시

- local: 선택한 오브젝트의 좌표계를 기준으로 쓰인 도구들 표시

- global: 선택한 오브젝트의 실제 방향을 무시하고 global 좌표계를 표시

 

 

# 씬 탐색

씬 창을 보고 있다고 가정하는 가상 카메라인 scene camera를 움직인다.

- 평행이동: hand tool를 누르거나 마우스 스크롤을 누른 상태로 마우스를 조작해 할 수 있다.

- fly through mode: 마우스 우클릭으로 누른 채로 조작. WASD 키로 앞뒤양옆 이동이 가능하다. QE 키로 하강/상승할 수 있다. 마우스로는 카메라 회전을 할 수 있다.

- alt키(window 기준): alt 누른 채로 마우스 움직이면, 선택된 object 기준으로 공전하며 카메라 이동하는 공전모드를 사용할 수 있다. 

 

# 기즈모와 씬 기즈모

기즈모는 씬 편집을 쉽게하기 위해서 씬 창에 표시되는 그래픽 도구들이다. (ex. 격자, 오브젝트의 윤곽선 등)

씬 기즈모는 씬 카메라의 방향과 시점을 파악하고 변경하는 것을 돕는다.

오브젝트를 기준으로 원불 모양의 arm이 있는데 이는 현재 Scence camera의 방향과 일치한다. 씬 카메라가 어떤 방향을 보고 있는지 알 수 있다. arm을 클릭하면 그 방향으로 바로 시점이 변경된다.

중간의 cube를 클릭하면, Iso view와 persp view를 변경할 수 있다. iso view는 원근감이 없고 persp view는 원근감이 있다. persp를 주로 쓴다. 2D 시점이 필요할 때는 iso를 쓰면 유용하다.

 

# 트랜스폼 툴 사용해보기

- move tool: 선택한 object를 원하는 방향으로 평행 이동시킨다. (빨: x, 초: y, 파: z축) 면을 드래그 하면 해당 평면에 평행하게 드래그 할 수 있다. 아랫면을 선택하면 y축은 고정된 채로 x, z축에 대해서만 평행이동 된다.

- rotate tool: 실선을 드래그 하면 해당 축을 기준으로 오브젝트를 회전할 수 있다.

- scale tool: 선택한 축 방향으로 드래그 하여 오브젝트의 크기를 조절할 수 있다. 중간의 흰 큐브를 선택해 드래그 하면 양 축 모두를 같은 비율로 크기 조절할 수 있다.

- rect tool: 선택한 object의 직사각형으로 편집한다. 가로 세로 방향의 크기만 편집하고 z축 크기는 변하지 않는다. 2D game object나 UI game object 편집할 때 주로 쓴다.

- transform tool: move+rotate+scale tool

 

 

반응형