2025. 6. 19 <페이즈에 따른 몬스터 소환 갯수를 조정하자>
페이즈에 따른 잡몹을 소환하던 도중 오류가 있었다
가령 2페이즈 때는 5마리가 소환되어야 하는데, 4마리밖에 소환되지 않았다

하지만 소환될 때마다 효과음 들림과 카메라 흔들림은 정상적으로 작동되었다
따라서 잡몹을 관리하는 풀링 스크립트과 소환 스크립트를 자세히 뜯어보았다


두 스크립트 모두 페이즈 변수에 따라 갯수를 다르게 하고 있다

그러던 중 풀링 스크립트가 혹시나 소환되고 보이지 않는걸까 싶어 테스트 해보았다
이전에 풀링에서 다시 꺼내 쓰는 오브젝트와 새로 만든 오브젝트 각각 상태가 어떠한지 디버그 문구를 넣어보았다

혹시나가 역시나... 새 인스턴스는 setactive가 false라 보이지 않는 것이었다
후딱 새 인스턴스는 true로 해주니, 정상적으로 5마리가 소환된 것을 볼 수 있었다
2025. 6. 20
NPC에게 말 걸고 잡몹을 때리는 상황에서, 이미 존재하는 몹에만 데미지가 들어가지는 것을 고쳤다. 풀에서 꺼내거나 새로 생성된 몹에게도 때리기 판정 변수를 적용했다
2025. 6. 21 <보스 처지 완료를 추가하자>
보스몹의 체력이 다 떨어졌으면 처치 완료했다는 문구나 혹은 사망 처리가 되는 연출을 보여주어야 한다
나는 후자를 선택해서 보스몹 스크립트에 코드를 추가하기로 한다

bossHealth의 현재 체력이 0이하가 되면 죽었을 때의 코드를 실행한다

죽을 때의 연출은 코루틴으로 작성했다

또한 그림처럼 빨간색 포물선을 따라 회전하게 하였다
2025. 6. 22
알바와 운동으로 휴식!
요즘 허리와 거북목을 꽤나 조심해야 한다고 생각한다
2025. 6. 22 <두번째 무기를 추가해보자>
오늘은 그간 우선순위로 넘겨두었던 두번째 무기를 구현해보기로 한다
여지껏 근거리 무기로만 때렸으니 원거리 무기도 추가할 것이다
이 기능은 원작 게임에 없었던, 유니티에서 추가적으로 구현해보고 싶었던 기능이기도 하다

먼저 권총을 아주 간단히 그리고 좌측 하단 손잡이의 끝에 중심을 맞춘다
왜 그림의 가운데로 중심을 정하지 않았냐면, 추후 짧막하게 제작할 애니메이션에서 피봇값이 좌측 하단이어야 총이 회전하기 때문이다

총 애니메이션에서는 주인공이 좌측을 볼 때 총을 좌우반전 하도록 했다. 그렇지 않으면 총이 이상한 각도로 회전하며 원하는 모양으로 나오지 않기 때문이다...ㅎㅎ

공격 판정에서는 OverlapCircleAll을 사용했다
진압봉 스크립트에서는 봉 끝에 콜라이더를 달아 휘두를때 몹에 맞으면 타격이 들어간다고 판정했는데, 총은 그렇게 할 수가 없으니 다른 방법으로 해보았다!
OverlapCircleAll은 인자를 세개 필요로 한다. 각각 위치와 사용할 반지름(부채꼴이라 생각하면 될듯), 그리고 레이어가 들어가야 한다. 나는 무섭게 달려오는 보스몹에게 총을 사용할 것이기에 보스몹이 속한 레이어를 타겟으로 했다
또한 OverlapCircleAll은 위치와 사용된 반지름의 영역에서 해당 레이어로 지정된 모든 오브젝트의 콜라이더를 배열로 보관한다.

if (angle <= bulletAngle / 2f)에서 왜 2로 나눴나면, Vector.Angle은 두 벡터 사이에 부호 없는 각도를 가져오기 때문이다. 그러니까 나는 우측의 60도 부채꼴을 원하는데, 좌측에도 -60도 부채꼴이 생긴다
말로 설명하기 어려운 점이 있어 영상을 같이 첨부해본다
기즈모 코드도 추가해서 씬 뷰에 총의 범위가 보이는데, 총 범위 내에 보스몹이 있을 시 데미지가 들어가는 것을 확인할 수 있다
2025. 6. 23 <주인공의 체력을 회복해보자>
원작 게임에서도 보스전이 너무 어려워 체력이 1까지 간당하게 깎일 사용자분들을 위해, 2페이즈 시작시 플레이어의 체력이 1 남아있으면 회복시켜주는 기능이 존재한다. 오늘은 이를 구현할 것이다

게임이 2페이즈 내로 마무리될 것 같아 3페이즈 대사를 응급 처치 대사로 변환했다
아래에서는 플레이어의 체력이 1일때 추가적인 대사를 출력하게 되는데, 빼곡하게 곳곳에 디버그 문구를 넣은 이유는... 실행했을 때 플레이어 체력이 회복되지 않는 오류가 있어 과연 이 코드가 어디까지 실행되는건지 알아보기 위함이었다

PlayerHealth 스크립트에도 추가적으로 체력이 회복되는 함수를 추가한다
테스트해보며 체력이 1로 남았을때 붉게 점멸하던 화면이, NPC와의 대화 후 체력을 회복하여 없어진 것을 확인할 수 있었다!
'Unity' 카테고리의 다른 글
| [Unity] Awake vs. Start (0) | 2025.10.20 |
|---|---|
| [Unity] 코드 안티데시스 보스전 리빌드하기 / 8주차 (0) | 2025.07.02 |
| [Unity] 코드: 안티데시스 보스전 리빌드하기 / 6주차 (0) | 2025.06.20 |
| [Unity] 코드: 안티데시스 보스전 리빌드하기 / 5주차 (0) | 2025.06.16 |
| [Unity] 코드: 안티데시스 보스전 리빌드하기 / 4주차 (1) | 2025.06.13 |