본문 바로가기
Tech Review : Unity & C#

4. Argon Assault : Section Intro ~ Using GetAxis() For Movement (7)

by 지수_숙 2023. 11. 19.

Udemy 강좌 'Complete C# Unity Game Developer 3D' 리뷰 및 기술 기록지입니다. 

Argon Assault : 64.Section Intro - Argon Assault ~ 74.Using GetAxis() For Movement

 

64. Section Intro - Argon Assault

Arogn Assault; 총쏘기 게임 제작을 위해서

- Time line tool을 사용하여 플레이어가 월드 내 경로로 움직일 수 있도록 제작
- 월드는 terrain tools을 사용해서 제작

+ 원하는 위치와 경로에 적들을 배치

 

65. Game Design - Argon Assault

이번에 제작할 게임에서는 Player, Camera, Enemies, Score 등과 같은 요소가 필요하다.

게임 방법은 적들은 피해서 총을 쏴야 하고, 가능한 한 높은 점수를 받기 위해 죽지 않고 오래 플레이해야 한다.만약 플레이어가 죽으면 다시 시작할 수 있다.

 

다음은 게임에서 제공하는 기본 기능들이다.

- Camera Rail: 카메라가 따라오는 경로
- Player Movement: 가로 및 세로 이동
- Shooting: 플레이어는 적들에게 피해를 주는 총알을 발사
- Health: 적들은 총에 맞으면 깎이는 생명을 지님
- Enemy Paths: 적들은 개발자에 의해 정해진 경로를 따라 이동
- Score: 적들을 처치할 때마다 점수가 부여
- Game Loop: 플레이어가 죽으면 다시 시작

 

만약 기능을 더 추가하고 싶다면 아래와 같은 기능을 추가해보자.

- Multiple Levels: 한 단계가 끝나면 다음 레벨로 이동
- Player Shield: 플레이어가 데미지를 입으면, 플레이어의 실드가 소멸
- Pickups: 실드 픽업 위로 날아가면, 플레이어의 실드가 증가
- Momentary invulnerability: 플레이어가 데미지를 입은 후에 일정 시간 이후 동안은 데미지를 받지 않음
- Weapon Upgrades: 픽업 위로 날아가면, 무기의 공격력이 증가

 

66. How To Add Terrain

Hieararchy 우클릭 > 3D Object > Terrain 생성Terrain Settings > Terrain Width, Length 600 조절

 

# Raise or Lower Terrain

shift - 브러쉬 제거[ - 브러쉬 크기 축소] - 브러쉬 크기 확대

 

# Set Height

Height - 브러쉬 꼭짓점의 최대 높이 조절 (지대를 평평하게 만들 수 있음)


Height를 100으로 설정 후 Raise or Lower Terrain에서 Shift 클릭 후 브러쉬를 사용하면

지대가 아래로 내려온다.

 

*Tip 오른쪽 마우스 + W키: 카메라를 앞으로 움직일 수 있음 

67. Unity Terrain Tools

월드 생성을 위해 Terrain Tool을 사용해야 한다.

Window > Package Manager 에서 Terrain Tools를 install 해주면 되는데, 

Terrain Tools가 보이지 않는다면 아래 경로를 따라 Enable Pre-release Packages를 체크해주면 된다.(Edit > Project Settings > Package Manager > Enable Pre-release Packages)

 

68. How To Use Unity Asset Store

에셋스토어에서는 다양한 유료, 무료 에셋을 다운로드 받을 수 있다.Window > Asset Store > Terrain Tool 검색 후 무료 에셋 > 내 에셋에 추가하기

 

내가 추가한 에셋은 Package Manager의 My Assets로 들어가면 확인할 수 있다.에셋을 사용하기 위해서 다운로드 후 Import 해주면 된다.

 

69. Texturing Terrain In Unity

Layers > Add Layer > Dirt : 전체 지형에 흙층이 생김

다양한 레이어를 추가해 지형을 꾸밀 수 있음

 

자세히 살펴보면 Diffuse, Normal Map, Mask Map 등 추가로 설정할 수 있는 것들이 있음

 

- Bump Map: 빛이 어떻게 형태를 잡고 있는지 텍스쳐 정보를 가지고 있음

- Height Map: 흑과 백을 사용해 높이를 보여줌 -> Terrain 자체를 나타낸다고 보면 됨

- Normal Map: x, y, z값에 따라 각각의 픽셀에 빛이 어떻게 표현돼야 하는지 다른 색으로 보여줌, 3차원적 표현

 

70. Add Trees To Terrain

68강에서 배운대로 에셋 스토어에서 사용할 Tree 에셋을 다운로드 받는다.Terrain >  Paint Trees > Edit Trees... > Add Tree > 다운로드 받은 Tree 에셋 추가브러쉬를 사용해 지형을 꾸며주면 된다.

 

71. Master Timeline For Player Rail & 72. Animate Enemy Using Timeline

타임라인은 플레이어에게 애니메이션을 주기 위해 적용하는 것인데, 편집된 영화 장면같은 걸 예로 들 수 있다.

특정 타이밍이나 시간대에 기반을 둔 애니메이션을 제작하는 데 사용된다.

 

1. Player Rig를 나타낼 빈 오브젝트를 생성해주고, 아래에 Main Camera와 Player Ship을 종속시켜줌

2. Window > Sequencing > Timeline3. Window > Animation > Animation4. 빈 오브젝트를 생성해 Master Timeline으로 이름을 변경

5. Timeline > Create > Timline 폴더 생성 후 Save

6. + > Animation Track > Player Rig를 드롭다운 > Create ...

 

빨간 녹화 버튼을 누르면 녹화가 시작되는데, 움직일 때마다 키프레임이 생성된다.

키프레임 생성을 원하는 위치에 두고 GameObject > Align With View를 클릭하면 된다.

키프레임 적용 시 움직임 (출처-GameDev)

 

73. Import Player Ship Asset

68강에서 배운대로 에셋 스토어에서 사용할 spaceship 에셋을 다운로드 받은 후 Import 해준다.

Player Rig에서 Player Ship을 삭제하고, 에셋의 Prefab을 드롭다운 해주면 Player Ship있던 자리에 Prefab이 생성된다.

 

Star Sparrow Sci-Fi Modular Spaceship | 3D 우주 | Unity Asset Store

Elevate your workflow with the Star Sparrow Sci-Fi Modular Spaceship asset from Ebal Studios. Find this & other 우주 options on the Unity Asset Store.

assetstore.unity.com

 

74. Using GetAxis() For Movement

유니티에는 2가지 종류의 입력 관리자가 존재한다.

아직은 신규 버전이 안정화되어 있지 않기 때문에, 구버전을 사용해보자.

구: Input.GetAxis()  /  신규: InputAction.ReadValuse<>() 

 

입력값을 받는 방법은 다음 코드를 활용하면 된다.

float horizontalThrow = Input.GetAxis("Horizontal"); //가로축
float verticalThrow = Input.GetAxis("Vertical"); //세로축

Debug.Log(horizontalThrow);
Debug.Log(verticalThrow); //입력값 가시화