본격적으로 슈팅게임을 하나 만들어 보면서 앞에서 배운 C# 언어의 적용과 유니티 게임 제작 과정을 익혀본다.
새 프로젝트 만들기
Unity Hub(유니티 허브)를 실행한 후 프로젝트 메뉴에서 '새로 생성' 버튼을 클릭한다.
템플릿에서 2D를 선택한다.
프로젝트 이름을 적고 생성 버튼을 클릭한다.
게임 오브젝트 Ship 만들기
우주선(ship 또는 spaceship)으로 사용할 게임오브젝트를 만들기 위해 하이어라키 창에서 'Create Empty(빈 오브젝트 만들기)'를 클릭한다.
만들어진 GameObject를 Ship으로 이름을 바꾼다.
GameObject부분을 클릭하면 이름을 바꿀 수 있다.
게임오브젝트를 만들었지만 아직 빈 오브젝트이므로 씬(Scene)에는 아무것도 나타나지 않는다.
게임 오브젝트 Ship의 이미지를 만들기 위해서는 오브젝트에 이미지를 넣을 수 있는 Sprite Renderer(스프라이트 렌더러) 라는 컴퍼넌트가 필요하다. Sprite(스프라이트)는 2D에서 사용하는 객체(오브젝트)의 이미지를 말한다.
Sprite Renderer 컴퍼넌트를 추가하기 위해 Ship 오브젝트의 Inspector에 있는 Add Component 버튼을 클릭한다.
검색창에 sprite를 입력한 후 결과에서 Sprite Renderer를 찾아서 클릭한다.
Sprite Renderer 컴퍼넌트가 추가 되었다.
Sprite(스프라이트)는 현재 None(없음) 상태이다.
오른쪽 동그라미를 클릭해서 기본 이미지 중에서 하나 선택한다.
여기서는 Knob (손잡이)를 선택한다.
Scene 보기와 Game 보기에서 Knob 이미지가 나타난다.
빈 오브젝트에 Knob라는 이미지를 적용하여 Ship 오브젝트를 완성했다.
Ship오브젝트에 추가할 기능이 있다면 Add Component 버튼을 이용해서 추가할 수 있다.
스크립트 ShipControl 만들기
Ship오브젝트에 넣고 싶은 기능이 유니티에 만들어져 있지 않다면 직접 컴퍼넌트(Component)를 제작하여 연결하면 된다. 이때 사용하는 것이 C# 또는 자바스크립트 같은 코딩 언어이며 원하는 기능을 직접 코딩한 것을 Script(스크립트)라고 한다.
Ship의 액션(행동)을 만들거나 조종하는 스크립트를 만든다.
스크립트는 Assets에 만들어지는데 일단 스크립트를 모아 놓을 폴더를 하나 만든다.
Assets 에서 마우스 오른쪽 클릭 후 Create -- Folder를 클릭한다.
폴더명은 Scripts로 바꾼다.
스크립트가 여러 개 생기면 이렇게 폴더를 만들어 이곳에 넣어두면 보기도 좋고 관리하기도 좋다.
Project창의 Assets에 만든 Scripts를 선택한다.
마우스 오른쪽 클릭한 후 Create -- C# Script 를 클릭한다.
스크립트 파일명을 ShipControl (우주선 조종)로 바꾼다.
아직 코드를 작성하지 않았지만 이렇게 만든 ShipControl 스크립트는 컴퍼넌트로 추가할 수 있다.
Ship오브젝트를 선택한 상태에서 Add Component를 클릭하고 검색에서 스크립트 일부 ship을 입력하면 ShipControl스크립트 파일을 찾을 수 있다.
더 간단한 방법은 스크립트 파일을 연결하려는 컴퍼넌트(여기서는 Ship)를 선택한 후 Ship의 Inspector창으로 끌어서 놓으면 된다.
스크립트 파일을 만든 후 연결하지 않고 Add Component 버튼에서 바로 만드는 방법도 있다.
New script(새 스크립트)를 선택한 후 이름을 적고 Create and Add버튼을 클릭하면 된다.
이렇게 하면 Assets에 스크립트 파일이 만들어진다.
컴퍼넌트로 추가한 스크립트를 편집하려면 옵션 메뉴에 있는 'Edit Script'를 클릭하거나 해당 스크립트 파일을 더블클릭 하여 연결되어 있는 편집기(Visual Studio Code)를 사용하면 된다.
다음 글에서 스크립트를 편집 해본다.
끝.
Wraven...
'취미로 하는 게임코딩_gameCodingAsHobby > 유니티unity로 게임 만들기' 카테고리의 다른 글
유니티13_게임 제작 과정_03_미사일 발사 (0) | 2021.02.15 |
---|---|
유니티12_게임 제작 과정_02_Ship Control (0) | 2021.02.10 |
유니티10_C#_06_토큰_Token (0) | 2021.01.31 |
유니티09_C#_05_배열_Array (0) | 2021.01.31 |
유니티08_C#_04_제어문_for_foreach_while (0) | 2021.01.30 |