오늘은 중간 발표 전 프로토타입을 합쳐보고 각종 버그와 미흡한 부분을 발견하여 한번 정리를 하는 시간을 가졌다.
▶▷ 스킬 관련 트러블 슈팅
미흡한 부분
메이지의 a 스킬 투사체가 플레이어와 부딫혀도 사라지는 현상
원인
팀원이 IHasHealth라는 인터페이스로 보스와 플레이어의 체력을 모두 관리하는 구조로 변경하는 과정에서 스킬 부분에도 코드를 조금 수정하였는데
투사체 충돌 시 데미지를 전달하는 부분에서 IHasHealth를 가진 오브젝트 모두가 타겟이 되어버림
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.TryGetComponent<IHasHealth>(out IHasHealth enemy))
{
enemy.Damage((int)damage,transform.position.x); // 데미지 전달
}
if((1 << collision.gameObject.layer | includeLayer) == includeLayer)
{
ReturnToPool(); // 투사체 반환
}
}
해결
조건문에 enemy is Boss라는 조건을 추가하여 보스 스크립트를 갖고 있으면서 IHasHealth도 있어야만 충돌되도록 수정하여 해결(임시로 돌아가도록 하기 위해 수정한 내용이라 나중에 리팩토링 할 예정이다.)
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.TryGetComponent<IHasHealth>(out IHasHealth enemy) && enemy is Boss)
{
enemy.Damage((int)damage,transform.position.x); // 데미지 전달
}
if((1 << collision.gameObject.layer | includeLayer) == includeLayer)
{
ReturnToPool(); // 투사체 반환
}
}
내 부분의 코드가 변경될 경우 변경이 끝난 후 어느 부분이 바뀌었는지 확인해야 했는데 신경쓰지 않고 그러지 못한 내 실수였고 좀 더 꼼꼼히 점검해야겠다는 생각이 들었다.
'게임 개발 공부 기록' 카테고리의 다른 글
68일차 - Abyss_Slayer 최종 팀 프로젝트 17 (중간 정리 2) (0) | 2025.04.29 |
---|---|
66일차 - Unity 및 객체 지향 관련 지식 예제 1 (0) | 2025.04.25 |
65일차 - Abyss_Slayer 최종 팀 프로젝트 15 (트러블 슈팅 보완, 메이지 스킬 구현) (0) | 2025.04.24 |
64일차 - Abyss_Slayer 최종 팀 프로젝트 14 (메이지 스킬 트러블 슈팅 1) (0) | 2025.04.23 |
63일차 - Abyss_Slayer 최종 팀 프로젝트 13 (메이지 스킬 수정) (0) | 2025.04.22 |