안녕하세요! 이번 블로그 포스트에서는 유니티 엔진을 사용하여 슈팅 기능을 구현하는 방법에 대해 자세히 설명하겠습니다. 이번 강좌는 유니티를 처음 접하는 분들부터 기초부터 다시 익히고 싶은 분들까지 모두에게 유익할 것입니다. 우리는 단계별로 진행하면서 각각의 코드와 설명을 함께 제공할 것입니다. 이번 강좌의 목표는 간단한 2D 또는 3D 슈팅 게임의 기본적인 슈팅 메커니즘을 이해하고 구현하는 것입니다.
1. 유니티 설치 및 기본 설정
유니티를 사용하기 위해 먼저 유니티 허브(Unity Hub)를 설치해야 합니다. 유니티 허브는 다양한 유니티 프로젝트를 관리하고, 여러 버전의 유니티 엔진을 설치 및 업데이트하는 데 유용합니다.
- 유니티 허브를 다운로드하고 설치합니다.
- 유니티 허브를 실행한 후, 필요한 유니티 버전을 설치합니다. 추천 버전은 최신 LTS(Long Term Support) 버전입니다.
- 설치 후, 새로운 3D 또는 2D 프로젝트를 생성합니다.
2. 프로젝트 구조 이해하기
유니티 프로젝트는 여러 가지 폴더로 구성됩니다. ‘Assets’ 폴더는 우리의 자원(스크립트, 이미지, 오디오 등)을 저장하는 곳입니다. ‘Scenes’ 폴더는 씬을 저장하며, 각 씬은 게임의 하나의 단계 또는 레벨을 나타냅니다.
3. 기본 씬 생성하기
우선 기본 씬을 생성합니다. 우리는 플레이어가 슈팅할 수 있는 공간을 만들기 위해 간단한 평면을 추가하겠습니다.
- Hierarchy 뷰에서 오른쪽 클릭하고 ‘3D Object’ > ‘Plane’을 선택하여 평면을 추가합니다.
- Plane의 Scale을 조절하여 더 넓은 공간을 만듭니다.
- Camera의 위치를 조정하여 평면을 바라보도록 설정합니다.
4. 플레이어 캐릭터 만들기
플레이어 캐릭터를 생성하기 위해 새로운 3D 오브젝트를 추가하겠습니다. 여기서는 간단한 큐브를 사용하여 플레이어를 나타내도록 하겠습니다.
- Hierarchy 뷰에서 오른쪽 클릭하고 ‘3D Object’ > ‘Cube’를 선택하여 큐브를 추가합니다.
- Cube의 Scale을 (1, 2, 1)으로 조정하여 플레이어의 형태로 만듭니다.
- Cube에 ‘Player’라는 이름을 붙입니다.
- 응용 프로그램이 실행될 때 플레이어가 평면 위에 놓이도록 Cube의 Y축을 적절히 설정합니다 (예: Y=1).
5. 슈팅 기능 구현하기
이제 플레이어가 발사할 수 있는 총알을 생성하고 그에 대한 슈팅 기능을 구현해 보겠습니다.
5.1. 총알 프리팹 만들기
총알을 구현하기 위해 새로운 큐브를 사용하여 총알 프리팹을 만들어 보겠습니다.
- Hierarchy에서 새로운 ‘Cube’를 추가하고 ‘Bullet’이라는 이름을 붙입니다.
- Bullet의 Scale을 (0.2, 0.2, 0.5)로 조정하여 총알 모양으로 만듭니다.
- Bullet의 Rigidbody 컴포넌트를 추가하여 물리 적용을 가능하게 합니다.
- Bullet을 Prefab으로 만들기 위해 Bullet 오브젝트를 ‘Assets’ 폴더로 드래그합니다.
- 이제 Bullet Prefab을 Hierarchy에서 삭제합니다.
5.2. 스크립트 작성하기
이제 플레이어가 슈팅을 할 수 있도록 스크립트를 작성합니다. ‘Assets’ 폴더에서 새로운 C# 스크립트를 생성하고 ‘PlayerController.cs’라는 이름을 붙입니다. 아래와 같은 코드를 작성해 보겠습니다.