ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 내일배움캠프 78일차 TIL - 최종 프로젝트 개발 확장 13
    카테고리 없음 2024. 8. 6. 22:09

     

    [한 줄 요약]

    범위형 스킬 매커니즘을 완성하고, 플레임 스트라이크 스킬을 추가했다.


    [학습 내용]

     

    최종 프로젝트 개발 확장


    범위형 스킬 추가

    매커니즘 추가

    범위형 스킬을 만들 때 고려된 사항은 다음과 같다.

    • 타겟을 지정하고 스킬을 사용하는 방식이므로, 스킬 범위를 따로 지정하지 않고 타겟 위치에서 발생한다.
    • 스킬이 발생할 때가 아닌, 스킬 애니메이션이 종료될 때 데미지가 계산되는 방식이므로, 애니메이션이 종료될 때 최종적으로 피격 몬스터들이 결정된다.
    • 몬스터가 빠르게 이동하고 스킬 범위를 지정할 수 없으므로 스킬 발동 위치는 타겟 몬스터를 지속적으로 따라다닌다.

    !! 문제 발생 !!

     

    * 내용

    범위형 스킬을 만들 때 주변의 타겟을 인식하기 위해 OverlapCollider를 사용하였다. 그런데 몬스터가 감지가 되지 않는 현상이 발생하였다. 로그를 찍어보니 몬스터는 감지가 안 되고 반대로 고양이만 감지되었다.

     

    * 탐색

    우선 고양이는 감지가 안 되고 몬스터만 감지할 수 있도록 레이어마스크를 사용하는 방법을 떠올렸다. 레이어마스크를 사용하기 위해 OverlapCollider에서 설정하는 방법을 알아내야 했다. 마침 ContactFilter2D가 매개변수로 있었는데, 이걸 사용해야 하는 것 같았다. 처음 보는 클래스였기 때문에 공식문서를 뒤져보았다. 그리고 ContactFilter2D.layerMask 필드를 설정해줘야 한다는 것을 알게 되었다. 그래서 몬스터 레이어마스크를 할당해주었다. 그런데 여전히 동작하지 않았다.

    더 찾아보니, useLayerMask 필드를 직접 true로 바꿔줘야 레이어마스크를 사용할 수 있는 것 같았다. 그래서 설정하고 다시 확인해보았는데, 여전히 감지가 되지 않았다.

    그래서 혹시나 몬스터에 콜라이더가 붙어 있는지 확인하였다. 그러다가 트리거로 구현되어 있는 것을 확인하였다. 그래서 트리거용 메서드가 따로 있는지 찾아보았으나 발견하지 못했다. 그래서 OverlapCollider 안에서 해결해야 했다.

     

    * 해결

    다시 OverlapCollider 공식 문서를 찾아보니 useTrigger 필드가 있었다. 이를 true로 직접 바꿔주니 정상적으로 작동하였다. 새로운 클래스를 사용할 때는 공식문서를 잘 읽어보는 게 큰 도움이 된다는 걸 깨달았다.

     

    OverlapCollider 공식문서 링크

    https://docs.unity3d.com/ScriptReference/ContactFilter2D.html

     

    Unity - Scripting API: ContactFilter2D

    Description A set of parameters for filtering contact results. Define the angle by referring to their position in world space, where 0 degrees is parallel to the positive x-axis, 90 degrees is parallel to the positive y-axis, 180 degrees is parallel to the

    docs.unity3d.com


     

     

    플레임 스트라이크 스킬 추가

    만들어진 매커니즘으로 플레임 스트라이크 스킬을 추가하였다.

    플레임 스트라이크

     

     

    기타 개선

    스킬 데이터 구조 개선

    여러 스킬 방식이 존재하고, 각각이 InitData에서 쓰는 데이터가 다른 만큼, 스킬 종류에 따라 변수들을 모아서 정리해줬다. 그리고 스킬 VFX 크기 등을 InitData에서 설정할 수 있도록 여러 변수들을 추가하였다.

     

    쿨타임 가시성 개선

    기존에는 스킬이 쿨타임일 때 돌아가는 어두운 부분의 색이 너무 옅어서 가시성이 안 좋았던 부분을 개선하였다.

    기존
    개선 후

     

    디렉터리 정리

    더 이상 사용하지 않는 스크립트나 폴더를 삭제하거나, 올바른 위치에 있도록 정리하였다. 그리고 스킬 부분에서 외부 에셋원본을 직접 사용하고 있던 것을, 파일을 복사하여 따로 모아두고 그것을 사용하도록 구현하였다. 

     

     

     


    [회고]

    오늘 한 번 더 빌드하여 모바일에서 플레이해보았다. 생각보다 던전 안에서 이동 중에 스킬을 사용하는 부분이 조작감이 좋지 않았다. 그래서 이 부분에 대해 내일 팀원들과 논의를 가져봐야겠다.