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를 클릭하면 된다.
73. Import Player Ship Asset
68강에서 배운대로 에셋 스토어에서 사용할 spaceship 에셋을 다운로드 받은 후 Import 해준다.
Player Rig에서 Player Ship을 삭제하고, 에셋의 Prefab을 드롭다운 해주면 Player Ship있던 자리에 Prefab이 생성된다.
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); //입력값 가시화
'Tech Review : Unity & C#' 카테고리의 다른 글
4. Argon Assault : 96. ToString() To Display Score ~ 107. Wrap Up - Argon Assault (1) | 2023.11.30 |
---|---|
C# 문법 : switch문, 컬렉션(배열, 리스트, 딕셔너리) (1) | 2023.11.11 |
C# 문법 : 반복문 (for, foreach, while,break,continue) (0) | 2023.11.10 |
4. Argon Assault : Unity's New Input System ~ Set Up Firing Input (0) | 2023.11.10 |
3. Project Boost : Add cheat / Debug Keys ~ Wrap Up (6) (0) | 2023.11.03 |