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이 생성된다.
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); //입력값 가시화
'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 |