강의 67,68,69,70강 수강
강의 수강: Unity Turn-Based Strategy Game: Intermediate C# Coding
67. Level Design (07:05~, 15:41)
남은 시간에도 열심히 맵을 만들었다. Level Design 이라는 게 말 그대로 맵을 만드는 것을 뜻하는 듯.
68. Unit Move with Pathfinding (17:31)
Unit 의 움직임에 Pathfinding 을 적용한다.
이동 전 이동 가능한 지점을 찾는 데 obstacle 도 고려하기 위해 Pathfinding 과 Raycast 를 추가로 적용한다.
총을 쏠 때도 총을 쏠 수 있는 대상인지 판단할 때 Raycast 를 추가로 적용한다.
69. Intro - Polish (01:24)
새로운 섹션 Polish 에 대한 소개. 공격할 때 화면이 흔들리는 효과, 수류탄/검 공격, 파괴/인터렉션 가능한 오브젝트 등등 게임의 디테일을 구현할 것이라고 한다. 흥미진진.
이 섹션 이후에도 두 개의 보너스 섹션 (Hex Grid System, Multi-Floors) 이 존재하는데, 보너스 섹션을 제외하면 공식적인 마지막 섹션이다. 이 섹션이 끝난 뒤에는 전체적으로 코드 리뷰도 한 번 하고, 본격적인 게임 구현 시작을 준비해야겠다.
70. Screen Shake (09:14)
CinemachineVirtualCamera, ActionVirtualCamera 에 Add Extension 메뉴를 통해 Impulse Listener 를 추가.
- Reaction Settings
- Secondary Noise: 6D Shake
- Amplitude Gain: 10
- Frequency Gain: 5
- Duration: 0.5
새로운 게임 객체 ScreenShake 추가. 해당 객체에 Cinemachine Impluse Source 컴포넌트를 추가.
- Impulse Shape: Rumble, s: 0.1
- Default Velocity: y: 0.3
ScreenShake 스크립트에는 Shake 메서드를 구현해 카메라를 흔들 수 있는 기능을 제공하게 하고, ShootAction 에는 OnAnyShoot 이벤트를 추가한 뒤, ScreenShakeAction 에서 ShootAction.OnAnyShoot 이벤트를 리스닝 한 뒤에, 리스너에서 ScreenShake.Shake 를 실행하게끔 구현.
정말 이 강의는 스크립트를 추가하고 구현을 나누고 결합을 느슨하게 하는 이런 일련의 행위들에 거리낌이 없다. 예전에 들었던 강의라면 이런 건 최소화하고 말 그대로 동작하게 하는 것에만 집중했을 것 같은데.