2일차에 이어서 유튜브를 보며 따라하기를 진행했다.
이번엔 프로토타입 테스트를 위한 장애물을 생성하고
이 생성과정은 임의의 위치에 랜덤하게 생성되고,
그 장애물이 캐릭터와 충돌했을 시 캐릭터의 죽음, 그후 게임 재시작까지 구현하였다.
그러나 2일차에 이어서 여전히 블루프린트로만 작업하였다. 추후 C++로 옮겨야한다.
아래는 2일차때 블루프린트를 통해 만들었던 바닥 타일이다.
여기에 ArrowComponent 3개를 만들어 배치하였다.(SpawnPoint, SpawnPointL, SpawnPointR)
이 SpawnPoint들 중 하나를 랜덤하게 선택하고 그 위치에 장애물로 바위를 생성하게 만들었다.
이후 게임종료를 구현하기 위해선 캐릭터의 죽음을 구현해야했고 그러려면 바위와 부딛혔을때 게임이 종료되게끔 해야했다. 그러려면 바위에 Collision이 존재해야했고
장애물에 부딛히면 죽게 구현해야했다.
그러기위해 먼저 캐릭터에 Death라는 CustomEvent를 만들었다.
이 Death에서는 우선 캐릭터 입력을 Disable하고 Character클래스에서 Death플래그를 세워 이 값이 참이면 모든 움직임이 멈춰지게 했다.
그런 다음 부딛힌 위치에 죽는 이펙트와 소리를 발생시키고
캐릭터의 Visibility를 거짓,
2초의 딜레이후 ConsoleCommand로 "RestartLevel"를 하여 재시작을 구현하였다.
이후 바위에서 OnComponentHit을 사용하여 캐릭터와 부딛힐 시 이 Death이벤트가 작동되도록했다.